TelerikData Provides event arguments for the CSVCellFormatting event Get source grid's column index Get source grid's row index Get source grid's row type Get a reference to the source grid's cell. Get csv cell element object for further formatting Get the inner cell value which reference the original grid's value Provides event arguments for the ExcelTableCreated event Get excel table element Delimeter is added before the row. For the first row of the CSV file the delimeter must be set to null. This element cannot have inner elements. Use Cells property This element cannot have inner elements. Use Rows property Create instance of exporter class with specified RadGridView to export RadGridView to export Gets or sets the value that will be used for a row delimiter. Gets or sets the value that will be used for a column delimiter. Set if child rows should be exported. Set if hidden column would be exported. Note that is not relevant for CSV export. Set if hidden rows would be exported. Note that is not relevant for CSV export. Set how to export summary rows. Sets a value indicating how the export behavies when paging is enabled. The paging export option. Gets or sets the child view export mode. The child view export mode. Set file extension. Default value is csv. Set RadGridView that would be exported. Gets or sets a value indicating whether values are enclosed in quotes in the exported file. Gets or sets the encoding used for the exported file. Default encoding is UTF8. Occurs when a child view will be exported. Fires when an csv cell was created and needs to be formatted. Fires when the csv table element was created. Creates file in csv format. Export file name Write element to file and specify how many simbols to cut from the end File stream to use element to write Converts string to byte array string to convert byte array Add custom row in the provided csv table element CSV table element where the new row will be added Values for the every csv cell object in the custom row Provides event arguments for the ExcelCellFormatting event Get source grid's column index Get source grid's row index Get source grid's row type Get a reference to the source grid's cell. Get excel cell element for further formatting Get excel style element for further formatting Provides event arguments for the ExcelRowFormatting event Get a reference to the source grid's row. Get excel row element for further formatting Provides event arguments for the ExcelTableCreated event Get excel table element Get sheet's index, which contains excel table element Max value 3 This is required Get data element (use to change and format value). Set or Get style ID for this cell element. Set or Get column name. Get or Set data type. Get or Set data item (use to specify the cell value). Gets or sets a value indicating whether strings will be escaped. Gets the inner elements. Gets the start tag for this element. Gets the end tag for this element. Get or set font underline. Get or Set font size. Get or Set font italic Get or Set font name Get or Set font color Get or Set font bold Get or Set color pattern Get or Set back color This element cannot have inner elements. Use Cells property Get text alignment element (use to set text alignments). Get border elements collection (use to add borders). Get number formatting element (use to set format). Get interior style element (use to change back color and color pattern). Get font style settings (use to change font settings). Get or Set unique style identificator. Creates new style element with specified ID. Unique style identificator. Creates new style element. Compare with other style element. SingleStyleElement to compare with. True if they are equal This element cannot have attributes Set if child rows should be exported. Sets a value indicating whether the visual settings should be exported. true if visual settings are exported; otherwise, false. Sets the name of the sheet. The name of the sheet. Sets the sheet max rows. The sheet max rows. Sets a value indicating how summary rows are exported. The summaries export option. Sets a value indicating how hidden columns are exported. The hidden column option. Sets a value indicating how hidden rows are exported. The hidden row option. Sets a value indicating how the export behavies when paging is enabled. The paging export option. Gets or sets the child view export mode. The child view export mode. Sets the RadGridView to export. The RadGridView to export. Sets the file extension of the exported file. The file extension. Gets or sets the encoding used for the exported file. Default encoding is UTF8. Occurs when a child view will be exported. Raises the event. The instance containing the event data. Occurs for every cell that is being exported. Raises the event. The instance containing the event data. Occurs for every row that is being exported. Raises the event. The instance containing the event data. Occurs when the excel table is created. Raises the event. The instance containing the event data. Write bytes to the file File name to write into bytes to write position where to begin to write XML file transponse. Used to prepare file for inserting text into it. File name to transponce Wrapper for FileStream.SetLength(). When lengthening a file, this method appends null characters to it which does NOT leave it in an XML-parseable state. After all your transpositions, ALWAYS come back and truncate the file unless you've overwritten the appended space with valid characters. Name of file to resize New size of file Insert string to the text file File name to insert into Text to insert Finish the excelML file File name to finish Workbook element Add style element to the workbook's styles collection Workbook where to add Style to add Set data type for cell formatting to already created excel cell element Excel cell element Data type Set data type for cell formatting to already created excel cell element according to DisplayFormatType Excel cell element Convert and apply content text alignment to style element Style element Content alignment to apply Create excel StyleElement Grid's visual element Excel style element Create excel cell element. grid's cell info excel cell element Create excel row element with a style element and add this style to excel workbook Excel workbook object Grid's row info Excel row element Set excel row element height RowInfo to set Desired height in pixels, if 0 than remains default height. Create and add excel worksheet to the workbook Excel workbook Excel table element add column eelemnts to the excel table element source RadGridView Excel table element Create excel column element RadGridView's column Excel ColumnElement Write element to file. File stream to use element to write Write element to file and specify how many simbols to cut from the end File stream to use element to write count how many symbols to cut at the end Converts string to byte array string to convert byte array Creates ExcelML file Export file name Add custom row in the provided excel table element Excel table element where the new row will be added Custom row height in pixels. If 0 than the height has default value Values for the every excel cell in the custom row New row's style element for further formatting Defines how white space is handeled in the exported cells. Sequences of whitespace will collapse into a single whitespace. Text will wrap when necessary. Sequences of whitespace will collapse into a single whitespace. Text will never wrap to the next line. Whitespace is preserved. Text will only wrap on line breaks. Sequences of whitespace will collapse into a single whitespace. Text will wrap when necessary, and on line breaks. Whitespace is preserved. Text will wrap when necessary, and on line breaks. Set or get pdf page width in milimeters Set or get pdf page height in milimeters Add pdf keyword keyword to add Provides event arguments for the HTMLCellFormatting event Get source grid's column index Get source grid's row index Get source grid's row type Get a reference to the source grid's cell. Get html cell element for further formatting Get or Set escaping for conditional formatting for this cell. Get the inner cell value which reference the original grid's value Provides event erguments for HTMLTableCaptionFormatting event Get html table CaptionElement for further formatting Get or set caption text Add align attributes even if they are equal to default ones (Middle|Left) Gets or sets a value indicating how the white spaces in the cell will be handled. Gets or sets a value indicating if special HTML characters should be escaped. This element cannot have styles collection This element cannot have styles collection Gets or sets a value indicating whether the columns width should be calculated based on the content of the cells or should be fixed. Set if child rows should be exported. Set the width in milimeters to fit the table in. Set how to export summary rows. Gets or sets the child view export mode. The child view export mode. Set if to export hidden column. Set if to export hidden rows. Sets a value indicating how the export behavies when paging is enabled. The paging export option. Set RadGridView that would be exported. Set the file extension. Default value is htm. Set html table caption. Set to export visual settings e.g. background colors, font, alignment, conditional formatting etc. Default value: false. Set html table border thickness. Default value is 0 Set the table size scaling. Default value is 1. For example, scale of 1.2 means 20% size increase. Set the html table general Font. Gets or sets the encoding used for the exported file. Default encoding is UTF8. Gets or sets a value indicating whether to export images. Gets or sets a value indicating whether to scale exported images. Create instance of exporter class with specified RadGridView to export RadGridView to export Occurs when a child view will be exported. Fires when an html cell object was created and needs to be formatted. Occurs when html table was created and provides access to its caption element Fires when html table was created and provides access to its caption element Creates file in html format. Export file name Fills list with all required columns. Includes columns from child templates, which exceed the main template column count. Create html row element with a styles Set html row element height RowElement to set Desired height in pixels, if 0 than remains default height. Create html cell element grid's cell info html cell element Apply conditional formatting to row element true if formatting has been applyed to the entire row Apply base cell formating on single html cell element Add summary row Search for a neighbour RadElement im a RadElement list List of RadElements Index for element which neighbour going to search First founded neighbour element Write element to file and specify how many simbols to cut from the end Converts string to byte array string to convert byte array Set if child rows should be exported. Set table to fit to pdf page width Get or set pdf export settings class Set how to export summary rows. Set how to export hidden column. Set how to export hidden rows. Sets a value indicating how the export behavies when paging is enabled. The paging export option. Gets or sets the child view export mode. The child view export mode. Set RadGridView that would be exported. Set the file extension. Default value is pdf. Set pdf page title. Set to export visual settings e.g. background colors, font, alignment, conditional formatting etc. Default value: false. Set pdf table border thickness. Default value is 0 Set the table size scaling. Default value is 1. For example, scale of 1.2f means 20% size increase. Set the table Font. Gets or sets the encoding used for the exported file. Default encoding is UTF8. Occurs when a child view will be exported. Fires when an html cell object was created and needs to be formatted. Note that pdf export firstly renders as html and this allows to apply custom format to any cell. Creates PDF file Export file name Convert ContentAlignment to HorizontalAlignmentType System.Drawing.ContentAlignment Telerik.WinControls.UI.Export.HorizontalAligmentType Convert ContentAignment to VerticalAlignmentType System.Drawing.ContentAlignment Telerik.WinControls.UI.Export.VerticalAlignmentType Search for real visible fill and mix its colors Mixed collor, ready for export Converts a color to a hexidecimal value for use within HTML The color to convert A hex value, including '#' Check if visual style settings comes from theme. Element to check True if visual settings come from theme Search for base grid's data cell element Prepare/Reset the RadGridView for exporting Initialize new grid data cell element and change its base settings according to transperancy of its fill Base grid cell element Transformed cell element ApocDriver provides the client with a single interface to invoking Apoc XSL-FO. The examples belows demonstrate several ways of invoking Apoc XSL-FO. The methodology is the same regardless of how Apoc is embedded in your system (ASP.NET, WinForm, Web Service, etc). // This example demonstrates rendering an XSL-FO file to a PDF file. ApocDriver driver = ApocDriver.Make(); driver.Render( new FileStream("readme.fo", FileMode.Open), new FileStream("readme.pdf", FileMode.Create)); // This example demonstrates rendering an XSL-FO file to a PDF file. Dim driver As ApocDriver = ApocDriver.Make driver.Render( _ New FileStream("readme.fo", FileMode.Open), _ New FileStream("readme.pdf", FileMode.Create)) // This example demonstrates rendering the result of an XSLT transformation // into a PDF file. ApocDriver driver = ApocDriver.Make(); driver.Render( XslTransformer.Transform("readme.xml", "readme.xsl"), new FileStream("readme.pdf", FileMode.Create)); // This example demonstrates rendering the result of an XSLT transformation // into a PDF file. Dim driver As ApocDriver = ApocDriver.Make driver.Render( _ XslTransformer.Transform("readme.xml", "readme.xsl"), _ New FileStream("readme.pdf", FileMode.Create)) // This example demonstrates using an XmlDocument as the source of the // XSL-FO tree. The XmlDocument could easily be dynamically generated. XmlDocument doc = new XmlDocument() doc.Load("reader.fo"); ApocDriver driver = ApocDriver.Make(); driver.Render(doc, new FileStream("readme.pdf", FileMode.Create)); // This example demonstrates using an XmlDocument as the source of the // XSL-FO tree. The XmlDocument could easily be dynamically generated. Dim doc As XmlDocument = New XmlDocument() doc.Load("reader.fo") Dim driver As ApocDriver = ApocDriver.Make driver.Render(doc, New FileStream("readme.pdf", FileMode.Create)) Controls the output format of the renderer. Defaults to PDF. Determines if the output stream passed to the render should be closed upon completion or if a fatal exception occurs. Options to supply to the renderer. Maps a set of credentials to an internet resource The ResourceManager embedded in the core dll. The active driver. Permits the product key to be specified using code, rather than the flakey licenses.licx method. The delegate subscribers must implement to receive Apoc events. The parameter will be a reference to the active ApocDriver. The parameter will contain a human-readable error message. A reference to the active ApocDriver Encapsulates a human readable error message The delegat subscribers must implement to handle the loading of image data in response to external-graphic formatting objects. A multicast delegate. The error event Apoc publishes. The method signature for this event handler should match the following:

                void ApocError(object driver, ApocEventArgs e);
                
The first parameter driver will be a reference to the active ApocDriver instance.
Subscribing to the 'error' event
[C#]
{ ApocDriver driver = ApocDriver.Make(); driver.OnError += new ApocDriver.ApocEventHandler(ApocError); ... }
A multicast delegate. The warning event Apoc publishes. The method signature for this event handler should match the following:

                void ApocWarning(object driver, ApocEventArgs e);
                
The first parameter driver will be a reference to the active ApocDriver instance.
A multicast delegate. The info event Apoc publishes. The method signature for this event handler should match the following:

                void ApocInfo(object driver, ApocEventArgs e);
                
The first parameter driver will be a reference to the active ApocDriver instance.
Constructs a new ApocDriver and registers the newly created driver as the active driver. An instance of ApocDriver Sets the the 'baseDir' property in the Configuration class using the value returned by Directory.GetCurrentDirectory(). Determines if the output stream should be automatically closed upon completion of the render process. Gets or sets the active . An instance of created via the factory method . Determines which rendering engine to use. A value from the enumeration. The default value is . Gets or sets the base directory used to locate external resourcs such as images. Defaults to the current working directory. An optional image handler that can be registered to load image data for external graphic formatting objects. Gets or sets the handler that is responsible for loading the image data for external graphics. If null is returned from the image handler, then Apoc will perform normal processing. Gets or sets the time in milliseconds until an HTTP image request times out. The default value is 100000 milliseconds. The timeout value in milliseconds Gets a reference to a object that manages credentials for multiple Internet resources. The purpose of this property is to associate a set of credentials against an Internet resource. These credentials are then used by Apoc when fetching images from one of the listed resources. ApocDriver driver = ApocDriver.Make(); NetworkCredential nc1 = new NetworkCredential("foo", "password"); driver.Credentials.Add(new Uri("http://www.chive.com"), "Basic", nc1); NetworkCredential nc2 = new NetworkCredential("john", "password", "UK"); driver.Credentials.Add(new Uri("http://www.xyz.com"), "Digest", nc2); Write only property that can be used to bypass licenses.licx and set a product key directly. Returns the product key. Options that are passed to the rendering engine. An object that implements the marker interface. The default value is null, in which case all default options will be used. An instance of is typically passed to this property. Executes the conversion reading the source tree from the supplied XmlDocument, converting it to a format dictated by the renderer and writing it to the supplied output stream. An in-memory representation of an XML document (DOM). Any subclass of the Stream class. Any exceptions that occur during the render process are arranged into three categories: information, warning and error. You may intercept any or all of theses exceptional states by registering an event listener. See for an example of registering an event listener. If there are no registered listeners, the exceptions are dumped to standard out - except for the error event which is wrapped in a . Executes the conversion reading the source tree from the input reader, converting it to a format dictated by the renderer and writing it to the supplied output stream. A character orientated stream Any subclass of the Stream class Executes the conversion reading the source tree from the file inputFile, converting it to a format dictated by the renderer and writing it to the file identified by outputFile. If the file outputFile does not exist, it will created otherwise it will be overwritten. Creating a file may generate a variety of exceptions. See for a complete list.
Path to an XSL-FO file Path to a file
Executes the conversion reading the source tree from the file inputFile, converting it to a format dictated by the renderer and writing it to the supplied output stream. Path to an XSL-FO file Any subclass of the Stream class, e.g. FileStream Executes the conversion reading the source tree from the input stream, converting it to a format dictated by the render and writing it to the supplied output stream. Any subclass of the Stream class, e.g. FileStream Any subclass of the Stream class, e.g. FileStream Executes the conversion reading the source tree from the input reader, converting it to a format dictated by the render and writing it to the supplied output stream. The evaluation copy of this class will output an evaluation banner to standard out Reader that provides fast, non-cached, forward-only access to XML data Any subclass of the Stream class, e.g. FileStream True if the current license is an evaluation license. Retrieves the string resource with the specific key using the default culture A resource key The resource string identified by key from the current culture's setting The key parameter is a null reference The value of the specified resource is not a string No usable set of resources has been found, and there are no neutral culture resources Sends an 'error' event to all registered listeners. If there are no listeners, a is thrown immediately halting execution Any error message, which may be null If no listener is registered for this event, a SystemException will be thrown Sends a 'warning' event to all registered listeners If there are no listeners, message is written out to the console instead Any warning message, which may be null Sends an 'info' event to all registered lisetners If there are no listeners, message is written out to the console instead An info message, which may be null Utility method that creates an for the supplied file The returned interprets all whitespace Utility method that creates an for the supplied file The returned interprets all whitespace Utility method that creates an for the supplied file The returned interprets all whitespace A class containing event data for the Error, Warning and Info events defined in . Initialises a new instance of the ApocEventArgs class. The text of the event message. Retrieves the event message. A string which may be null. Converts this ApocEventArgs to a string. A string representation of this class which is identical to . This exception is thrown by Apoc when an error occurs. Initialises a new instance of the ApocException class. The property will be initialised to innerException.Message The exception that is the cause of the current exception Initialises a new instance of the ApocException class. The error message that explains the reason for this exception Initialises a new instance of the ApocException class. The error message that explains the reason for this exception The exception that is the cause of the current exception A length quantity in XSL which is specified as "auto". a colour quantity in XSL the red component the green component the blue component the alpha component set the colour given a particular String specifying either a colour name or #RGB or #RRGGBB a space quantity in XSL (space-before, space-after) a length quantity in XSL Set the length given a number of relative units and the current font size in base units. Set the length given a number of units and a unit name. set the length as a number of base units Convert the given length to a dimensionless integer representing a whole number of base units (milli-points). Constructor for IDNode @param idValue The value of the id for this node Sets the page number for this node @param number page number of node Returns the page number of this node @return page number of this node creates a new GoTo object for an internal link @param objectNumber the number to be assigned to the new object sets the page reference for the internal link's GoTo. The GoTo will jump to this page reference. @param pageReference the page reference to which the internal link GoTo should jump ex. 23 0 R Returns the reference to the Internal Link's GoTo object @return GoTo object reference Returns the id value of this node @return this node's id value Returns the PDFGoTo object associated with the internal link @return PDFGoTo object Determines whether there is an internal link GoTo for this node @return true if internal link GoTo for this node is set, false otherwise Sets the position of this node @param x the x position @param y the y position Constructor for IDReferences Creates and configures the specified id. @param id The id to initialize @param area The area where this id was encountered @exception ApocException Creates id entry @param id The id to create @param area The area where this id was encountered @exception ApocException Creates id entry that hasn't been validated @param id The id to create @exception ApocException Adds created id list of unvalidated ids that have already been created. This should be used if it is unsure whether the id is valid but it must be anyhow. @param id The id to create Removes id from list of unvalidated ids. This should be used if the id has been determined to be valid. @param id The id to remove Determines whether specified id already exists in idUnvalidated @param id The id to search for @return true if ID was found, false otherwise Configures this id @param id The id to configure @param area The area where the id was encountered Adds id to validation list to be validated . This should be used if it is unsure whether the id is valid @param id id to be added Removes id from validation list. This should be used if the id has been determined to be valid @param id the id to remove Removes id from IDReferences @param id The id to remove @exception ApocException Determines whether all id's are valid @return true if all id's are valid, false otherwise Returns all invalid id's still remaining in the validation list @return invalid ids from validation list Determines whether specified id already exists in IDReferences @param id the id to search for @return true if ID was found, false otherwise Determines whether the GoTo reference for the specified id is defined @param id the id to search for @return true if GoTo reference is defined, false otherwise Returns the reference to the GoTo object used for the internal link @param id the id whose reference to use @return reference to GoTo object Creates an PdfGoto object that will 'goto' the passed Id. The ID of the link's target. The PDF object id to use for the GoTo object. This method is a bit 'wrong'. Passing in an objectId seems a bit dirty and I don't see why an IDNode should be responsible for keeping track of the GoTo object that points to it. These decisions only seem to pollute this class with PDF specific code. Adds an id to IDReferences @param id the id to add Returns the PDFGoTo object for the specified id @param id the id for which the PDFGoTo to be retrieved is associated @return the PdfGoTo object associated with the specified id sets the page reference for the internal link's GoTo. The GoTo will jump to this page reference. @param pageReference the page reference to which the internal link GoTo should jump ex. 23 0 R Sets the page number for the specified id @param id The id whose page number is being set @param pageNumber The page number of the specified id Returns the page number where the specified id is found @param id The id whose page number to return @return the page number of the id, or null if the id does not exist Sets the x and y position of specified id @param id the id whose position is to be set @param x x position of id @param y y position of id XSL FO Keep Property datatype (keep-together, etc) What to do here? There isn't really a meaningful single value. Keep Value Stores the different types of keeps in a single convenient format. FO parent of the FO for which this property is to be calculated. PropertyList for the FO where this property is calculated. One of the defined types of LengthBase Accessor for parentFO object from subclasses which define custom kinds of LengthBase calculations. Accessor for propertyList object from subclasses which define custom kinds of LengthBase calculations. This datatype hold a pair of lengths, specifiying the dimensions in both inline and block-progression-directions. It is currently only used to specify border-separation in tables. a "progression-dimension" quantity ex. block-progression-dimension, inline-progression-dimension corresponds to the triplet min-height, height, max-height (or width) Set minimum value to min. @param min A Length value specifying the minimum value for this LengthRange. @param bIsDefault If true, this is set as a "default" value and not a user-specified explicit value. Set maximum value to max if it is >= optimum or optimum isn't set. @param max A Length value specifying the maximum value for this @param bIsDefault If true, this is set as a "default" value and not a user-specified explicit value. Set the optimum value. @param opt A Length value specifying the optimum value for this @param bIsDefault If true, this is set as a "default" value and not a user-specified explicit value. Return the computed value in millipoints. A length quantity in XSL which is specified with a mixture of absolute and relative and/or percent components. The actual value may not be computable before layout is done. a percent specified length quantity in XSL construct an object based on a factor (the percent, as a a factor) and an object which has a method to return the Length which provides the "base" for this calculation. Return the computed value in millipoints. This assumes that the base length has been resolved to an absolute length value. A space quantity in XSL (space-before, space-after) A table-column width specification, possibly including some number of proportional "column-units". The absolute size of a column-unit depends on the fixed and proportional sizes of all columns in the table, and on the overall size of the table. It can't be calculated until all columns have been specified and until the actual width of the table is known. Since this can be specified as a percent of its parent containing width, the calculation is done during layout. NOTE: this is only supposed to be allowed if table-layout=fixed. Number of table-column proportional units Construct an object with tcolUnits of proportional measure. Override the method in Length to return the number of specified proportional table-column units. Calculate the number of millipoints and set it. base class for extension objects @param parent the parent formatting object @param propertyList the explicit properties of this object Called for extensions within a page sequence or flow. These extensions are allowed to generate visible areas within the layout. @param area Called for root extensions. Root extensions aren't allowed to generate any visible areas. They are used for extra items that don't show up in the page layout itself. For example: pdf outlines @param areaTree The parent outline object if it exists an opaque renderer context object, e.g. PDFOutline for PDFRenderer The fo:root formatting object. Contains page masters, root extensions, page-sequences. Called by subclass if no match found. Return the specified or initial value of the property on this object. By default, functions have no percent-based arguments. Return the name as a String (should be specified with quotes!) Construct a Numeric object from a Number. @param num The number. Construct a Numeric object from a Length. @param l The Length. Construct a Numeric object from a PercentLength. @param pclen The PercentLength. v * Construct a Numeric object from a TableColLength. * @param tclen The TableColLength. Return the current value as a Length if possible. This constructs a new Length or Length subclass based on the current value type of the Numeric. If the stored value has a unit dimension other than 1, null is returned. Return the current value as a Number if possible. Calls asDouble(). Return a boolean value indiciating whether the currently stored value consists of different "types" of values (absolute, percent, and/or table-unit.) Subtract the operand from the current value and return a new Numeric representing the result. @param op The value to subtract. @return A Numeric representing the result. @throws PropertyException If the dimension of the operand is different from the dimension of this Numeric. Add the operand from the current value and return a new Numeric representing the result. @param op The value to add. @return A Numeric representing the result. @throws PropertyException If the dimension of the operand is different from the dimension of this Numeric. Multiply the the current value by the operand and return a new Numeric representing the result. @param op The multiplier. @return A Numeric representing the result. @throws PropertyException If both Numerics have "mixed" type. Divide the the current value by the operand and return a new Numeric representing the result. @param op The divisor. @return A Numeric representing the result. @throws PropertyException If both Numerics have "mixed" type. Return the absolute value of this Numeric. @return A new Numeric object representing the absolute value. Return a Numeric which is the maximum of the current value and the operand. @throws PropertyException If the dimensions or value types of the object and the operand are different. Return a Numeric which is the minimum of the current value and the operand. @throws PropertyException If the dimensions or value types of the object and the operand are different. This class holds context information needed during property expression evaluation. It holds the Maker object for the property, the PropertyList being built, and the FObj parent of the FObj for which the property is being set. Return whether this property inherits specified values. Propagates to the Maker. @return true if the property inherits specified values, false if it inherits computed values. Return the PercentBase object used to calculate the absolute value from a percent specification. Propagates to the Maker. @return The PercentBase object or null if percentLengthOK()=false. Return the current font-size value as base units (milli-points). Public entrypoint to the Property expression parser. @param expr The specified value (attribute on the xml element). @param propInfo A PropertyInfo object representing the context in which the property expression is to be evaluated. @return A Property object holding the parsed result. @throws PropertyException If the "expr" cannot be parsed as a Property. Private constructor. Called by the static parse() method. @param propExpr The specified value (attribute on the xml element). @param propInfo A PropertyInfo object representing the context in which the property expression is to be evaluated. Parse the property expression described in the instance variables. Note: If the property expression String is empty, a StringProperty object holding an empty String is returned. @return A Property object holding the parsed result. @throws PropertyException If the "expr" cannot be parsed as a Property. Try to parse an addition or subtraction expression and return the resulting Property. Try to parse a multiply, divide or modulo expression and return the resulting Property. Try to parse a unary minus expression and return the resulting Property. Checks that the current token is a right parenthesis and throws an exception if this isn't the case. Try to parse a primary expression and return the resulting Property. A primary expression is either a parenthesized expression or an expression representing a primitive Property datatype, such as a string literal, an NCname, a number or a unit expression, or a function call expression. Parse a comma separated list of function arguments. Each argument may itself be an expression. This method consumes the closing right parenthesis of the argument list. @param nbArgs The number of arguments expected by the function. @return An array of Property objects representing the arguments found. @throws PropertyException If the number of arguments found isn't equal to the number expected. Evaluate an addition operation. If either of the arguments is null, this means that it wasn't convertible to a Numeric value. @param op1 A Numeric object (Number or Length-type object) @param op2 A Numeric object (Number or Length-type object) @return A new NumericProperty object holding an object which represents the sum of the two operands. @throws PropertyException If either operand is null. Evaluate a subtraction operation. If either of the arguments is null, this means that it wasn't convertible to a Numeric value. @param op1 A Numeric object (Number or Length-type object) @param op2 A Numeric object (Number or Length-type object) @return A new NumericProperty object holding an object which represents the difference of the two operands. @throws PropertyException If either operand is null. Evaluate a unary minus operation. If the argument is null, this means that it wasn't convertible to a Numeric value. @param op A Numeric object (Number or Length-type object) @return A new NumericProperty object holding an object which represents the negative of the operand (multiplication by *1). @throws PropertyException If the operand is null. Evaluate a multiplication operation. If either of the arguments is null, this means that it wasn't convertible to a Numeric value. @param op1 A Numeric object (Number or Length-type object) @param op2 A Numeric object (Number or Length-type object) @return A new NumericProperty object holding an object which represents the product of the two operands. @throws PropertyException If either operand is null. Evaluate a division operation. If either of the arguments is null, this means that it wasn't convertible to a Numeric value. @param op1 A Numeric object (Number or Length-type object) @param op2 A Numeric object (Number or Length-type object) @return A new NumericProperty object holding an object which represents op1 divided by op2. @throws PropertyException If either operand is null. Evaluate a modulo operation. If either of the arguments is null, this means that it wasn't convertible to a Number value. @param op1 A Number object @param op2 A Number object @return A new NumberProperty object holding an object which represents op1 mod op2. @throws PropertyException If either operand is null. Parses a double value using a culture insensitive locale. The double value as a string. The double value parsed. Construct a new PropertyTokenizer object to tokenize the passed string. @param s The Property expressio to tokenize. Return the next token in the expression string. This sets the following package visible variables: currentToken An enumerated value identifying the recognized token currentTokenValue A string containing the token contents currentUnitLength If currentToken = TOK_NUMERIC, the number of characters in the unit name. @throws PropertyException If un unrecognized token is encountered. Attempt to recognize a valid NAME token in the input expression. Attempt to recognize a valid sequence of decimal digits in the input expression. Attempt to recognize a valid sequence of hexadecimal digits in the input expression. Return a bool value indicating whether the following non-whitespace character is an opening parenthesis. Return a bool value indicating whether the argument is a decimal digit (0-9). @param c The character to check Return a bool value indicating whether the argument is a hexadecimal digit (0-9, A-F, a-f). @param c The character to check Return a bool value indicating whether the argument is whitespace as defined by XSL (space, newline, CR, tab). @param c The character to check Return a bool value indicating whether the argument is a valid name start character, ie. can start a NAME as defined by XSL. @param c The character to check Return a bool value indicating whether the argument is a valid name character, ie. can occur in a NAME as defined by XSL. @param c The character to check Return an object which implements the PercentBase interface. Percents in arguments to this function are interpreted relative to 255. Return true if the passed area is on the left edge of its nearest absolute AreaContainer (generally a page column). Return the content width of the boxes generated by this FO. Return the content width of the boxes generated by this block container FO. this class represents the flow object 'fo:character'. Its use is defined by the spec: "The fo:character flow object represents a character that is mapped to a glyph for presentation. It is an atomic unit to the formatter. When the result tree is interpreted as a tree of formatting objects, a character in the result tree is treated as if it were an empty element of type fo:character with a character attribute equal to the Unicode representation of the character. The semantics of an "auto" value for character properties, which is typically their initial value, are based on the Unicode codepoint. Overrides may be specified in an implementation-specific manner." (6.6.3) PageSequence container Vector to store snapshot flow-name attribute Content-width of current column area during layout Return the content width of this flow (really of the region in which it is flowing). inner class for making SVG objects. make an SVG object. @param parent the parent formatting object @param propertyList the explicit properties of this object @return the SVG object returns the maker for this object. @return the maker for SVG objects constructs an instream-foreign-object object (called by Maker). @param parent the parent formatting object @param propertyList the explicit properties of this object layout this formatting object. @param area the area to layout the object into @return the status of the layout Implements fo:leader; main property of leader leader-pattern. The following patterns are treated: rule, space, dots. The pattern use-content is ignored, i.e. it still must be implemented. adds a leader to current line area of containing block area the actual leader area is created in the line area @return int +1 for success and -1 for none Return the content width of the boxes generated by this FO. The page the marker was registered is put into the renderer queue. The marker is transferred to it's own marker list, release the area for GC. We also know now whether the area is first/last. This has actually nothing to do with resseting this marker, but the 'marker' from FONode, marking layout status. Called in case layout is to be rolled back. Unregister this marker from the page, it isn't laid aout anyway. More hackery: reset layout status marker. Called before the content is laid out from RetrieveMarker. 6.6.11 fo:page-number-citation Common Usage: The fo:page-number-citation is used to reference the page-number for the page containing the first normal area returned by the cited formatting object. NOTE: It may be used to provide the page-numbers in the table of contents, cross-references, and index entries. Areas: The fo:page-number-citation formatting object generates and returns a single normal inline-area. Constraints: The cited page-number is the number of the page containing, as a descendant, the first normal area returned by the formatting object with an id trait matching the ref-id trait of the fo:page-number-citation (the referenced formatting object). The cited page-number string is obtained by converting the cited page-number in accordance with the number to string conversion properties specified on the ancestor fo:page-sequence of the referenced formatting object. The child areas of the generated inline-area are the same as the result of formatting a result-tree fragment consisting of fo:character flow objects; one for each character in the cited page-number string and with only the "character" property specified. Contents: EMPTY The following properties apply to this formatting object: [7.3 Common Accessibility Properties] [7.5 Common Aural Properties] [7.6 Common Border, Padding, and Background Properties] [7.7 Common Font Properties] [7.10 Common Margin Properties-Inline] [7.11.1 "alignment-adjust"] [7.11.2 "baseline-identifier"] [7.11.3 "baseline-shift"] [7.11.5 "dominant-baseline"] [7.36.2 "id"] [7.17.4 "keep-with-next"] [7.17.5 "keep-with-previous"] [7.14.2 "letter-spacing"] [7.13.4 "line-height"] [7.13.5 "line-height-shift-adjustment"] [7.36.5 "ref-id"] [7.18.4 "relative-position"] [7.36.6 "score-spaces"] [7.14.4 "text-decoration"] [7.14.5 "text-shadow"] [7.14.6 "text-transform"] [7.14.8 "word-spacing"] Return the height remaining in the span. Return true if any column has an unfinished vertical span. Done with a row. Any spans with only one row left are done This means that we can now set the total height for this cell box Loop over all cells with spans and find number of rows remaining if rows remaining = 1, set the height on the cell area and then remove the cell from the list of spanned cells. For other spans, add the rowHeight to the spanHeight. If the cell in this column is in the last row of its vertical span, return the height left. If it's not in the last row, or if the content height <= the content height of the previous rows of the span, return 0. helper method to prevent infinite loops if keeps or spans are not fitting on a page @param true if keeps and spans should be ignored helper method (i.e. hack ;-) to prevent infinite loops if keeps or spans are not fitting on a page @return true if keeps or spans should be ignored Optimum inline-progression-dimension Minimum inline-progression-dimension Maximum inline-progression-dimension Return the content width of the boxes generated by this table FO. Initialize table inline-progression-properties values Offset of content rectangle in inline-progression-direction, relative to table. Dimension of allocation rectangle in inline-progression-direction, determined by the width of the column(s) occupied by the cell Offset of content rectangle, in block-progression-direction, relative to the row. Offset of content rectangle, in inline-progression-direction, relative to the column start edge. Adjust to theoretical column width to obtain content width relative to the column start edge. Minimum ontent height of cell. Set to true if all content completely laid out. Border separation value in the block-progression dimension. Used in calculating cells height. Return the allocation height of the cell area. Note: called by TableRow. We adjust the actual allocation height of the area by the value of border separation (for separate borders) or border height adjustment for collapse style (because current scheme makes cell overestimate the allocation height). Set the final size of cell content rectangles to the actual row height and to vertically align the actual content within the cell rectangle. @param h Height of this row in the grid which is based on the allocation height of all the cells in the row, including any border separation values. Calculate cell border and padding, including offset of content rectangle from the theoretical grid position. Set the column width value in base units which overrides the value from the column-width Property. Return column which doesn't already contain a span or a cell If past the end or no free cells after colNum, return -1 Otherwise return value >= input value. Return type of cell in colNum (1 based) Return cell in colNum (1 based) Store cell starting at cellColNum (1 based) and spanning numCols If any of the columns is already occupied, return false, else true Called by parent FO to initialize information about cells started in previous rows which span into this row. The layout operation modifies rowSpanMgr Before starting layout for the first time, initialize information about spanning rows, empty cells and spanning columns. Implementation for fo:wrapper formatting object. The wrapper object serves as a property holder for it's children objects. Content: (#PCDATA|%inline;|%block;)* Properties: id base class for representation of formatting objects and their processing adds characters (does nothing here) @param data text @param start start position @param length length of the text generates the area or areas for this formatting object and adds these to the area. This method should always be overridden by all sub classes @param area returns the name of the formatting object @return the name of this formatting objects lets outside sources access the property list first used by PageNumberCitation to find the "id" property @param name - the name of the desired property to obtain @return the property Return the "content width" of the areas generated by this FO. This is used by percent-based properties to get the dimension of the containing block. If an FO has a property with a percentage value, that value is usually calculated on the basis of the corresponding dimension of the area which contains areas generated by the FO. NOTE: subclasses of FObj should implement this to return a reasonable value! removes property id @param idReferences the id to remove Set writing mode for this FO. Find nearest ancestor, including self, which generates reference areas and use the value of its writing-mode property. If no such ancestor is found, use the value on the root FO. base class for representation of mixed content formatting objects and their processing Value of marker before layout begins value of marker after break-after where the layout was up to. for FObjs it is the child number for FOText it is the character number lets outside sources access the property list first used by PageNumberCitation to find the "id" property returns null by default, overide this function when there is a property list @param name - the name of the desired property to obtain @returns the property At the start of a new span area layout may be partway through a nested FO, and balancing requires rollback to this known point. The snapshot records exactly where layout is at. @param snapshot a Vector of markers (Integer) @returns the updated Vector of markers (Integers) When balancing occurs, the flow layout() method restarts at the point specified by the current marker snapshot, which is retrieved and restored using this method. @param snapshot the Vector of saved markers (Integers) Builds the formatting object tree. Table mapping element names to the makers of objects representing formatting objects. Class that builds a property list for each formatting object. Current formatting object being handled. The root of the formatting object tree. Set of names of formatting objects encountered but unknown. The class that handles formatting and rendering to a stream. Sets the stream renderer that will be used as output. Add a mapping from element name to maker. Add a mapping from property name to maker. This object may be also be a subclass of Length, such as PercentLength, TableColLength. public Double getDouble() { return new Double(this.number.doubleValue()); } public Integer getInteger() { return new Integer(this.number.intValue()); } Returns the "master-reference" attribute of this page master reference Checks whether or not a region name exists in this master set @returns true when the region name specified has a region in this LayoutMasterSet Base PageMasterReference class. Provides implementation for handling the master-reference attribute and containment within a PageSequenceMaster Returns the "master-reference" attribute of this page master reference Gets the formating object name for this object. Subclasses must provide this. @return the element name of this reference. e.g. fo:repeatable-page-master-reference Checks that the parent is the right element. The default implementation checks for fo:page-sequence-master This class uses the 'format', 'groupingSeparator', 'groupingSize', and 'letterValue' properties on fo:page-sequence to return a string corresponding to the supplied integer page number. This provides pagination of flows onto pages. Much of the logic for paginating flows is contained in this class. The main entry point is the format method. The parent root object the set of layout masters (provided by the root object) Map of flows to their flow name (flow-name, Flow) the "master-reference" attribute, which specifies the name of the page-sequence-master or page-master to be used to create pages in the sequence specifies page numbering type (auto|auto-even|auto-odd|explicit) used to determine whether to calculate auto, auto-even, auto-odd the current subsequence while formatting a given page sequence the current index in the subsequence list the name of the current page master Runs the formatting of this page sequence into the given area tree Creates a new page area for the given parameters @param areaTree the area tree the page should be contained in @param firstAvailPageNumber the page number for this page @param isFirstPage true when this is the first page in the sequence @param isEmptyPage true if this page will be empty (e.g. forced even or odd break) @return a Page layout object based on the page master selected from the params Formats the static content of the current page Returns the next SubSequenceSpecifier for the given page sequence master. The result is bassed on the current state of this page sequence. Returns the next simple page master for the given sequence master, page number and other state information Returns true when there is more flow elements left to lay out. Returns the flow that maps to the given region class for the current page master. This is an abstract base class for pagination regions Creates a Region layout object for this pagination Region. Returns the default region name (xsl-region-before, xsl-region-start, etc.) Returns the element name ("fo:region-body", "fo:region-start", etc.) Returns the name of this region Checks to see if a given region name is one of the reserved names @param name a region name to check @return true if the name parameter is a reserved region name Max times this page master can be repeated. INFINITE is used for the unbounded case The fo:root formatting object. Contains page masters, root extensions, page-sequences. keeps count of page number from over PageSequence instances Some properties, such as 'force-page-count', require a page-sequence to know about some properties of the next. @returns succeeding PageSequence; null if none Page regions (regionClass, Region) Classes that implement this interface can be added to a PageSequenceMaster, and are capable of looking up an appropriate PageMaster. Called before a new page sequence is rendered so subsequences can reset any state they keep during the formatting process. Return object used to calculate base Length for percent specifications. Return object used to calculate base Length for percent specifications. Return object used to calculate base Length for percent specifications. Set the appropriate components when the "base" property is set. Set the appropriate components when the "base" property is set. Return object used to calculate base Length for percent specifications. Set the appropriate components when the "base" property is set. Set the appropriate components when the "base" property is set. Set the appropriate components when the "base" property is set. Set the appropriate components when the "base" property is set. Return object used to calculate base Length for percent specifications. Return object used to calculate base Length for percent specifications. Return object used to calculate base Length for percent specifications. Set the appropriate components when the "base" property is set. Return object used to calculate base Length for percent specifications. Return object used to calculate base Length for percent specifications. Return object used to calculate base Length for percent specifications. Set the appropriate components when the "base" property is set. Return object used to calculate base Length for percent specifications. Return object used to calculate base Length for percent specifications. Return object used to calculate base Length for percent specifications. Return object used to calculate base Length for percent specifications. The original specified value for properties which inherit specified values. Gets or setd the original value specified for the property attribute. Accessor functions for all possible Property datatypes Return the value explicitly specified on this FO. @param propertyName The name of the property whose value is desired. It may be a compound name, such as space-before.optimum. @return The value if the property is explicitly set or set by a shorthand property, otherwise null. Return the value explicitly specified on this FO. @param propertyName The name of the property whose value is desired. It may be a compound name, such as space-before.optimum. @return The value if the property is explicitly set, otherwise null. Return the value explicitly specified on this FO. @param propertyName The name of the base property whose value is desired. @return The value if the property is explicitly set, otherwise null. Return the value of this property inherited by this FO. Implements the inherited-property-value function. The property must be inheritable! @param propertyName The name of the property whose value is desired. @return The inherited value, otherwise null. Return the property on the current FlowObject if it is specified, or if a corresponding property is specified. If neither is specified, it returns null. Return the property on the current FlowObject. If it isn't set explicitly, this will try to compute it based on other properties, or if it is inheritable, to return the inherited value. If all else fails, it returns the default value. Return the property on the current FlowObject. Depending on the passed flags, this will try to compute it based on other properties, or if it is inheritable, to return the inherited value. If all else fails, it returns the default value. Return the "nearest" specified value for the given property. Implements the from-nearest-specified-value function. @param propertyName The name of the property whose value is desired. @return The computed value if the property is explicitly set on some ancestor of the current FO, else the initial value. Return the value of this property on the parent of this FO. Implements the from-parent function. @param propertyName The name of the property whose value is desired. @return The computed value on the parent or the initial value if this FO is the root or is in a different namespace from its parent. Given an absolute direction (top, bottom, left, right), return the corresponding writing model relative direction name for the flow object. Uses the stored writingMode. Given a writing mode relative direction (start, end, before, after) return the corresponding absolute direction name for the flow object. Uses the stored writingMode. Set the writing mode traits for the FO with this property list. Name of font-size property attribute to set first. This seems to be just a helper method that looks up a property maker and creates the property. Convenience function to return the Maker for a given property. Return the name of the property whose value is being set. Construct an instance of a PropertyMaker. The property name is set to "UNKNOWN". Construct an instance of a PropertyMaker for the given property. The name of the property to be made. Default implementation of isInherited. A boolean indicating whether this property is inherited. Return a boolean indicating whether this property inherits the "specified" value rather than the "computed" value. The default is to inherit the "computed" value. If true, property inherits the value specified. Return an object implementing the PercentBase interface. This is used to handle properties specified as a percentage of some "base length", such as the content width of their containing box. Overridden by subclasses which allow percent specifications. See the documentation on properties.xsl for details. Return a Maker object which is used to set the values on components of compound property types, such as "space". Overridden by property maker subclasses which handle compound properties. The name of the component for which a Maker is to returned, for example "optimum", if the FO attribute is space.optimum='10pt'. Return a property value for the given component of a compound property. NOTE: this is only to ease porting when calls are made to PropertyList.get() using a component name of a compound property, such as get("space.optimum"). The recommended technique is: get("space").getOptimum(). Overridden by property maker subclasses which handle compound properties. A property value for a compound property type such as SpaceProperty. The name of the component whose value is to be returned. Return a property value for a compound property. If the property value is already partially initialized, this method will modify it. The Property object representing the compound property, such as SpaceProperty. The name of the component whose value is specified. The propertyList being built. The FO whose properties are being set. A compound property object. Set a component in a compound property and return the modified compound property object. This default implementation returns the original base property without modifying it. It is overridden by property maker subclasses which handle compound properties. The Property object representing the compound property, such as SpaceProperty. The name of the component whose value is specified. A Property object holding the specified value of the component to be set. The modified compound property object. Create a Property object from an attribute specification. The PropertyList object being built for this FO. The attribute value. The current FO whose properties are being set. The initialized Property object. Return a String to be parsed if the passed value corresponds to a keyword which can be parsed and used to initialize the property. For example, the border-width family of properties can have the initializers "thin", "medium", or "thick". The foproperties.xml file specifies a length value equivalent for these keywords, such as "0.5pt" for "thin". These values are considered parseable, since the Length object is no longer responsible for parsing unit expresssions. The string value of property attribute. A string containging a parseable equivalent or null if the passed value isn't a keyword initializer for this Property. Return a Property object based on the passed Property object. This method is called if the Property object built by the parser isn't the right type for this property. It is overridden by subclasses when the property specification in foproperties.xml specifies conversion rules. The Property object return by the expression parser The PropertyList object being built for this FO. The current FO whose properties are being set. A Property of the correct type or null if the parsed value can't be converted to the correct type. Return a Property object representing the initial value. The PropertyList object being built for this FO. Return a Property object representing the initial value. The PropertyList object being built for this FO. The parent FO for the FO whose property is being made. A Property subclass object holding a "compound" property object initialized to the default values for each component. Return a Property object representing the value of this property, based on other property values for this FO. A special case is properties which inherit the specified value, rather than the computed value. The PropertyList for the FO. Property A computed Property value or null if no rules are specified (in foproperties.xml) to compute the value. classes representating the status of laying out a formatting object This represents an unknown element. For example with unsupported namespaces. This prevents any further problems arising from the unknown data. inner class for making unknown xml objects. make an unknown xml object. @param parent the parent formatting object @param propertyList the explicit properties of this object @return the unknown xml object returns the maker for this object. @return the maker for an unknown xml object constructs an unknown xml object (called by Maker). @param parent the parent formatting object @param propertyList the explicit properties of this object This interface is implemented by the ApocDriver class to permit usage from COM applications. This is the recommended method of supporting invocation from COM application as it permits interface versioning. A bitmap image that will be referenced by fo:external-graphic. This class and the associated ColorSpace class are PDF specific ideally will be moved to the PDF library project at some point in the future. Internally, Apoc should handle images using the standard framework Bitmap class. Filter that will be applied to image data Constructs a new ApocImage using the supplied bitmap. Does not hold a reference to the passed bitmap. Instead the image data is extracted from bitmap on construction. The location of bitmap The image data Return the image URL. the image URL (as a string) Return the image width. the image width Return the image height. the image height Return the number of bits per pixel. number of bits per pixel Return the image data size The image data size Return the image data (uncompressed). the image data Return the image color space. the image color space (Apoc.Datatypes.ColorSpace) Returns the implementation that should be applied to the bitmap data. Extracts the raw data from the image into a byte array suitable for including in the PDF document. The image is always extracted as a 24-bit RGB image, regardless of it's original colour space and colour depth. The from which the data is extracted A byte array containing the raw 24-bit RGB data Parses the contents of a JPEG image header to infer the colour space and bits per pixel. JPEG image data Contains number of bitplanes, color space and optional ICC Profile Raw ICC Profile Class constructor. Reads a 16-bit integer from the underlying stream Reads a 32-bit integer from the underlying stream Reads the specified number of bytes from theunderlying stream and converts them to a string using the ASCII encoding. Reads the initial marker which should be SOI. After invoking this method the stream will point to the location immediately after the fiorst marker. Reads the next JPEG marker and returns its marker code. Skips over the parameters for any marker we don't want to process. Parses a <uri-specification> as defined by section 5.11 of the XSL specification. This class may be better expressed as a datatype residing in Telerik.Apoc.DataTypes. Store all hyphenation related properties on an FO. Public "structure" allows direct member access. Store all hyphenation related properties on an FO. Public "structure" allows direct member access. Total height of content of this area. Creates a new Area instance. @param fontState a FontState value @param allocationWidth the inline-progression dimension of the content rectangle of the Area @param maxHeight the maximum block-progression dimension available for this Area (its allocation rectangle) Set the allocation width. @param w The new allocation width. This sets content width to the same value. Currently only called during layout of Table to set the width to the total width of all the columns. Note that this assumes the column widths are explicitly specified. Tell whether this area contains any children which are not DisplaySpace. This is used in determining whether to honour keeps. Returns content height of the area. @return Content height in millipoints Returns allocation height of this area. The allocation height is the sum of the content height plus border and padding in the vertical direction. @return allocation height in millipoints Return absolute Y position of the current bottom of this area, not counting any bottom padding or border. This is used to set positions for link hotspots. In fact, the position is not really absolute, but is relative to the Ypos of the column-level AreaContainer, even when the area is in a page header or footer! Set "absolute" Y position of the top of this area. In fact, the position is not really absolute, but relative to the Ypos of the column-level AreaContainer, even when the area is in a page header or footer! It is set from the value of getAbsoluteHeight() on the parent area, just before adding this area. Return space remaining in the vertical direction (height). This returns maximum available space - current content height Note: content height should be based on allocation height of content! @return space remaining in base units (millipoints) Set the content height to the passed value if that value is larger than current content height. If the new content height is greater than the maximum available height, set the content height to the max. available (!!!) @param height allocation height of content in millipoints object containing information on available fonts, including metrics List of root extension objects Auxillary function for retrieving markers. Auxillary function for retrieving markers. Auxillary function for retrieving markers. Store all hyphenation related properties on an FO. Public "structure" allows direct member access. This class represents a Block Area. A block area is made up of a sequence of Line Areas. This class is used to organise the sequence of line areas as inline areas are added to this block it creates and ands line areas to hold the inline areas. This uses the line-height and line-stacking-strategy to work out how to stack the lines. Add a Line Area to this block area. Used internally to add a completed line area to this block area when either a new line area is created or this block area is completed. @param la the LineArea to add Get the current line area in this block area. This is used to get the current line area for adding inline objects to. This will return null if there is not enough room left in the block area to accomodate the line area. @return the line area to be used to add inlie objects Create a new line area to add inline objects. This should be called after getting the current line area and discovering that the inline object will not fit inside the current line. This method will create a new line area to place the inline object into. This will return null if the new line cannot fit into the block area. @return the new current line area, which will be empty. Notify this block that the area has completed layout. Indicates the the block has been fully laid out, this will add (if any) the current line area. Return the maximum space remaining for this area's content in the block-progression-dimension. Remove top and bottom padding and spacing since these reduce available space for content and they are not yet accounted for in the positioning of the object. Depending on the column-count of the next FO, determine whether a new span area needs to be constructed or not, and return the appropriate ColumnArea. The next cut of this method should also inspect the FO to see whether the area to be returned ought not to be the footnote or before-float reference area. @param fo The next formatting object @returns the next column area (possibly the current one) Add a new span area with specified number of column areas. @param numColumns The number of column areas @returns AreaContainer The next column area This almost does what getNewArea() does, without actually returning an area. These 2 methods can be reworked. @param fo The next formatting object @returns bool True if we need to balance. This is where the balancing algorithm lives, or gets called. Right now it's primitive: get the total content height in all columns, divide by the column count, and add a heuristic safety factor. Then the previous (unbalanced) span area is removed, and a new one added with the computed max height. Determine remaining height for new span area. Needs to be modified for footnote and before-float reference areas when those are supported. @returns int The remaining available height in millipoints. Used by resetSpanArea() and addSpanArea() to adjust the main reference area height before creating a new span. Used in Flow when layout returns incomplete. @returns bool Is this the last column in this span? This variable is unset by getNextArea(), is set by addSpanArea(), and may be set by resetSpanArea(). @returns bool Is the span area new or not? Return a full copy of the BorderAndPadding information. This clones all padding and border information. @return The copy. Creates a key from the given strings Class constructor Defaults the letter spacing to 0 millipoints. Gets width of given character identifier plus in millipoints (1/1000ths of a point). Map a Unicode character to a code point Any Unicode character. Store all hyphenation related properties on an FO. Public "structure" allows direct member access. A font descriptor specifies metrics and other attributes of a font, as distinct from the metrics of individual glyphs. See page 355 of PDF 1.4 specification for more information. Gets a collection of flags providing various font characteristics. Gets the smallest rectangle that will encompass the shape that would result if all glyhs of the font were placed with their origins coincident. Gets the main italic angle of the font expressed in tenths of a degree counterclockwise from the vertical. TODO: The thickness, measured horizontally, of the dominant vertical stems of the glyphs in the font. Gets a value that indicates whether this font has kerning support. Gets a value that indicates whether this font program may be legally embedded within a document. Gets a value that indicates whether this font program my be subsetted. Gets a byte array representing a font program to be embedded in a document. If is false it is acceptable for this method to return null. Gets kerning information for this font. If is false it is acceptable for this method to return null. Interface for font metric classes Specifies the maximum distance characters in this font extend above the base line. This is the typographic ascent for the font. Specifies the maximum distance characters in this font extend below the base line. This is the typographic descent for the font. Gets the vertical coordinate of the top of flat captial letters. Gets the value of the first character used in the font Gets the value of the last character used in the font Gets a reference to a font descriptor. A descriptor is akin to the PDF FontDescriptor object (see page 355 of PDF 1.4 spec). Gets the width of a character in 1/1000ths of a point size located at the supplied codepoint. For a type 1 font a code point is an octal code obtained from a character encoding scheme (WinAnsiEncoding, MacRomaonEncoding, etc). For example, the code point for the space character is 040 (octal). For a type 0 font a code point represents a GID (Glyph index). A character code point. Gets the widths of all characters in 1/1000ths of a point size. This is NOT the content width of the instream-foreign-object. This is the content width for a Box. This is NOT the content height of the instream-foreign-object. This is the content height for a Box. amount of space added since the original layout - needed by links @param ul true if text should be underlined And eatable InlineSpace is discarded if it occurs as the first pending element in a LineArea adds text to line area @return int character position adds a Leader; actually the method receives the leader properties and creates a leader area or an inline area which is appended to the children of the containing line area. leader pattern use-content is not implemented. adds pending inline areas to the line area normally done, when the line area is filled and added as child to the parent block area aligns line area Balance (vertically) the inline areas within this line. sets hyphenation related traits: language, country, hyphenate, hyphenation-character and minimum number of character to remain one the previous line and to be on the next line. creates a leader as String out of the given char and the leader length and wraps it in an InlineArea which is returned calculates the width of space which has to be inserted before the start of the leader, so that all leader characters are aligned. is used if property leader-align is set. At the moment only the value for leader-align="reference-area" is supported. calculates the used space in this line area extracts a complete word from the character data Calculates the wordWidth using the actual fontstate adds a single character to the line area tree Same as addWord except that characters in wordBuf is mapped to the current fontstate's encoding adds a InlineArea containing the String startChar+wordBuf to the line area children. Checks if it's legal to break a word in the middle based on the current language property. @return true if legal to break word in the middle Helper method for getting the width of a unicode char from the current fontstate. This also performs some guessing on widths on various versions of space that might not exists in the font. Helper method to determine if the character is a space with normal behaviour. Normal behaviour means that it's not non-breaking Method to determine if the character is a nonbreaking space. @return true if the character represents any kind of space Add a word that might contain non-breaking spaces. Split the word into WordArea and InlineSpace and add it. If addToPending is true, add to pending areas. an object that stores a rectangle that is linked, and the LineArea that it is logically associated with @author Arved Sandstrom @author James Tauber the linked Rectangle the associated LineArea the associated InlineArea a set of rectangles on a page that are linked to a common destination the destination of the links the set of rectangles Store all hyphenation related properties on an FO. Public "structure" allows direct member access. Store all hyphenation related properties on an FO. Public "structure" allows direct member access. Ensure that page is set not only on B.A.C. but also on the three top-level reference areas. @param area The region-body area container (special) Store all hyphenation related properties on an FO. Public "structure" allows direct member access. This class holds information about text-decoration @return true if text should be underlined set text as underlined @return true if text should be overlined Thrown during creation of PDF font object if the font's license is violated, e.g. attempting to subset a font that does not permit subsetting. Was originally called PdfDocument, but this name is now in use by the Telerik.Pdf library. Eventually all code in this class should either be moved to either the Telerik.Pdf library, or to the PdfRenderer. Get the root Outlines object. This method does not write the outline to the Pdf document, it simply creates a reference for later. Make an outline object and add it to the given outline @param parent parent PdfOutline object @param label the title for the new outline object @param action the PdfAction to reference get the /Resources object for the document @return the /Resources object Creates all the necessary PDF objects required to represent a font object in a PDF document. Generates object id's. Returns a subclass of the PdfFont class that may be one of PdfType0Font, PdfType1Font or PdfTrueTypeFont. The type of subclass returned is determined by the type of the font parameter. The PDF font identifier, e.g. F15 Underlying font object. Creates a character indexed font from cidFont The font and cidFont will be different object references since the font parameter will most likely be a . The Pdf font identifier, e.g. F15 Required to access the font descriptor. The underlying CID font. Returns the next available Pdf object identifier. Creates an instance of the class The Pdf font identifier, e.g. F15 Creates an instance of the class that defaults the font encoding to WinAnsiEncoding. A ProxyFont must first be resolved before getting the IFontMetircs implementation of the underlying font. Sets up the PDF fonts. Assigns the font (with metrics) to internal names like "F1" and assigns family-style-weight triplets to the fonts. First 16 indices are used by base 14 and generic fonts Handles mapping font triplets to a IFontMetric implementor Adds all the system fonts to the FontInfo object. Adds metrics for basic fonts and useful family-style-weight triplets for lookup. Determines what type of font to instantiate. Returns true is familyName represents one of the base 14 fonts; otherwise false. Gets the next available font name. A font name is defined as an integer prefixed by the letter 'F'. Add the fonts in the font info to the PDF document. Object that creates PdfFont objects. Resources object to add fonts too. A marker interface to indicate an object can be passed to the property. Base class for the standard 14 fonts as defined in the PDF spec. Class constructor. Will always return null since the standard 14 fonts do not have a FontDescriptor. It is possible to override the default metrics, but the current version of Apoc does not support this feature. Base class for a CID (Character Indexed) font. There are two types of CIDFont: Type 0 and Type 2. A Type 0 CIDFont contains glyph description based on Adobe Type 1 font format; a Type 2 CIDFont contains glyph descriptions based on the TrueType font format. See page 338 of the Adode PDF 1.4 specification for futher details. Gets the PostScript name of the font. Gets a dictionary mapping character codes to unicode values Returns . Gets a string identifying the issuer of the character collections. The default implementation returns . Gets a string that uniquely names the character collection. The default implementation returns . Gets the supplement number of the character collection. The default implementation returns . Gets the default width for all glyphs. The default implementation returns Base class for PDF font classes Get the encoding of the font. A font encoding defines a mapping between a character code and a code point. Gets the base font name. Gets the type of font, e.g. Type 0, Type 1, etc. Gets the font subtype. Gets a reference to a FontDescriptor Gets a boolean value indicating whether this font supports multi-byte characters Maps a Unicode character to a character index. A Unicode character. See See See See See See See Represents a collection of font descriptor flags specifying various characterisitics of a font. The following lists the bit positions and associated flags: 1 - FixedPitch 2 - Serif 3 - Symbolic 4 - Script 6 - Nonsymbolic 7 - Italic 17 - AllCap 18 - SmallCap 19 - ForceBold Handy enumeration used to reference individual bit positions in the BitVector32. Default class constructor. Class constructor. Initialises the flags BitVector with the supplied integer. Gets the font descriptor flags as a 32-bit signed integer. Collection of font properties such as face name and whether the a font is bold and/or italic. Class constructor. Regular : bold=false, italic=false Bold : bold=true, italic=false Italic : bold=false, italic=true BoldItalic : bold=true, italic=true Font face name, e.g. Arial. Bold flag. Italic flag. A proxy object that delegates all operations to a concrete subclass of the Font class. Flag that indicates whether the underlying font has been loaded. Font details such as face name, bold and italic flags The font that does all the work. Determines what type of "real" font to instantiate. Class constructor. Loads the underlying font. Gets the underlying font. Represents a TrueType font program. Wrapper around a Win32 HDC. Provides font metrics using the Win32 Api. List of kerning pairs. Maps a glyph index to a PDF width Class constructor Creates a object from baseFontName Returns . See A WinAnsi codepoint. A Type 2 CIDFont is a font whose glyph descriptions are based on the TrueType font format. TODO: Support font subsetting Wrapper around a Win32 HDC. Provides font metrics using the Win32 Api. List of kerning pairs. Maps a glyph index to a PDF width Windows font name, e.g. 'Arial Bold' Maps a glyph index to a character code. Maps character code to glyph index. The array is based on the value of . Class constructor. Creates a object from baseFontName Class destructor. Returns . A subclass of Type2CIDFont that generates a subset of a TrueType font. Maps a glyph index to a subset index. Quasi-unique six character name prefix. Class constructor. Creates the index mappings list and adds the .notedef glyphs Enumeration that dictates how Apoc should treat fonts when producing a PDF document.

Each of the three alernatives has particular advantages and disadvantages, which will be explained here.

The member specifies that all fonts should be linked. This option will produce the smallest PDF document because the font program required to render individual glyphs is not embedded in the PDF document. However, this option does possess two distinct disadvantages:

  1. Only characters in the WinAnsi character encoding are supported (i.e. Latin)
  2. The PDF document will not render correctly if the linked font is not installed.
///

The option will copy the contents of the entire font program into the PDF document. This will guarantee correct rendering of the document on any system, however certain fonts - especially CJK fonts - are extremely large. The MS Gothic TrueType collection, for example, is 8MB. Embedding this font file would produce a ridicuously large PDF.

Finally, the option will only copy the required glyphs required to render a PDF document. This option will ensure that a PDF document is rendered correctly on any system, but does incur a slight processing overhead to subset the font.

Fonts are linked. The entire font program is embedded. The font program is subsetted and embedded. The current vertical position in millipoints from bottom. The current horizontal position in millipoints from left. The horizontal position of the current area container. The PDF Document being created. The /Resources object of the PDF document being created. The current stream to add PDF commands to. The current annotation list to add annotations to. The current page to add annotations to. True if a TJ command is left to be written. The previous Y coordinate of the last word written. Used to decide if we can draw the next word on the same line. The previous X coordinate of the last word written. Used to calculate how much space between two words. The width of the previous word. Used to calculate space between. Reusable word area string buffer to reduce memory usage. TODO: remove use of this. User specified rendering options. The current (internal) font name. The current font size in millipoints. The current color/gradient to fill shapes with. Previous values used for text-decoration drawing. Previous values used for text-decoration drawing. Previous values used for text-decoration drawing. Previous values used for text-decoration drawing. Previous values used for text-decoration drawing. Previous values used for text-decoration drawing. Previous values used for text-decoration drawing. Previous values used for text-decoration drawing. Previous values used for text-decoration drawing. Previous values used for text-decoration drawing. Previous values used for text-decoration drawing. Previous values used for text-decoration drawing. Provides triplet to font resolution. Handles adding base 14 and all system fonts. The IDReferences for this document. Create the PDF renderer. Assigns renderer options to this PdfRenderer This property will only accept an instance of the PdfRendererOptions class If value is not an instance of PdfRendererOptions add a line to the current stream @param x1 the start x location in millipoints @param y1 the start y location in millipoints @param x2 the end x location in millipoints @param y2 the end y location in millipoints @param th the thickness in millipoints @param r the red component @param g the green component @param b the blue component add a line to the current stream @param x1 the start x location in millipoints @param y1 the start y location in millipoints @param x2 the end x location in millipoints @param y2 the end y location in millipoints @param th the thickness in millipoints @param rs the rule style @param r the red component @param g the green component @param b the blue component add a rectangle to the current stream @param x the x position of left edge in millipoints @param y the y position of top edge in millipoints @param w the width in millipoints @param h the height in millipoints @param stroke the stroke color/gradient add a filled rectangle to the current stream @param x the x position of left edge in millipoints @param y the y position of top edge in millipoints @param w the width in millipoints @param h the height in millipoints @param fill the fill color/gradient @param stroke the stroke color/gradient add a filled rectangle to the current stream @param x the x position of left edge in millipoints @param y the y position of top edge in millipoints @param w the width in millipoints @param h the height in millipoints @param fill the fill color/gradient render image area to PDF @param area the image area to render render a foreign object area render inline area to PDF @param area inline area to render Convert a char to a multibyte hex representation Checks to see if we have some text rendering commands open still and writes out the TJ command to the stream if we do render page into PDF @param page page to render defines a string containing dashArray and dashPhase for the rule style Renders an area's background. The area whose background is to be rendered. The x position of the left edge in millipoints. The y position of top edge in millipoints. The width in millipoints. The height in millipoints. Renders an image, rendered at the image's intrinsic size. This by default calls drawImageScaled() with the image's intrinsic width and height, but implementations may override this method if it can provide a more efficient solution. The x position of left edge in millipoints. The y position of top edge in millipoints. The image to be rendered. Renders an image, scaling it to the given width and height. If the scaled width and height is the same intrinsic size of the image, the image is not scaled The x position of left edge in millipoints. The y position of top edge in millipoints. The width in millipoints. The height in millipoints. The image to be rendered. Renders an image, clipping it as specified. The x position of left edge in millipoints. The y position of top edge in millipoints. The left edge of the clip in millipoints. The top edge of the clip in millipoints. The clip width in millipoints. The clip height in millipoints. The image to be rendered. render display space @param space the display space to render render inline space @param space space to render render leader area @param area area to render This class can be used to control various properties of PDF files created by Apoc XSL-FO. Can be used to control certain values in the generated PDF's information dictionary. These values are typically displayed in a document summary dialog of PDF viewer applications. This class also allows security settings to be specified that will cause generated PDF files to be encrypted and optionally password protected. The given initial value zero's out first two bits. The PDF specification dictates that these entries must be 0. Specifies the Title of the PDF document. The default value is null. This value will be embedded in the PDF information dictionary. Specifies the Subject of the PDF document. The default value is null. This value will be embedded in the PDF information dictionary. Specifies the Author of the PDF document. The default value is null. This value will be embedded in the PDF information dictionary. Returns the Creator of the PDF document. This method will always return "XSL-FO http://www.w3.org/1999/XSL/Format". Returns the Producer of the PDF document. This method will return the assembly name and version of Apoc. Returns a list of keywords as a comma-separated string If no keywords exist the empty string is returned Adds a keyword to the PDF document. Keywords are embedded in the PDF information dictionary. The keyword to be added. Specifies the owner password that will protect full access to any generated PDF documents. If either the owner or the user password is specified, then the document will be encrypted. The default value is null. Specifies the user password that will protect access to any generated PDF documents. If either the owner or the user password is specified, then the document will be encrypted. The default value is null. Returns true if any permissions have been set. Returns the PDF permissions encoded as an 32-bit integer. Enables or disables printing. The default value is true. Enables or disables modifying document contents (other than text annotations and interactive form fields). The default value is true. Enables or disables copying of text and graphics. The default value is true. Enables or disables adding or modifying text annotations and interactive form fields. The default value is true. Specifies how Apoc should treat fonts. The default value is FontType.Link Gets or sets a value that indicates whether to enable kerning. The default value is false Adds fileInfo to the private font collection. Absolute path to a TrueType font or collection. If fileInfo is null. If fileInfo does not exist. If fileInfo has already been added. If fileInfo cannot be added to the system font collection. Specifies the output format that Apoc XSL-FO should render to. Currently the only useful format supported is PDF. The XML format is intended for informational/debugging purposes only. Instructs Apoc to output an XML representation. This format is useful only for informational/debugging purposes. Instructs Apoc to output PDF. This class can be used to control various properties of PDF files created by the XML tree renderer. Default XML renderer properties Determines if the XMLRenderer should use verbose output This class acts as a bridge between the XML:FO parser and the formatting/rendering classes. It will queue PageSequences up until all the IDs required by them are satisfied, at which time it will render the pages. StreamRenderer is created by Driver and called from FOTreeBuilder when a PageSequence is created, and AreaTree when a Page is formatted. Keep track of the number of pages rendered. The renderer being used. The formatting results to be handed back to the caller. The FontInfo for this renderer. The list of pages waiting to be renderered. The current set of IDReferences, passed to the areatrees and pages. This is used by the AreaTree as a single map of all IDs. The list of extensions. The list of markers. Format the PageSequence. The PageSequence formats Pages and adds them to the AreaTree, which subsequently calls the StreamRenderer instance (this) again to render the page. At this time the page might be printed or it might be queued. A page might not be renderable immediately if the IDReferences are not all valid. In this case we defer the rendering until they are all valid. Try to process the queue from the first entry forward. If an entry can't be processed, then the queue can't move forward, so return. A RenderQueueEntry consists of the Page to be queued, plus a list of outstanding ID references that need to be resolved before the Page can be renderered. The Page that has outstanding ID references. MG - to replace the outer this Java nonsense */ A list of ID references (names). See if the outstanding references are resolved in the current copy of IDReferences. Auxillary function for retrieving markers. Auxillary function for retrieving markers. Auxillary function for retrieving markers. A subclass of FileStream that automatically deletes the file supplied to the class constructor when Close() is invoked Default class constuctor that opens the supplied file filename using the FileMode.Open parameter.
Overriden. Attempts to delete the filename supplied to the class constructor using . If an exception is thrown, it is caught and ignored maxDelimChar stores the value of the delimiter character with the highest value. It is used to optimize the detection of delimiter characters. Set maxDelimChar to the highest char in the delimiter set. Constructs a string tokenizer for the specified string. All characters in the delim argument are the delimiters for separating tokens.
If the returnDelims flag is true, then the delimiter characters are also returned as tokens. Each delimiter is returned as a string of length one. If the flag is false, the delimiter characters are skipped and only serve as separators between tokens.
Constructs a string tokenizer for the specified string. The characters in the delim argument are the delimiters for separating tokens. Delimiter characters themselves will not be treated as tokens. a string to be parsed. the delimiters. Constructs a string tokenizer for the specified string. The tokenizer uses the default delimiter set, which is the space character, the tab character, the newline character, the carriage-return character, and the form-feed character. Delimiter characters themselves will not be treated as tokens. a string to be parsed Skips delimiters starting from the specified position. If retDelims is false, returns the index of the first non-delimiter character at or after startPos. If retDelims is true, startPos is returned. Skips ahead from startPos and returns the index of the next delimiter character encountered, or maxPosition if no such delimiter is found. Returns the next token from this string tokenizer. the next token from this string tokenizer. Returns the same value as the hasMoreTokens method. It exists so that this class can implement the Enumeration interface. true if there are more tokens; false otherwise. Tests if there are more tokens available from this tokenizer's string. If this method returns true, then a subsequent call to nextToken with no argument will successfully return a token. true if and only if there is at least one token in the string after the current position; false otherwise. Returns the same value as the nextToken method, except that its declared return value is Object rather than String. It exists so that this class can implement the Enumeration interface. Calculates the number of times that this tokenizer's nextToken method can be called before it generates an exception. The current position is not advanced. the number of tokens remaining in the string using the current delimiter set. Provides a static method that applies an XSL stylesheet to an XML document Private constructor to prevent instantiation Applies the style sheet xslFile to the XML document identified by xmlFile. Path to an XML document Path to an XSL stylesheet A Stream representing a sequence of XSL:FO elements The files xmlFile and xslFile do not exist or are inaccessible. The XSL file cannot be compiled This method will create a temporary filename in the system's temporary directory, which is automatically deleted when the returned stream is closed. A collection of instances. Adds the supplied to the end of the collection. Gets the at index. Gets the number of objects contained by this Returns the number of instances that represent bfrange's Returns the number of instances that represent bfchar's Returns an ArrayList enumerator that references a read-only version of the BfEntry list. A class can represent either a bfrange or bfchar. Class cosntructor. Increments the end index by one. Incrementing the end index turns this BfEntry into a bfrange. Returns true if this BfEntry represents a glyph range, i.e. the start index is not equal to the end index. Returns true if this BfEntry represents a bfchar entry, i.e. the start index is equal to the end index. A File Identifier is described in section 8.3 of the PDF specification. The first string is a permanent identifier based on the contents of the file at the time it was originally created, and does not change as the file is incrementally updated. The second string is a changing identifier based on the file's contents the last time it was updated. If this class were being use to update a PDF's file identifier, we'd need to add a method to parse an existing file identifier. Initialises the CreatedPart and ModifiedPart to a randomly generated GUID. Initialises the CreatedPart and ModifiedPart to the passed string. Returns the CreatedPart as a byte array. Returns the ModifiedPart as a byte array. Represents an entry in the directory table Returns the table tag as a string Gets the table tag encoded as an unsigned 32-bite integer. Gets or sets a value that represents a offset, i.e. the number of bytes from the beginning of the file. Gets or sets a value representing the number number of bytes a object occupies in a stream. Gets or sets value that represents a checksum of a . Gets an instance of an implementation that is capable of parsing the table identified by tab. Class designed to parse a TrueType font file. A Big Endian stream. Used to identity a font within a TrueType collection. Maps a table name (4-character string) to a A dictionary of cached instances. The index is the table name. Maps a glyph index to a subset index. Class constructor. Font data stream. Class constructor. Font data stream. Name of a font in a TrueType collection. Gets or sets a dictionary containing glyph index to subset index mappings. Gets the underlying . Gets the number tables. Gets a value indicating whether or not this font contains the supplied table. A table name. Gets a reference to the table structure identified by tableName Only the following tables are supported: - Font header, - Horizontal header, - Horizontal metrics, - Maximum profile, - Index to location, - Glyf data, - Control value, - Control value program, - Font program A 4-character code identifying a table. If tableName does not represent a table in this font. Gets a object for the supplied table. A 4-character code identifying a table. A object or null if the table cannot be located. If tag does not represent a table in this font. Reads the Offset and Directory tables. If the FontFileStream represents a TrueType collection, this method will look for the aforementioned tables belonging to fontName. This method can handle a TrueType collection. Caches the following tables: 'head', 'hhea', 'maxp', 'loca' Sets the stream position to the offset in the supplied directory entry. Also ensures that the FontFileStream has enough bytes available to read a font table. Throws an exception if this condition is not met. If the supplied stream does not contain enough data. Class designed to read and write primitive datatypes from/to a TrueType font file.

All OpenType fonts use Motorola-style byte ordering (Big Endian).

The following table lists the primitives and their definition. Note the difference between the .NET CLR definition of certain types and the TrueType definition.

BYTE 8-bit unsigned integer. CHAR 8-bit signed integer. USHORT 16-bit unsigned integer. SHORT 16-bit signed integer. ULONG 32-bit unsigned integer. LONG 32-bit signed integer. Fixed 32-bit signed fixed-point number (16.16) FWORD 16-bit signed integer (SHORT) that describes a quantity in FUnits. UFWORD 16-bit unsigned integer (USHORT) that describes a quantity in FUnits. F2DOT14 16-bit signed fixed number with the low 14 bits of fraction (2.14). LONGDATETIME Date represented in number of seconds since 12:00 midnight, January 1, 1904. The value is represented as a signed 64-bit integer. Tag Array of four uint8s (length = 32 bits) used to identify a script, language system, feature, or baseline GlyphID Glyph index number, same as uint16(length = 16 bits) Offset Offset to a table, same as uint16 (length = 16 bits), NULL offset = 0x0000

Initialises a new instance of the class using the supplied byte array as the underlying buffer. The font data encoded in a byte array. data is a null reference. data is a zero-length array. Initialises a new instance of the class using the supplied stream as the underlying buffer. Reference to an existing stream. stream is a null reference. Reads an unsigned byte from the font file. Writes an unsigned byte from the font file. Reads an signed byte from the font file. Writes a signed byte from the font file. Reads a short (16-bit signed integer) from the font file. Writes a short (16-bit signed integer) to the font file. Reads a short (16-bit signed integer) from the font file. Writes a short (16-bit signed integer) to the font file. Reads a int (16-bit unsigned integer) from the font file. Writes a int (16-bit unsigned integer) to the font file. Reads a int (16-bit unsigned integer) from the font file. Writes a int (16-bit unsigned integer) to the font file. Reads an int (32-bit signed integer) from the font file. Writes an int (32-bit signed integer) to the font file. Reads a int (32-bit unsigned integer) from the font file. Writes a int (32-bit unsigned integer) to the font file. Reads an int (32-bit signed integer) from the font file. Writes an int (32-bit unsigned integer) to the font file. Reads a long (64-bit signed integer) from the font file. Writes a long (64-bit signed integer) to the font file. Reads a tag (array of four bytes) from the font stream. Writes a tab (array of four bytes) to the font file. Ensures the stream is padded on a 4-byte boundary. This method will output between 0 and 3 bytes to the stream. A value between 0 and 3 (inclusive). Writes a sequence of bytes to the underlying stream. Reads a block of bytes from the current stream and writes the data to buffer. A byte buffer big enough to store count bytes. The byte offset in buffer to begin reading. Number of bytes to read. Gets or sets the current position of the font stream. Gets the length of the font stream in bytes. Offsets the stream position by the supplied number of bytes. Saves the current stream position onto a marker stack. Returns the current stream position. Sets the stream using the marker at the head of the marker stack. Returns the stream position before it was reset. If the markers stack is empty. A specialised stream writer for creating OpenType fonts. Size of the offset table in bytes. The underlying stream. List of font tables to write. Creates a new instance of the class using stream as the underlying stream object. If stream is not writable. If streamm is a null reference. Gets the underlying . Queues the supplied for writing to the underlying stream. The method will not immediately write the supplied font table to the underlying stream. Instead it queues the font table since the offset table must be written out before any tables. Writes the header and font tables to the underlying stream. Updates the checkSumAdjustment field in the head table. Writes out each table to the font stream. Writes the offset table that appears at the beginning of every TrueType/OpenType font. Does not actually write the table directory - simply "allocates" space for it in the stream. Returns the maximum power of 2 <= max Calculates the checksum of the entire font. The underlying must be aligned on a 4-byte boundary. Calculates the checksum of a . The supplied stream must be positioned at the beginning of the table. Generates a subset from a TrueType font. Creates a new instance of the FontSubset class. TrueType font parser. Writes the font subset to the supplied output stream. Reads a glyph description from the specified offset. Populate the compositesIList containing all child glyphs that this glyph uses. The stream parameter must be positioned 10 bytes from the beginning of the glyph description, i.e. the flags field. Gets the length of the glyph description in bytes at index index. Bit masks of the flags field in a composite glyph. Utility class that stores a list of glyph indices and their asociated subset indices. Maps a glyph index to a subset index. Maps a subset index to glyph index. Class constructor. Gets the number of glyph to subset index mappings. Determines whether a mapping exists for the supplied glyph index. Returns the subset index for glyphIndex. If a subset index does not exist for glyphIndex one is generated. A subset index. Adds the list of supplied glyph indices to the index mappings using the next available subset index for each glyph index. Gets the subset index of glyphIndex. A glyph index or -1 if a glyph to subset mapping does not exist. Gets the glyph index of subsetIndex. A subset index or -1 if a subset to glyph mapping does not exist. Gets a list of glyph indices sorted in ascending order. Gets a list of subset indices sorted in ascending order. Key - Kerning pair identifier Value - Kerning amount Creates an instance of KerningPairs allocating space for 100 kerning pairs. Creates an instance of KerningPairs allocating space for numPairs kerning pairs. Returns true if a kerning value exists for the supplied glyph index pair. Glyph index for left-hand glyph. Glyph index for right-hand glyph. Gets the kerning amount for the supplied glyph index pair. Gets the number of kernings pairs. Creates a new kerning pair. This method will ignore duplicates. The glyph index for the left-hand glyph in the kerning pair. The glyph index for the right-hand glyph in the kerning pair. The kerning value for the supplied pair. Returns a kerning pair identifier. A helper designed that provides the size of each TrueType primitives. List of all TrueType and OpenType tables Converts one of the predefined table names to an unsigned integer. Class that represents the Control Value Program table ('prep'). Set of instructions executed whenever point size or font or transformation change. Creates an instance of the class. Reads the contents of the "prep" table from the current position in the supplied stream. Writes out the array of instructions to the supplied stream. Class that represents the Control Value table ('cvt'). List of N values referenceable by instructions. Creates an instance of the class. Gets the value representing the number of values that can be referenced by instructions. Reads the contents of the "cvt" table from the current position in the supplied stream. Writes out the array of values to the supplied stream. Class that represents the Font Program table ('fpgm'). List of N instructions. Creates an instance of the class. Gets the value representing the number of instructions in the font program. Reads the contents of the "fpgm" table from the current position in the supplied stream. Writes out the array of instructions to the supplied stream. Class derived by all TrueType table classes. The dictionary entry for this table. Class constructor The table name. Table directory entry. Gets or sets a directory entry for this table. Reads the contents of a table from the current position in the supplied stream. If the supplied stream does not contain enough data. Writes the contents of a table to the supplied writer. This method should not be concerned with aligning the table output on the 4-byte boundary. Gets the unique name of this table as a 4-character string. Note that some TrueType tables are only 3 characters long (e.g. 'cvt'). In this case the returned string will be padded with a extra space at the end of the string. Gets the table name encoded as a 32-bit unsigned integer. Instantiates a font table from a table tag. Prevent instantiation since this is a factory class. Creates an instance of a class that implements the FontTable interface. One of the pre-defined TrueType tables from the class. A subclass of that is capable of parsing a TrueType table. If a class capable of parsing tableName is not available. Class that represents the Glyf Data table ('glyf'). http://www.microsoft.com/typography/otspec/glyf.htm Maps a glyph index to a object. Creates an instance of the class. Gets the instance located at glyphIndex Gets the number of glyphs. Reads the contents of the "glyf" table from the current position in the supplied stream. Writes the contents of the glyf table to the supplied stream. Represents either a simple or composite glyph description from the 'glyf' table. This class is nothing more than a wrapper around a byte array. The index of this glyph as obtained from the 'loca' table. Contains glyph description as raw data. List of composite glyph indices. Class constructor. Sets the glyph data (duh!). Gets or sets the index of this glyph. Gets the length of the glyph data buffer. Add the supplied glyph index to list of children. Gets a ilst of child glyph indices. Gets a value indicating whether or not this glyph represents a composite glyph. Writes a glyph description to the supplied stream. Class that represents the Font Header table. http://www.microsoft.com/typography/otspec/head.htm Class constructor. Gets a value that indicates whether glyph offsets in the loca table are stored as a int or ulong. Reads the contents of the "head" table from the current position in the supplied stream. Returns a DateTime instance which is the result of adding seconds to BaseDate. If an exception occurs, BaseDate is returned. Writes the contents of the head table to the supplied stream. Class that represents the Horizontal Header table. http://www.microsoft.com/typography/otspec/hhea.htm Table version number 0x00010000 for version 1.0. Typographic ascent. (Distance from baseline of highest ascender). Typographic descent. (Distance from baseline of lowest descender). Typographic line gap. Negative LineGap values are treated as zero in Windows 3.1, System 6, and System 7. Maximum advance width value in 'hmtx' table. Minimum left sidebearing value in 'hmtx' table. Minimum right sidebearing value. Max(lsb + (xMax - xMin)). Used to calculate the slope of the cursor (rise/run); 1 for vertical. 0 for vertical. The amount by which a slanted highlight on a glyph needs to be shifted to produce the best appearance. Set to 0 for non-slanted fonts. 0 for current format. Number of hMetric entries in 'hmtx' table. Class constructor. Gets the number of horiztonal metrics. Reads the contents of the "hhea" table from the current position in the supplied stream. Summary description for HorizontalMetric. Class that represents the Horizontal Metrics ('hmtx') table. http://www.microsoft.com/typography/otspec/hmtx.htm Initialises a new instance of the class. Initialises a new instance of the HorizontalMetricsTable class. Returns the number of horizontal metrics stored in the hmtx table. Gets the located at index. Reads the contents of the "hmtx" table from the supplied stream at the current position. Class that represents the Index To Location ('loca') table. http://www.microsoft.com/typography/otspec/loca.htm Initialises a new instance of the class. Initialises a new instance of the IndexToLocationTable class. Reads the contents of the "loca" table from the supplied stream at the current position. Removes all offsets. Includes the supplied offset. Gets the number of glyph offsets. Gets or sets the glyph offset at index index. A glyph index. Class that represents the Kerning table. http://www.microsoft.com/typography/otspec/kern.htm Class constructor. Gets a boolean value that indicates this font contains format 0 kerning information. Returns a collection of kerning pairs. If HasKerningInfo returns false, this method will always return null. Reads the contents of the "kern" table from the current position in the supplied stream. No supported. Class that represents the Horizontal Metrics ('maxp') table. http://www.microsoft.com/typography/otspec/maxp.htm Table version number The number of glyphs in the font. Maximum points in a non-composite glyph. Maximum contours in a non-composite glyph. Only set if versionNo is 1.0. Maximum points in a composite glyph. Only set if versionNo is 1.0. Maximum contours in a composite glyph. Only set if versionNo is 1.0. 1 if instructions do not use the twilight zone (Z0), or 2 if instructions do use Z0; should be set to 2 in most cases. Only set if versionNo is 1.0. Maximum points used in Z0. Only set if versionNo is 1.0. Number of Storage Area locations. Only set if versionNo is 1.0. Number of FDEFs. Only set if versionNo is 1.0. Number of IDEFs. Only set if versionNo is 1.0. Maximum stack depth2. Only set if versionNo is 1.0. Maximum byte count for glyph instructions. Only set if versionNo is 1.0. Maximum number of components referenced at "top level" for any composite glyph. Only set if versionNo is 1.0. Maximum levels of recursion; 1 for simple components. Only set if versionNo is 1.0. Initialises a new instance of the class. Gets the number of glyphs Reads the contents of the "maxp" table from the supplied stream at the current position. Class that represents the Naming ('name') table http://www.microsoft.com/typography/otspec/name.htm Offset to start of string storage (from start of table). Get the font family name. Gets the font full name composed of the family name and the subfamily name. Reads the contents of the "name" table from the supplied stream at the current position. Reads a string from the storage area beginning at offset consisting of length bytes. The returned string will be converted using the Unicode encoding. Big-endian font stream. The offset in bytes from the beginning of the string storage area. The length of the string in bytes. Not supported. Class that represents the OS/2 ('OS/2') table

For detailed information on the OS/2 table, visit the following link: http://www.microsoft.com/typography/otspec/os2.htm

For more details on the Panose classification metrics, visit the following URL: http://www.panose.com/hardware/pan2.asp

Gets a boolean value that indicates whether this font contains italic characters. Gets a boolean value that indicates whether characters are in the standard weight/style. Gets a boolean value that indicates whether characters possess a weight greater than or equal to 700. Gets a boolean value that indicates whether this font contains characters that all have the same width. Gets a boolean value that indicates whether this font contains special characters such as dingbats, icons, etc. Gets a boolean value that indicates whether characters do possess serifs Gets a boolean value that indicates whether characters are designed to simulate hand writing. Gets a boolean value that indicates whether characters do not possess serifs Gets a boolean value that indicates whether this font may be legally embedded. Gets a boolean value that indicates whether this font may be subsetted. Reads the contents of the "os/2" table from the supplied stream at the current position. Class that represents the PostScript ('post') table http://www.microsoft.com/typography/otspec/post.htm 0x00010000 for version 1.0 0x00020000 for version 2.0 0x00025000 for version 2.5 (deprecated) 0x00030000 for version 3.0 Italic angle in counter-clockwise degrees from the vertical. Zero for upright text, negative for text that leans to the right (forward). This is the suggested distance of the top of the underline from the baseline (negative values indicate below baseline). Suggested values for the underline thickness. Set to 0 if the font is proportionally spaced, non-zero if the font is not proportionally spaced (i.e. monospaced). Minimum memory usage when an OpenType font is downloaded. Maximum memory usage when an OpenType font is downloaded. Minimum memory usage when an OpenType font is downloaded as a Type 1 font. Maximum memory usage when an OpenType font is downloaded as a Type 1 font. Class constructor. Gets a boolean value that indicates whether this font is proportionally spaced (fixed pitch) or not. Reads the contents of the "post" table from the supplied stream at the current position. Class that represents the Offset and Directory tables. http://www.microsoft.com/typography/otspec/otff.htm Gets a value indicating whether or not this font contains the supplied table. A table name. Gets a DirectoryEntry object for the supplied table. A 4-character code identifying a table. A DirectoryEntry object or null if the table cannot be located. If tableName does not represent a table in this font. Gets the number tables. A very lightweight wrapper around a Win32 device context Pointer to device context created by ::CreateDC() Creates a new device context that matches the desktop display surface Delete the device context freeing the associated memory. Selects a font into a device context (DC). The new object replaces the previous object of the same type. Handle to object. A handle to the object being replaced. Gets a handle to an object of the specified type that has been selected into this device context. Returns a handle to the underlying device context A thin wrapper around a handle to a font Class constructor A handle to an existing font. Class destructor Creates a font based on the supplied typeface name and size. The typeface name of a font. The height, in logical units, of the font's character cell or character. Creates a font whose height is equal to the negative value of the EM Square The typeface name of a font. Retrieves all pertinent TrueType tables by invoking GetFontData. Summary description for GdiFontEnumerator. Class constructor. A non-null reference to a wrapper around a GDI device context. Returns a list of font family names sorted in ascending order. Returns a list of font styles associated with familyName. Class that obtains OutlineTextMetrics for a TrueType font Retrieves the typeface name of the font that is selected into the device context supplied to the GdiFontMetrics constructor. Specifies the number of logical units defining the x- or y-dimension of the em square for this font. The common value for EmSquare is 2048. The number of units in the x- and y-directions are always the same for an em square.) Gets the main italic angle of the font expressed in tenths of a degree counterclockwise from the vertical. Regular (roman) fonts have a value of zero. Italic fonts typically have a negative italic angle (that is, they lean to the right). Specifies the maximum distance characters in this font extend above the base line. This is the typographic ascent for the font. Specifies the maximum distance characters in this font extend below the base line. This is the typographic descent for the font. Gets the distance between the baseline and the approximate height of uppercase letters. Gets the distance between the baseline and the approximate height of non-ascending lowercase letters. TODO: The thickness, measured horizontally, of the dominant vertical stems of the glyphs in the font. Gets the value of the first character defined in the font Gets the value of the last character defined in the font Gets the average width of glyphs in a font. Gets the maximum width of glyphs in a font. Gets a value indicating whether the font can be legally embedded within a document. Gets a value indicating whether the font can be legally subsetted. Gets the font's bounding box. This is the smallest rectangle enclosing the shape that would result if all the glyphs of the font were placed with their origins cooincident and then filled. Gets a collection of flags defining various characteristics of a font (e.g. serif or sans-serif, symbolic, etc). Gets font metric data for a TrueType font or TrueType collection. Gets a collection of kerning pairs. Gets a collection of kerning pairs for characters defined in the WinAnsiEncoding scheme only. Retrieves the widths, in PDF units, of consecutive glyphs. An array of integers whose size is equal to the number of glyphs specified in the 'maxp' table. The width at location 0 is the width of glyph with index 0, The width at location 1 is the width of glyph with index 1, etc... Returns the width, in PDF units, of consecutive glyphs for the WinAnsiEncoding only. An array consisting of 256 elements. Translates the supplied character to a glyph index using the currently selected font. A unicode character. Class constructor. Kerning pairs read from the TrueType font file. Class to convert from TTF to PDF units. Gets the number of kerning pairs. Returns true if a kerning value exists for the supplied character index pair. Gets the kerning amount for the supplied index pair or 0 if a kerning pair does not exist. Installs a collection of private fonts on the system and uninstalls them when disposed. Specifies that only the process that called the AddFontResourceEx function can use this font. Specifies that no process, including the process that called the AddFontResourceEx function, can enumerate this font. Collection of absolute filenames. Adds filename to this private font collection. Absolute path to a TrueType font or collection. If filename is null. If filename is the empty string. Adds fontFile to this private font collection. Absolute path to a TrueType font or collection. If fontFile does not exist. If fontFile has already been added. If fontFile cannot be added to the system font collection. Custom collection that maintains a list of Unicode ranges a font supports and the glyph indices of each character. The list of ranges is obtained by invoking GetFontUnicodeRanges, however the associated glyph indices are lazily instantiated as required to save memory. List of unicode ranges in ascending numerical order. The order is important since a binary search is used to locate and uicode range from a charcater. Class constuctor. Gets the number of unicode ranges. Loads all the unicode ranges. Locates the for the supplied character. The object housing c or null if a range does not exist for c. Translates the supplied character to a glyph index. Any unicode character. A glyph index for c or 0 the supplied character does not exist in the font selected into the device context. Converts from logical TTF units to PDF units. Class constructor. Specifies the number of logical units defining the x- or y-dimension of the em square of a font. Convert the supplied integer from TrueType units to PDF units based on the EmSquare If the value of emSquare is zero, this method will always return value. The ABC structure contains the width of a character in a TrueType font. The OUTLINETEXTMETRIC structure contains metrics describing a TrueType font. The PANOSE structure describes the PANOSE font-classification values for a TrueType font. These characteristics are then used to associate the font with other fonts of similar appearance but different names. The Point structure defines the x- and y- coordinates of a point. The Rect structure defines the coordinates of the upper-left and lower-right corners of a rectangle The TEXTMETRIC structure contains basic information about a physical font. All sizes are specified in logical units; that is, they depend on the current mapping mode of the display context. Class that represents a unicode character range as returned by the GetFontUnicodeRanges function. Array of glyph indices for each character represented by this range begining at . Class constructor. Value representing start of unicode range. Value representing end of unicode range. Returns the glyph index of c. Gets a value representing the start of the unicode range. Gets a value representing the end of the unicode range. Populates the indices array with the glyph index of each character represented by this rnage starting at . Summary description for UnicodeRangeComparer. Maps a Unicode character to a WinAnsi codepoint value. First column is codepoint value. Second column is unicode value. The root of a document's object hierarchy is the catalog dictionary. The document catalog is described in section 3.6.1 of the PDF specification. A dictionary that contains information about a CIDFont program. A Type 0 CIDFont contains glyph descriptions based on Adobe's Type 1 font format, whereas those in a Type 2 CIDFont are based on the TrueType font format. A dictionary containing entries that define the character collection of the CIDFont. Class that defines a mapping between character codes (CIDs) to a character selector (Identity-H encoding) Adds the supplied glyph -> unicode pairs. Both the key and value must be a int. Adds the supplied glyph index to unicode value mapping. Overriden to create CMap content stream. Writes the bfchar entries to the content stream in groups of 100. Writes the bfrange entries to the content stream in groups of 100. TODO: This method is temporary. I'm assuming that all string should be represented as a PdfString object? PDF defines a standard date format. The PDF date format closely follows the format defined by the international standard ASN.1. The format of the PDF date is defined in section 3.8.2 of the PDF specification. A class that enables a well structured PDF document to be generated. Responsible for allocating object identifiers. Class representing a file trailer. File trailers are described in section 3.4.4 of the PDF specification. Returns the internal name used for this font. An enumeration listing all the fonts types available in Pdf. An enumeration listing all the font subtypes An International Color Code stream Represents a Identity-H character encoding Maps 2-byte character codes ranging from 0 to 65,535 to the same 2-byte CID value, interpreted high-order byte first Do not call this method directly Do not call this method directly Class representing a document information dictionary. Document information dictionaries are described in section 9.2.1 of the PDF specification. Well-known PDF name objects. This represents a single Outline object in a PDF, including the root Outlines object. Outlines provide the bookmark bar, usually rendered to the right of a PDF document in user agents such as Acrobat Reader List of sub-entries (outline objects) Parent outline object. Root Outlines parent is null Title to display for the bookmark entry Class constructor. The object id number The title of the outline entry (can only be null for root Outlines obj) The page which this outline refers to. Add a sub element to this outline The pages of a document are accessed through a structure known as the page tree. The page tree is described in section 3.6.2 of the PDF specification. The convention used when outputing the string to the PDF document. Defaults to format. Determines if the string should bypass encryption, even when available. Some PDF strings need to appear unencrypted in a secure PDF document. Most noteably those in the encryption dictionary itself. This property allows those strings to be flagged. Returns this PdfString expressed using the 'literal' convention. A literal string is written as an arbitrary number of characters enclosed in parentheses. Any characters may appear in a string except unbalanced parentheses and the backslash, which must be treated specially. Balanced pairs of parentheses within a string require no special treatment. Used by ToPdfHexadecimal. Returns the PdfString expressed using the 'hexadecimal' convention. Strings may also be written in hexadecimal form; this is useful for including arbitrary binary data in a PDF file. A hexadecimal string is written as a sequence of hexadecimal digits (0–9 and either A–F or a–f) enclosed within angle brackets (< and >). The PDF specification describes two conventions that can be used to embed a string in a PDF document. This enumeration, along with the property can be used to select how a string will be formatted in the PDF file. A unique object number. The name by which the font is reference in the Font subdictionary The PostScript name of the font. Sets a value representing the character encoding. Sets the font descriptor. Sets the first character code defined in the font's widths array The default value is 0. Sets the last character code defined in the font's widths array The default value is 255. Sets the array of character widths. A Type 0 font is a composite font whose glyphs are obtained from a font like object called a CIDFont (a descendant font). All versions of the PDF specification up to and including version 1.4 only support a single descendant font. Sets the stream containing a CMap that maps character codes to unicode values. Sets the descendant font. Sets a value representing the character encoding. Sets a value representing the character encoding. Array class used to represent the /W entry in the CIDFont dictionary. ARC4 is a fast, simple stream encryption algorithm that is compatible with RSA Security's RC4 algorithm. Initialises internal state from the passed key. Can be called again with a new key to reuse an Arc4 instance. The encryption key. Encrypts or decrypts the passed byte array. The data to be encrypted or decrypted. The location that the encrypted or decrypted data is to be placed. The passed array should be at least the same size as dataIn. It is permissible for the same array to be passed for both dataIn and dataOut. Generates a pseudorandom byte used to encrypt or decrypt. Implements Adobe's standard security handler. A security handler is a software module that implements various aspects of the encryption process. Constructs a new standard security manager. The user supplied PDF options that provides access to the passwords and the access permissions. The PDF document's file identifier (see section 8.3 of PDF specification). Computes the master key that is used to encrypt string and stream data in the PDF document. The user supplied PDF options that provides access to the passwords and the access permissions. The PDF document's file identifier (see section 8.3 of PDF specification). Computes the O(owner) value in the encryption dictionary. Corresponds to algorithm 3.3 on page 69 of the PDF specficiation. The user supplied PDF options that provides access to the passwords. Computes the U(user) value in the encryption dictionary. Corresponds to algorithm 3.4 on page 70 of the PDF specficiation. The user supplied PDF options that provides access to the passwords. Encrypts the passed byte array using the ARC4 cipher. Access to the raw user entry byte array. Required for testing purposes; Access to the raw owner entry byte array. Required for testing purposes; Computes an encryption key that is used to encrypt string and stream data in the PDF document. Corresponds to algorithm 3.1 in section 3.5 of the PDF specficiation. Computes an encryption key that is used to encrypt string and stream data in the PDF document. Corresponds to algorithm 3.2 in section 3.5 of the PDF specficiation. Pads or truncates a password string to exactly 32-bytes. Corresponds to step 1 of algorithm 3.2 on page 69 of the PDF 1.3 specficiation. The password to pad or truncate. A byte array of length 32 bytes containing the padded or truncated password. Determines if the passed password matches the user password used to initialise this security manager. Used for testing purposes only. Corresponds to algorithm 3.5 in the PDF 1.3 specification. True if the password is correct. Performs the actual checking of the user password. Checks the owner password. Compares two byte arrays and returns true if they are equal. Password that disables all security permissions The user password Collection of flags describing permissions granted to user who opens a file with the user password. The given initial value zero's out first two bits. The PDF specification dictates that these entries must be 0. Returns the owner password as a string. The default value is null Returns the user password as a string. The default value is null The document access privileges encoded in a 32-bit unsigned integer The default access priviliges are:
  • Printing disallowed
  • Modifications disallowed
  • Copy and Paste disallowed
  • Addition or modification of annotation/form fields disallowed
To override any of these priviliges see the , , , methods
Enables or disables printing. If true enables printing otherwise false Enable or disable changing the document other than by adding or changing text notes and AcroForm fields. Enable or disable copying of text and graphics from the document. Enable or disable adding and changing text notes and AcroForm fields. A single section in a PDF file's cross-reference table. The cross-reference table is described in section 3.4.3 of the PDF specification. Right now we only support a single subsection. Adds an entry to the section. Writes the cross reference section to the passed PDF writer. A sub-section in a PDF file's cross-reference table. The cross-reference table is described in section 3.4.3 of the PDF specification. This entries contained in this subsection. Creates a new blank sub-section, that initially contains no entries. Structure representing a single cross-reference entry. The object number and generation number. The number of bytes from the beginning of the file to the beginning of the object. Implementation of IComparable. Adds an entry to the sub-section. Writes the cross reference sub-section to the passed PDF writer. A PDF file's cross-reference table. The cross-reference table is described in section 3.4.3 of the PDF specification. Right now we only support a single section. Adds an entry to the table. Writes the cross reference table to the passed PDF writer. 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.