PdfSharp Floating point formatting. Factor to convert from degree to radian measure. Sinus of the angle to turn a regular font to look oblique. Used for italic simulation. Factor of the em size of a regular font to look bold. Used for bold simulation. Value of 2% found in original XPS 1.0 documentation. Static locking functions to make PDFsharp thread save. A bunch of internal helper functions. A bunch of internal helper functions. Indirectly throws NotImplementedException. Required because PDFsharp Release builds tread warnings as errors and throwing NotImplementedException may lead to unreachable code which crashes the build. Helper class around the Debugger class. Call Debugger.Break() if a debugger is attached. Call Debugger.Break() if a debugger is attached or when always is set to true. Internal stuff for development of PDFsharp. Creates font and enforces bold/italic simulation. Dumps the font caches to a string. Some static helper functions for calculations. Degree to radiant factor. Get page size in point from specified PageSize. Some floating point utilities. Partially reflected from WPF, later equalized with original source code. Indicates whether the values are so close that they can be considered as equal. Indicates whether the values are so close that they can be considered as equal. Indicates whether the values are so close that they can be considered as equal. Indicates whether the values are so close that they can be considered as equal. Indicates whether the values are so close that they can be considered as equal. Indicates whether the values are so close that they can be considered as equal. Indicates whether value1 is greater than value2 and the values are not close to each other. Indicates whether value1 is greater than value2 or the values are close to each other. Indicates whether value1 is less than value2 and the values are not close to each other. Indicates whether value1 is less than value2 or the values are close to each other. Indicates whether the value is between 0 and 1 or close to 0 or 1. Indicates whether the value is not a number. Indicates whether at least one of the four rectangle values is not a number. Indicates whether the value is 1 or close to 1. Indicates whether the value is 0 or close to 0. Converts a double to integer. Required native Win32 calls. Reflected from System.Drawing.SafeNativeMethods+LOGFONT Initializes a new instance of the class. Initializes a new instance of the class. Move to next token. Move to next token. Represents the base class of all bar codes. Initializes a new instance of the class. Creates a bar code from the specified code type. Creates a bar code from the specified code type. Creates a bar code from the specified code type. Creates a bar code from the specified code type. When overridden in a derived class gets or sets the wide narrow ratio. Gets or sets the location of the text next to the bar code. Gets or sets the length of the data that defines the bar code. Gets or sets the optional start character. Gets or sets the optional end character. Gets or sets a value indicating whether the turbo bit is to be drawn. (A turbo bit is something special to Kern (computer output processing) company (as far as I know)) When defined in a derived class renders the code. Holds all temporary information needed during rendering. String resources for the empira barcode renderer. Implementation of the Code 2 of 5 bar code. Initializes a new instance of Interleaved2of5. Initializes a new instance of Interleaved2of5. Initializes a new instance of Interleaved2of5. Initializes a new instance of Interleaved2of5. Returns an array of size 5 that represents the thick (true) and thin (false) lines or spaces representing the specified digit. The digit to represent. Renders the bar code. Calculates the thick and thin line widths, taking into account the required rendering size. Renders the next digit pair as bar code element. Checks the code to be convertible into an interleaved 2 of 5 bar code. The code to be checked. Imlpementation of the Code 3 of 9 bar code. Initializes a new instance of Standard3of9. Initializes a new instance of Standard3of9. Initializes a new instance of Standard3of9. Initializes a new instance of Standard3of9. Returns an array of size 9 that represents the thick (true) and thin (false) lines and spaces representing the specified digit. The character to represent. Calculates the thick and thin line widths, taking into account the required rendering size. Checks the code to be convertible into an standard 3 of 9 bar code. The code to be checked. Renders the bar code. Represents the base class of all codes. Initializes a new instance of the class. Gets or sets the size. Gets or sets the text the bar code shall represent. Always MiddleCenter. Gets or sets the drawing direction. When implemented in a derived class, determines whether the specified string can be used as Text for this bar code type. The code string to check. True if the text can be used for the actual barcode. Calculates the distance between an old anchor point and a new anchor point. Defines the DataMatrix 2D barcode. THIS IS AN EMPIRA INTERNAL IMPLEMENTATION. THE CODE IN THE OPEN SOURCE VERSION IS A FAKE. Initializes a new instance of CodeDataMatrix. Initializes a new instance of CodeDataMatrix. Initializes a new instance of CodeDataMatrix. Initializes a new instance of CodeDataMatrix. Initializes a new instance of CodeDataMatrix. Initializes a new instance of CodeDataMatrix. Initializes a new instance of CodeDataMatrix. Initializes a new instance of CodeDataMatrix. Initializes a new instance of CodeDataMatrix. Sets the encoding of the DataMatrix. Gets or sets the size of the Matrix' Quiet Zone. Renders the matrix code. Determines whether the specified string can be used as data in the DataMatrix. The code to be checked. Represents an OMR code. initializes a new OmrCode with the given data. Renders the OMR code. Gets or sets a value indicating whether a synchronize mark is rendered. Gets or sets the distance of the markers. Gets or sets the thickness of the makers. Determines whether the specified string can be used as Text for the OMR code. Creates the XImage object for a DataMatrix. Possible ECC200 Matrices. Creates the DataMatrix code. Encodes the DataMatrix. Encodes the barcode with the DataMatrix ECC200 Encoding. Places the data in the right positions according to Annex M of the ECC200 specification. Places the ECC200 bits in the right positions. Calculate and append the Reed Solomon Code. Initialize the Galois Field. Initializes the Reed-Solomon Encoder. Encodes the Reed-Solomon encoding Creates a DataMatrix image object. A hex string like "AB 08 C3...". I.e. 26 for a 26x26 matrix Creates a DataMatrix image object. Creates a DataMatrix image object. Specifies whether and how the text is displayed at the code area. The anchor is located top left. The anchor is located top center. The anchor is located top right. The anchor is located middle left. The anchor is located middle center. The anchor is located middle right. The anchor is located bottom left. The anchor is located bottom center. The anchor is located bottom right. Specifies the drawing direction of the code. Does not rotate the code. Rotates the code 180° at the anchor position. Rotates the code 180° at the anchor position. Rotates the code 180° at the anchor position. Specifies the type of the bar code. The standard 2 of 5 interleaved bar code. The standard 3 of 9 bar code. The OMR code. The data matrix code. docDaSt docDaSt docDaSt docDaSt docDaSt docDaSt docDaSt Specifies whether and how the text is displayed at the code. No text is drawn. The text is located above the code. The text is located below the code. The text is located above within the code. The text is located below within the code. Represents the base class of all 2D codes. Initializes a new instance of the class. Gets or sets the encoding. docDaSt docDaSt docDaSt docDaSt When implemented in a derived class renders the 2D code. Determines whether the specified string can be used as Text for this matrix code type. Internal base class for several bar code types. Initializes a new instance of the class. Gets or sets the ration between thick an thin lines. Must be between 2 and 3. Optimal and also default value is 2.6. Renders a thick or thin line for the bar code. Determines whether a thick or a thin line is about to be rendered. Renders a thick or thin gap for the bar code. Determines whether a thick or a thin gap is about to be rendered. Renders a thick bar before or behind the code. Gets the width of a thick or a thin line (or gap). CalcLineWidth must have been called before. Determines whether a thick line's with shall be returned. Specifies the alignment of a paragraph. Default alignment, typically left alignment. The paragraph is rendered left aligned. The paragraph is rendered centered. The paragraph is rendered right aligned. The paragraph is rendered justified. Represents a very simple text formatter. If this class does not satisfy your needs on formatting paragraphs I recommend to take a look at MigraDoc Foundation. Alternatively you should copy this class in your own source code and modify it. Initializes a new instance of the class. Gets or sets the text. The text. Gets or sets the font. Gets or sets the bounding box of the layout. Gets or sets the alignment of the text. Draws the text. The text to be drawn. The font. The text brush. The layout rectangle. Draws the text. The text to be drawn. The font. The text brush. The layout rectangle. The format. Must be XStringFormat.TopLeft Align center, right, or justify. Represents a single word. Initializes a new instance of the class. The text of the block. The type of the block. The width of the text. Initializes a new instance of the class. The type. The text represented by this block. The type of the block. The width of the text. The location relative to the upper left corner of the layout rectangle. The alignment of this line. A flag indicating that this is the last block that fits in the layout rectangle. Indicates whether we are within a BT/ET block. Graphic mode. This is default. Text mode. Represents the current PDF graphics state. Completely revised for PDFsharp 1.4. Indicates that the text transformation matrix currently skews 20° to the right. The already realized part of the current transformation matrix. The not yet realized part of the current transformation matrix. Product of RealizedCtm and UnrealizedCtm. Inverse of EffectiveCtm used for transformation. Realizes the CTM. Represents a drawing surface for PdfPages. Gets the content created by this renderer. Strokes a single connection of two points. Strokes a series of connected points. Clones the current graphics state and push it on a stack. Sets the clip path empty. Only possible if graphic state level has the same value as it has when the first time SetClip was invoked. The nesting level of the PDF graphics state stack when the clip region was set to non empty. Because of the way PDF is made the clip region can only be reset at this level. Writes a comment to the PDF content stream. May be useful for debugging purposes. Appends one or up to five Bézier curves that interpolate the arc. Gets the quadrant (0 through 3) of the specified angle. If the angle lies on an edge (0, 90, 180, etc.) the result depends on the details how the angle is used. Appends a Bézier curve for an arc within a quadrant. Appends a Bézier curve for a cardinal spline through pt1 and pt2. Appends the content of a GraphicsPath object. Initializes the default view transformation, i.e. the transformation from the user page space to the PDF page space. Ends the content stream, i.e. ends the text mode and balances the graphic state stack. Begins the graphic mode (i.e. ends the text mode). Begins the graphic mode (i.e. ends the text mode). Makes the specified pen and brush to the current graphics objects. Makes the specified pen to the current graphics object. Makes the specified brush to the current graphics object. Makes the specified font and brush to the current graphics objects. PDFsharp uses the Td operator to set the text position. Td just sets the offset of the text matrix and produces lesser code as Tm. The absolute text position. The dy. true if skewing for italic simulation is currently on. Makes the specified image to the current graphics object. Realizes the current transformation matrix, if necessary. Convert a point from Windows world space to PDF world space. Gets the owning PdfDocument of this page or form. Gets the PdfResources of this page or form. Gets the size of this page or form. Gets the resource name of the specified font within this page or form. Gets the resource name of the specified image within this page or form. Gets the resource name of the specified form within this page or form. The q/Q nesting level is 0. The q/Q nesting level is 1. The q/Q nesting level is 2. Saves the current graphical state. Restores the previous graphical state. The current graphical state. The graphical state stack. The height of the PDF page in point including the trim box. The final transformation from the world space to the default page space. Represents a graphics path that uses the same notation as GDI+. Adds an arc that fills exactly one quadrant (quarter) of an ellipse. Just a quick hack to draw rounded rectangles before AddArc is fully implemented. Closes the current subpath. Gets or sets the current fill mode (alternate or winding). Gets the path points in GDI+ style. Gets the path types in GDI+ style. Defines the direction an elliptical arc is drawn. Specifies that arcs are drawn in a counter clockwise (negative-angle) direction. Specifies that arcs are drawn in a clockwise (positive-angle) direction. Describes the simulation style of a font. No font style simulation. Bold style simulation. Italic style simulation. Bold and Italic style simulation. Indicates how to handle the first point of a path. Set the current position to the first point. Draws a line to the first point. Ignores the first point. Currently not used. Only DeviceRGB is rendered in PDF. Identifies the RGB color space. Identifies the CMYK color space. Identifies the gray scale color space. Specifies how different clipping regions can be combined. One clipping region is replaced by another. Two clipping regions are combined by taking their intersection. Not yet implemented in PDFsharp. Not yet implemented in PDFsharp. Not yet implemented in PDFsharp. Not yet implemented in PDFsharp. Specifies the style of dashed lines drawn with an XPen object. Specifies a solid line. Specifies a line consisting of dashes. Specifies a line consisting of dots. Specifies a line consisting of a repeating pattern of dash-dot. Specifies a line consisting of a repeating pattern of dash-dot-dot. Specifies a user-defined custom dash style. Specifies how the interior of a closed path is filled. Specifies the alternate fill mode. Called the 'odd-even rule' in PDF terminology. Specifies the winding fill mode. Called the 'nonzero winding number rule' in PDF terminology. Specifies style information applied to text. Normal text. Bold text. Italic text. Bold and italic text. Underlined text. Text with a line through the middle. Backward compatibility. Normal text. Bold text. Italic text. Bold and italic text. Underlined text. Text with a line through the middle. Determines whether rendering based on GDI+ or WPF. For internal use in hybrid build only only. Rendering does not depent on a particular technology. Renders using GDI+. Renders using WPF (including Silverlight). Universal Windows Platform. Type of the path data. Specifies how the content of an existing PDF page and new content is combined. The new content is inserted behind the old content and any subsequent drawing in done above the existing graphic. The new content is inserted before the old content and any subsequent drawing in done beneath the existing graphic. The new content entirely replaces the old content and any subsequent drawing in done on a blank page. Specifies the unit of measure. Specifies a printer's point (1/72 inch) as the unit of measure. Specifies the inch (2.54 cm) as the unit of measure. Specifies the millimeter as the unit of measure. Specifies the centimeter as the unit of measure. Specifies a presentation point (1/96 inch) as the unit of measure. Specifies all pre-defined colors. Used to identify the pre-defined colors and to localize their names. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. A pre-defined color. Specifies the alignment of a text string relative to its layout rectangle Specifies the text be aligned near the layout. In a left-to-right layout, the near position is left. In a right-to-left layout, the near position is right. Specifies that text is aligned in the center of the layout rectangle. Specifies that text is aligned far from the origin position of the layout rectangle. In a left-to-right layout, the far position is right. In a right-to-left layout, the far position is left. Specifies that text is aligned relative to its base line. With this option the layout rectangle must have a height of 0. Specifies the direction of a linear gradient. Specifies a gradient from left to right. Specifies a gradient from top to bottom. Specifies a gradient from upper left to lower right. Specifies a gradient from upper right to lower left. Specifies the available cap styles with which an XPen object can start and end a line. Specifies a flat line cap. Specifies a round line cap. Specifies a square line cap. Specifies how to join consecutive line or curve segments in a figure or subpath. Specifies a mitered join. This produces a sharp corner or a clipped corner, depending on whether the length of the miter exceeds the miter limit Specifies a circular join. This produces a smooth, circular arc between the lines. Specifies a beveled join. This produces a diagonal corner. Specifies the order for matrix transform operations. The new operation is applied before the old operation. The new operation is applied after the old operation. Specifies the direction of the y-axis. Increasing Y values go downwards. This is the default. Increasing Y values go upwards. This is only possible when drawing on a PDF page. It is not implemented when drawing on a System.Drawing.Graphics object. Specifies whether smoothing (or antialiasing) is applied to lines and curves and the edges of filled areas. Specifies an invalid mode. Specifies the default mode. Specifies high speed, low quality rendering. Specifies high quality, low speed rendering. Specifies no antialiasing. Specifies antialiased rendering. Specifies the alignment of a text string relative to its layout rectangle. Specifies the text be aligned near the layout. In a left-to-right layout, the near position is left. In a right-to-left layout, the near position is right. Specifies that text is aligned in the center of the layout rectangle. Specifies that text is aligned far from the origin position of the layout rectangle. In a left-to-right layout, the far position is right. In a right-to-left layout, the far position is left. Internal implementation class of XFontFamily. Gets the family name this family was originally created with. Gets the name that uniquely identifies this font family. Gets the underlying GDI+ font family object. Is null if the font was created by a font resolver. Gets the DebuggerDisplayAttribute text. A bunch of functions that do not have a better place. Measure string directly from font data. Calculates an Adler32 checksum combined with the buffer length in a 64 bit unsigned integer. Helper class for Geometry paths. Creates between 1 and 5 Béziers curves from parameters specified like in GDI+. Calculates the quadrant (0 through 3) of the specified angle. If the angle lies on an edge (0, 90, 180, etc.) the result depends on the details how the angle is used. Appends a Bézier curve for an arc within a full quadrant. Creates between 1 and 5 Béziers curves from parameters specified like in WPF. Represents a stack of XGraphicsState and XGraphicsContainer objects. Helper class for processing image files. Represents the internal state of an XGraphics object. Used when the state is saved and restored. Gets or sets the current transformation matrix. Called after this instanced was pushed on the internal graphics stack. Called after this instanced was popped from the internal graphics stack. This interface will be implemented by specialized classes, one for JPEG, one for BMP, one for PNG, one for GIF. Maybe more. Imports the image. Returns null if the image importer does not support the format. Prepares the image data needed for the PDF file. Helper for dealing with Stream data. Resets this instance. Gets the original stream. Gets the data as byte[]. Gets the length of Data. The imported image. Initializes a new instance of the class. Gets information about the image. Gets a value indicating whether image data for the PDF file was already prepared. Gets the image data needed for the PDF file. Public information about the image, filled immediately. Note: The stream will be read and decoded on the first call to PrepareImageData(). ImageInformation can be filled for corrupted images that will throw an expection on PrepareImageData(). Standard JPEG format (RGB). Grayscale JPEG format. JPEG file with inverted CMYK, thus RGBW. JPEG file with CMYK. The horizontal DPI (dots per inch). Can be 0 if not supported by the image format. Note: JFIF (JPEG) files may contain either DPI or DPM or just the aspect ratio. Windows BMP files will contain DPM. Other formats may support any combination, including none at all. The vertical DPI (dots per inch). Can be 0 if not supported by the image format. The horizontal DPM (dots per meter). Can be 0 if not supported by the image format. The vertical DPM (dots per meter). Can be 0 if not supported by the image format. The horizontal component of the aspect ratio. Can be 0 if not supported by the image format. Note: Aspect ratio will be set if either DPI or DPM was set, but may also be available in the absence of both DPI and DPM. The vertical component of the aspect ratio. Can be 0 if not supported by the image format. The colors used. Only valid for images with palettes, will be 0 otherwise. Contains internal data. This includes a reference to the Stream if data for PDF was not yet prepared. Gets the image. Contains data needed for PDF. Will be prepared when needed. Bitmap refers to the format used in PDF. Will be used for BMP, PNG, TIFF, GIF and others. Initializes a new instance of the class. Contains data needed for PDF. Will be prepared when needed. Bitmap refers to the format used in PDF. Will be used for BMP, PNG, TIFF, GIF and others. Gets the data. Gets the length. Gets the data. Gets the length. Image data needed for PDF bitmap images. Initializes a new instance of the class. Gets the data. Gets the length. True if first line is the top line, false if first line is the bottom line of the image. When needed, lines will be reversed while converting data into PDF format. The offset of the image data in Data. The offset of the color palette in Data. Copies images without color palette. 4 (32bpp RGB), 3 (24bpp RGB, 32bpp ARGB) 8 true (ARGB), false (RGB) Destination Imported JPEG image. Initializes a new instance of the class. Contains data needed for PDF. Will be prepared when needed. Gets the data. Gets the length. Private data for JPEG images. Initializes a new instance of the class. Gets the data. Gets the length. The class that imports images of various formats. Gets the image importer. Imports the image. Imports the image. Represents an abstract drawing surface for PdfPages. Draws a straight line. Draws a series of straight lines. Draws a Bézier spline. Draws a series of Bézier splines. Draws a cardinal spline. Draws an arc. Draws a rectangle. Draws a series of rectangles. Draws a rectangle with rounded corners. Draws an ellipse. Draws a polygon. Draws a pie. Draws a cardinal spline. Draws a graphical path. Draws a series of glyphs identified by the specified text and font. Draws an image. Saves the current graphics state without changing it. Restores the specified graphics state. Gets or sets the transformation matrix. Writes a comment to the output stream. Comments have no effect on the rendering of the output. Specifies details about how the font is used in PDF creation. Initializes a new instance of the class. Initializes a new instance of the class. Initializes a new instance of the class. Gets a value indicating the font embedding. Gets a value indicating how the font is encoded. Gets the default options with WinAnsi encoding and always font embedding. Gets the default options with Unicode encoding and always font embedding. Provides functionality to load a bitmap image encoded in a specific format. Gets a new instance of the PNG image decoder. Provides functionality to save a bitmap image in a specific format. Gets a new instance of the PNG image encoder. Gets or sets the bitmap source to be encoded. When overridden in a derived class saves the image on the specified stream in the respective format. Saves the image on the specified stream in PNG format. Defines a pixel based bitmap image. Initializes a new instance of the class. Creates a default 24 bit ARGB bitmap with the specified pixel size. Classes derived from this abstract base class define objects used to fill the interiors of paths. Brushes for all the pre-defined colors. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Gets a pre-defined XBrush object. Represents a RGB, CMYK, or gray scale color. Creates an XColor structure from a 32-bit ARGB value. Creates an XColor structure from a 32-bit ARGB value. Creates an XColor structure from the specified 8-bit color values (red, green, and blue). The alpha value is implicitly 255 (fully opaque). Creates an XColor structure from the four ARGB component (alpha, red, green, and blue) values. Creates an XColor structure from the specified alpha value and color. Creates an XColor structure from the specified CMYK values. Creates an XColor structure from the specified CMYK values. Creates an XColor structure from the specified gray value. Creates an XColor from the specified pre-defined color. Creates an XColor from the specified name of a pre-defined color. Gets or sets the color space to be used for PDF generation. Indicates whether this XColor structure is uninitialized. Determines whether the specified object is a Color structure and is equivalent to this Color structure. Returns the hash code for this instance. Determines whether two colors are equal. Determines whether two colors are not equal. Gets a value indicating whether this color is a known color. Gets the hue-saturation-brightness (HSB) hue value, in degrees, for this color. The hue, in degrees, of this color. The hue is measured in degrees, ranging from 0 through 360, in HSB color space. Gets the hue-saturation-brightness (HSB) saturation value for this color. The saturation of this color. The saturation ranges from 0 through 1, where 0 is grayscale and 1 is the most saturated. Gets the hue-saturation-brightness (HSB) brightness value for this color. The brightness of this color. The brightness ranges from 0 through 1, where 0 represents black and 1 represents white. One of the RGB values changed; recalculate other color representations. One of the CMYK values changed; recalculate other color representations. The gray scale value changed; recalculate other color representations. Gets or sets the alpha value the specifies the transparency. The value is in the range from 1 (opaque) to 0 (completely transparent). Gets or sets the red value. Gets or sets the green value. Gets or sets the blue value. Gets the RGB part value of the color. Internal helper function. Gets the ARGB part value of the color. Internal helper function. Gets or sets the cyan value. Gets or sets the magenta value. Gets or sets the yellow value. Gets or sets the black (or key) value. Gets or sets the gray scale value. Represents the null color. Special property for XmlSerializer only. Manages the localization of the color class. Initializes a new instance of the class. Initializes a new instance of the class. The culture info. Gets a known color from an ARGB value. Throws an ArgumentException if the value is not a known color. Gets all known colors. Indicates whether to include the color Transparent. Converts a known color to a localized color name. Converts a color to a localized color name or an ARGB value. Represents a set of 141 pre-defined RGB colors. Incidentally the values are the same as in System.Drawing.Color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Gets a predefined color. Converts XGraphics enums to GDI+ enums. Defines an object used to draw text. Initializes a new instance of the class. Name of the font family. The em size. Initializes a new instance of the class. Name of the font family. The em size. The font style. Initializes a new instance of the class. Name of the font family. The em size. The font style. Additional PDF options. Initializes a new instance of the class with enforced style simulation. Only for testing PDFsharp. Initializes a new instance of the class from a System.Drawing.FontFamily. The System.Drawing.FontFamily. The em size. The font style. Initializes a new instance of the class from a System.Drawing.FontFamily. The System.Drawing.FontFamily. The em size. The font style. Additional PDF options. Initializes a new instance of the class from a System.Drawing.Font. The System.Drawing.Font. Initializes a new instance of the class from a System.Drawing.Font. The System.Drawing.Font. Additional PDF options. Initializes this instance by computing the glyph typeface, font family, font source and TrueType fontface. (PDFsharp currently only deals with TrueType fonts.) A GDI+ font object is used to setup the internal font objects. Code separated from Metric getter to make code easier to debug. (Setup properties in their getters caused side effects during debugging because Visual Studio calls a getter to early to show its value in a debugger window.) Gets the XFontFamily object associated with this XFont object. WRONG: Gets the face name of this Font object. Indeed it returns the font family name. Gets the em-size of this font measured in the unit of this font object. Gets style information for this Font object. Indicates whether this XFont object is bold. Indicates whether this XFont object is italic. Indicates whether this XFont object is stroke out. Indicates whether this XFont object is underlined. Temporary HACK for XPS to PDF converter. Gets the PDF options of the font. Indicates whether this XFont is encoded as Unicode. Gets the cell space for the font. The CellSpace is the line spacing, the sum of CellAscent and CellDescent and optionally some extra space. Gets the cell ascent, the area above the base line that is used by the font. Gets the cell descent, the area below the base line that is used by the font. Gets the font metrics. The metrics. Returns the line spacing, in pixels, of this font. The line spacing is the vertical distance between the base lines of two consecutive lines of text. Thus, the line spacing includes the blank space between lines along with the height of the character itself. Returns the line spacing, in the current unit of a specified Graphics object, of this font. The line spacing is the vertical distance between the base lines of two consecutive lines of text. Thus, the line spacing includes the blank space between lines along with the height of Gets the line spacing of this font. Override style simulations by using the value of StyleSimulations. Used to enforce style simulations by renderer. For development purposes only. Gets the GDI family. The GDI family. Implicit conversion form Font to XFont Cache PdfFontTable.FontSelector to speed up finding the right PdfFont if this font is used more than once. Gets the DebuggerDisplayAttribute text. Global cache of all internal font family objects. Caches the font family or returns a previously cached one. Gets the singleton. Maps family name to internal font family. Defines a group of typefaces having a similar basic design and certain variations in styles. Initializes a new instance of the class. The family name of a font. Initializes a new instance of the class from FontFamilyInternal. An XGlyphTypeface for a font source that comes from a custom font resolver creates a solitary font family exclusively for it. Gets the name of the font family. Returns the cell ascent, in design units, of the XFontFamily object of the specified style. Returns the cell descent, in design units, of the XFontFamily object of the specified style. Gets the height, in font design units, of the em square for the specified style. Returns the line spacing, in design units, of the FontFamily object of the specified style. The line spacing is the vertical distance between the base lines of two consecutive lines of text. Indicates whether the specified FontStyle enumeration is available. Returns an array that contains all the FontFamily objects associated with the current graphics context. Returns an array that contains all the FontFamily objects available for the specified graphics context. The implementation sigleton of font family; Collects information of a font. Gets the font name. Gets the ascent value. Gets the ascent value. Gets the descent value. Gets the average width. Gets the height of capital letters. Gets the leading value. Gets the line spacing value. Gets the maximum width of a character. Gets an internal value. Gets an internal value. Gets the height of a lower-case character. Gets the underline position. Gets the underline thicksness. Gets the strikethrough position. Gets the strikethrough thicksness. Represents a graphical object that can be used to render retained graphics on it. In GDI+ it is represented by a Metafile, in WPF by a DrawingVisual, and in PDF by a Form XObjects. The form is an imported PDF page. The template is just created. XGraphics.FromForm() was called. The form was drawn at least once and is 'frozen' now. Initializes a new instance of the class. Initializes a new instance of the class that represents a page of a PDF document. The PDF document. The view box of the page. Initializes a new instance of the class that represents a page of a PDF document. The PDF document. The size of the page. Initializes a new instance of the class that represents a page of a PDF document. The PDF document. The width of the page. The height of the page This function should be called when drawing the content of this form is finished. The XGraphics object used for drawing the content is disposed by this function and cannot be used for any further drawing operations. PDFsharp automatically calls this function when this form was used the first time in a DrawImage function. Called from XGraphics constructor that creates an instance that work on this form. Disposes this instance. Sets the form in the state FormState.Finished. Gets the owning document. Gets the color model used in the underlying PDF document. Gets a value indicating whether this instance is a template. Get the width of the page identified by the property PageNumber. Get the width of the page identified by the property PageNumber. Get the width in point of this image. Get the height in point of this image. Get the width of the page identified by the property PageNumber. Get the height of the page identified by the property PageNumber. Get the size of the page identified by the property PageNumber. Gets the view box of the form. Gets 72, the horizontal resolution by design of a form object. Gets 72 always, the vertical resolution by design of a form object. Gets or sets the bounding box. Gets or sets the transformation matrix. Implements the interface because the primary function is internal. Gets the resource name of the specified font within this form. Tries to get the resource name of the specified font data within this form. Returns null if no such font exists. Gets the resource name of the specified font data within this form. Gets the resource name of the specified image within this form. Implements the interface because the primary function is internal. Gets the resource name of the specified form within this form. Implements the interface because the primary function is internal. The PdfFormXObject gets invalid when PageNumber or transform changed. This is because a modification of an XPdfForm must not change objects that are already been drawn. The bytes of a font file. Gets an existing font source or creates a new one. A new font source is cached in font factory. Gets or sets the fontface. Gets the key that uniquely identifies this font source. Gets the name of the font's name table. Gets the bytes of the font. Gets the DebuggerDisplayAttribute text. Specifies a physical font face that corresponds to a font file on the disk or in memory. Gets the name of the font face. This can be a file name, an uri, or a GUID. Gets the English family name of the font, for example "Arial". Gets the English subfamily name of the font, for example "Bold". Gets the English display name of the font, for example "Arial italic". Gets a value indicating whether the font weight is bold. Gets a value indicating whether the font style is italic. Gets the suffix of the face name in a PDF font and font descriptor. The name based on the effective value of bold and italic from the OS/2 table. Computes the bijective key for a typeface. Computes the bijective key for a typeface. Gets the DebuggerDisplayAttribute text. Holds information about the current state of the XGraphics object. Represents a drawing surface for a fixed size page. Initializes a new instance of the XGraphics class for drawing on a PDF page. Initializes a new instance of the XGraphics class used for drawing on a form. Creates the measure context. This is a graphics context created only for querying measures of text. Drawing on a measure context has no effect. Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. Creates a new instance of the XGraphics class from a PdfSharp.Drawing.XPdfForm object. Creates a new instance of the XGraphics class from a PdfSharp.Drawing.XForm object. Creates a new instance of the XGraphics class from a PdfSharp.Drawing.XForm object. Creates a new instance of the XGraphics class from a PdfSharp.Drawing.XImage object. Internal setup. Releases all resources used by this object. Internal hack for MigraDoc. Will be removed in further releases. Unicode support requires a global refactoring of MigraDoc and will be done in further releases. A value indicating whether GDI+ or WPF is used as context. Gets or sets the unit of measure used for page coordinates. CURRENTLY ONLY POINT IS IMPLEMENTED. Gets or sets the a value indicating in which direction y-value grow. Gets the current page origin. Setting the origin is not yet implemented. Gets the current size of the page. Draws a line connecting two XPoint structures. Draws a line connecting the two points specified by coordinate pairs. Draws a series of line segments that connect an array of points. Draws a series of line segments that connect an array of x and y pairs. Draws a Bézier spline defined by four points. Draws a Bézier spline defined by four points. Draws a series of Bézier splines from an array of points. Draws a cardinal spline through a specified array of points. Draws a cardinal spline through a specified array of point using a specified tension. The drawing begins offset from the beginning of the array. Draws a cardinal spline through a specified array of points using a specified tension. Draws an arc representing a portion of an ellipse. Draws an arc representing a portion of an ellipse. Draws a rectangle. Draws a rectangle. Draws a rectangle. Draws a rectangle. Draws a rectangle. Draws a rectangle. Draws a series of rectangles. Draws a series of rectangles. Draws a series of rectangles. Draws a rectangles with round corners. Draws a rectangles with round corners. Draws a rectangles with round corners. Draws a rectangles with round corners. Draws a rectangles with round corners. Draws a rectangles with round corners. Draws an ellipse defined by a bounding rectangle. Draws an ellipse defined by a bounding rectangle. Draws an ellipse defined by a bounding rectangle. Draws an ellipse defined by a bounding rectangle. Draws an ellipse defined by a bounding rectangle. Draws an ellipse defined by a bounding rectangle. Draws a polygon defined by an array of points. Draws a polygon defined by an array of points. Draws a polygon defined by an array of points. Draws a pie defined by an ellipse. Draws a pie defined by an ellipse. Draws a pie defined by an ellipse. Draws a pie defined by an ellipse. Draws a pie defined by an ellipse. Draws a pie defined by an ellipse. Draws a closed cardinal spline defined by an array of points. Draws a closed cardinal spline defined by an array of points. Draws a closed cardinal spline defined by an array of points. Draws a closed cardinal spline defined by an array of points. Draws a closed cardinal spline defined by an array of points. Draws a closed cardinal spline defined by an array of points. Draws a closed cardinal spline defined by an array of points. Draws a closed cardinal spline defined by an array of points. Draws a graphical path. Draws a graphical path. Draws a graphical path. Draws the specified text string. Draws the specified text string. Draws the specified text string. Draws the specified text string. Draws the specified text string. Draws the specified text string. Measures the specified string when drawn with the specified font. Measures the specified string when drawn with the specified font. Draws the specified image. Draws the specified image. Draws the specified image. Draws the specified image. Draws the specified image. Checks whether drawing is allowed and disposes the XGraphics object, if necessary. Draws the specified bar code. Draws the specified bar code. Draws the specified bar code. Draws the specified data matrix code. Draws the specified data matrix code. Saves the current state of this XGraphics object and identifies the saved state with the returned XGraphicsState object. Restores the state of this XGraphics object to the state represented by the specified XGraphicsState object. Restores the state of this XGraphics object to the state before the most recently call of Save. Saves a graphics container with the current state of this XGraphics and opens and uses a new graphics container. Saves a graphics container with the current state of this XGraphics and opens and uses a new graphics container. Closes the current graphics container and restores the state of this XGraphics to the state saved by a call to the BeginContainer method. Gets the current graphics state level. The default value is 0. Each call of Save or BeginContainer increased and each call of Restore or EndContainer decreased the value by 1. Gets or sets the smoothing mode. The smoothing mode. Applies the specified translation operation to the transformation matrix of this object by prepending it to the object's transformation matrix. Applies the specified translation operation to the transformation matrix of this object in the specified order. Applies the specified scaling operation to the transformation matrix of this object by prepending it to the object's transformation matrix. Applies the specified scaling operation to the transformation matrix of this object in the specified order. Applies the specified scaling operation to the transformation matrix of this object by prepending it to the object's transformation matrix. Applies the specified scaling operation to the transformation matrix of this object in the specified order. Applies the specified scaling operation to the transformation matrix of this object by prepending it to the object's transformation matrix. Applies the specified scaling operation to the transformation matrix of this object by prepending it to the object's transformation matrix. Applies the specified rotation operation to the transformation matrix of this object by prepending it to the object's transformation matrix. Applies the specified rotation operation to the transformation matrix of this object in the specified order. The angle unit of measure is degree. Applies the specified rotation operation to the transformation matrix of this object by prepending it to the object's transformation matrix. Applies the specified rotation operation to the transformation matrix of this object by prepending it to the object's transformation matrix. Applies the specified shearing operation to the transformation matrix of this object by prepending it to the object's transformation matrix. ShearTransform is a synonym for SkewAtTransform. Parameter shearX specifies the horizontal skew which is measured in degrees counterclockwise from the y-axis. Parameter shearY specifies the vertical skew which is measured in degrees counterclockwise from the x-axis. Applies the specified shearing operation to the transformation matrix of this object in the specified order. ShearTransform is a synonym for SkewAtTransform. Parameter shearX specifies the horizontal skew which is measured in degrees counterclockwise from the y-axis. Parameter shearY specifies the vertical skew which is measured in degrees counterclockwise from the x-axis. Applies the specified shearing operation to the transformation matrix of this object by prepending it to the object's transformation matrix. ShearTransform is a synonym for SkewAtTransform. Parameter shearX specifies the horizontal skew which is measured in degrees counterclockwise from the y-axis. Parameter shearY specifies the vertical skew which is measured in degrees counterclockwise from the x-axis. Applies the specified shearing operation to the transformation matrix of this object by prepending it to the object's transformation matrix. ShearTransform is a synonym for SkewAtTransform. Parameter shearX specifies the horizontal skew which is measured in degrees counterclockwise from the y-axis. Parameter shearY specifies the vertical skew which is measured in degrees counterclockwise from the x-axis. Multiplies the transformation matrix of this object and specified matrix. Multiplies the transformation matrix of this object and specified matrix in the specified order. Gets the current transformation matrix. The transformation matrix cannot be set. Instead use Save/Restore or BeginContainer/EndContainer to save the state before Transform is called and later restore to the previous transform. Applies a new transformation to the current transformation matrix. Updates the clip region of this XGraphics to the intersection of the current clip region and the specified rectangle. Updates the clip region of this XGraphics to the intersection of the current clip region and the specified graphical path. Writes a comment to the output stream. Comments have no effect on the rendering of the output. They may be useful to mark a position in a content stream of a PDF document. Permits access to internal data. (Under construction. May change in future versions.) The transformation matrix from the XGraphics page space to the Graphics world space. (The name 'default view matrix' comes from Microsoft OS/2 Presentation Manager. I choose this name because I have no better one.) Indicates whether to send drawing operations to _gfx or _dc. Interface to an (optional) renderer. Currently it is the XGraphicsPdfRenderer, if defined. The transformation matrix from XGraphics world space to page unit space. The graphics state stack. Gets the PDF page that serves as drawing surface if PDF is rendered, or null, if no such object exists. Provides access to internal data structures of the XGraphics class. (This class is under construction.) Currently used in MigraDoc Gets the smallest rectangle in default page space units that completely encloses the specified rect in world space units. Represents the internal state of an XGraphics object. Represents a series of connected lines and curves. Initializes a new instance of the class. Clones this instance. Adds a line segment to current figure. Adds a line segment to current figure. Adds a series of connected line segments to current figure. Adds a cubic Bézier curve to the current figure. Adds a cubic Bézier curve to the current figure. Adds a sequence of connected cubic Bézier curves to the current figure. Adds a spline curve to the current figure. Adds a spline curve to the current figure. Adds a spline curve to the current figure. Adds an elliptical arc to the current figure. Adds an elliptical arc to the current figure. Adds an elliptical arc to the current figure. The arc is specified WPF like. Adds a rectangle to this path. Adds a rectangle to this path. Adds a series of rectangles to this path. Adds a rectangle with rounded corners to this path. Adds an ellipse to the current path. Adds an ellipse to the current path. Adds a polygon to this path. Adds the outline of a pie shape to this path. Adds the outline of a pie shape to this path. Adds a closed curve to this path. Adds a closed curve to this path. Adds the specified path to this path. Adds a text string to this path. Adds a text string to this path. Closes the current figure and starts a new figure. Starts a new figure without closing the current figure. Gets or sets an XFillMode that determines how the interiors of shapes are filled. Converts each curve in this XGraphicsPath into a sequence of connected line segments. Converts each curve in this XGraphicsPath into a sequence of connected line segments. Converts each curve in this XGraphicsPath into a sequence of connected line segments. Replaces this path with curves that enclose the area that is filled when this path is drawn by the specified pen. Replaces this path with curves that enclose the area that is filled when this path is drawn by the specified pen. Replaces this path with curves that enclose the area that is filled when this path is drawn by the specified pen. Grants access to internal objects of this class. Gets access to underlying Core graphics path. Provides access to the internal data structures of XGraphicsPath. This class prevents the public interface from pollution with internal functions. Represents the internal state of an XGraphics object. This class is used as a handle for restoring the context. Defines an abstract base class for pixel based images. Gets the width of the image in pixels. Gets the height of the image in pixels. Defines an object used to draw image files (bmp, png, jpeg, gif) and PDF forms. An abstract base class that provides functionality for the Bitmap and Metafile descended classes. Initializes a new instance of the class. Initializes a new instance of the class from an image read by ImageImporter. The image. image Creates an image from the specified file. The path to a BMP, PNG, GIF, JPEG, TIFF, or PDF file. Creates an image from the specified stream.
Silverlight supports PNG and JPEG only.
The stream containing a BMP, PNG, GIF, JPEG, TIFF, or PDF file.
Tests if a file exist. Supports PDF files with page number suffix. The path to a BMP, PNG, GIF, JPEG, TIFF, or PDF file. Under construction Disposes underlying GDI+ object. Gets the width of the image. Gets the height of the image. The factor for conversion from DPM to PointWidth or PointHeight. 72 points per inch, 1000 mm per meter, 25.4 mm per inch => 72 * 1000 / 25.4. The factor for conversion from DPM to PointWidth or PointHeight. 1000 mm per meter, 25.4 mm per inch => 1000 / 25.4. Gets the width of the image in point. Gets the height of the image in point. Gets the width of the image in pixels. Gets the height of the image in pixels. Gets the size in point of the image. Gets the horizontal resolution of the image. Gets the vertical resolution of the image. Gets or sets a flag indicating whether image interpolation is to be performed. Gets the format of the image. If path starts with '*' the image is created from a stream and the path is a GUID. Contains a reference to the original stream if image was created from a stream. Cache PdfImageTable.ImageSelector to speed up finding the right PdfImage if this image is used more than once. Specifies the format of the image. Determines whether the specified object is equal to the current object. Returns the hash code for this instance. Gets the Portable Network Graphics (PNG) image format. Gets the Graphics Interchange Format (GIF) image format. Gets the Joint Photographic Experts Group (JPEG) image format. Gets the Tag Image File Format (TIFF) image format. Gets the Portable Document Format (PDF) image format Gets the Windows icon image format. Defines a Brush with a linear gradient. Initializes a new instance of the class. Initializes a new instance of the class. Gets or sets an XMatrix that defines a local geometric transform for this LinearGradientBrush. Translates the brush with the specified offset. Translates the brush with the specified offset. Scales the brush with the specified scalars. Scales the brush with the specified scalars. Rotates the brush with the specified angle. Rotates the brush with the specified angle. Multiply the brush transformation matrix with the specified matrix. Multiply the brush transformation matrix with the specified matrix. Resets the brush transformation matrix with identity matrix. Represents a 3-by-3 matrix that represents an affine 2D transformation. Initializes a new instance of the XMatrix struct. Gets the identity matrix. Sets this matrix into an identity matrix. Gets a value indicating whether this matrix instance is the identity matrix. Gets an array of double values that represents the elements of this matrix. Multiplies two matrices. Multiplies two matrices. Appends the specified matrix to this matrix. Prepends the specified matrix to this matrix. Appends the specified matrix to this matrix. Prepends the specified matrix to this matrix. Multiplies this matrix with the specified matrix. Appends a translation of the specified offsets to this matrix. Appends a translation of the specified offsets to this matrix. Prepends a translation of the specified offsets to this matrix. Translates the matrix with the specified offsets. Appends the specified scale vector to this matrix. Appends the specified scale vector to this matrix. Prepends the specified scale vector to this matrix. Scales the matrix with the specified scalars. Scales the matrix with the specified scalar. Appends the specified scale vector to this matrix. Prepends the specified scale vector to this matrix. Scales the matrix with the specified scalar. Function is obsolete. Apppends the specified scale about the specified point of this matrix. Prepends the specified scale about the specified point of this matrix. Function is obsolete. Appends a rotation of the specified angle to this matrix. Prepends a rotation of the specified angle to this matrix. Rotates the matrix with the specified angle. Function is obsolete. Appends a rotation of the specified angle at the specified point to this matrix. Prepends a rotation of the specified angle at the specified point to this matrix. Rotates the matrix with the specified angle at the specified point. Appends a rotation of the specified angle at the specified point to this matrix. Prepends a rotation of the specified angle at the specified point to this matrix. Rotates the matrix with the specified angle at the specified point. Function is obsolete. Appends a skew of the specified degrees in the x and y dimensions to this matrix. Prepends a skew of the specified degrees in the x and y dimensions to this matrix. Shears the matrix with the specified scalars. Function is obsolete. Appends a skew of the specified degrees in the x and y dimensions to this matrix. Prepends a skew of the specified degrees in the x and y dimensions to this matrix. Transforms the specified point by this matrix and returns the result. Transforms the specified points by this matrix. Multiplies all points of the specified array with the this matrix. Transforms the specified vector by this Matrix and returns the result. Transforms the specified vectors by this matrix. Gets the determinant of this matrix. Gets a value that indicates whether this matrix is invertible. Inverts the matrix. Gets or sets the value of the first row and first column of this matrix. Gets or sets the value of the first row and second column of this matrix. Gets or sets the value of the second row and first column of this matrix. Gets or sets the value of the second row and second column of this matrix. Gets or sets the value of the third row and first column of this matrix. Gets or sets the value of the third row and second column of this matrix. Determines whether the two matrices are equal. Determines whether the two matrices are not equal. Determines whether the two matrices are equal. Determines whether this matrix is equal to the specified object. Determines whether this matrix is equal to the specified matrix. Returns the hash code for this instance. Parses a matrix from a string. Converts this XMatrix to a human readable string. Converts this XMatrix to a human readable string. Converts this XMatrix to a human readable string. Sets the matrix. Internal matrix helper. Gets the DebuggerDisplayAttribute text. The debugger display. Represents a so called 'PDF form external object', which is typically an imported page of an external PDF document. XPdfForm objects are used like images to draw an existing PDF page of an external document in the current document. XPdfForm objects can only be placed in PDF documents. If you try to draw them using a XGraphics based on an GDI+ context no action is taken if no placeholder image is specified. Otherwise the place holder is drawn. Initializes a new instance of the XPdfForm class from the specified path to an external PDF document. Although PDFsharp internally caches XPdfForm objects it is recommended to reuse XPdfForm objects in your code and change the PageNumber property if more than one page is needed form the external document. Furthermore, because XPdfForm can occupy very much memory, it is recommended to dispose XPdfForm objects if not needed anymore. Initializes a new instance of the class from a stream. The stream. Creates an XPdfForm from a file. Creates an XPdfForm from a stream. Sets the form in the state FormState.Finished. Frees the memory occupied by the underlying imported PDF document, even if other XPdfForm objects refer to this document. A reuse of this object doesn't fail, because the underlying PDF document is re-imported if necessary. Gets or sets an image that is used for drawing if the current XGraphics object cannot handle PDF forms. A place holder is useful for showing a preview of a page on the display, because PDFsharp cannot render native PDF objects. Gets the underlying PdfPage (if one exists). Gets the number of pages in the PDF form. Gets the width in point of the page identified by the property PageNumber. Gets the height in point of the page identified by the property PageNumber. Gets the width in point of the page identified by the property PageNumber. Gets the height in point of the page identified by the property PageNumber. Gets the width in point of the page identified by the property PageNumber. Gets the height in point of the page identified by the property PageNumber. Get the size of the page identified by the property PageNumber. Gets or sets the transformation matrix. Gets or sets the page number in the external PDF document this object refers to. The page number is one-based, i.e. it is in the range from 1 to PageCount. The default value is 1. Gets or sets the page index in the external PDF document this object refers to. The page index is zero-based, i.e. it is in the range from 0 to PageCount - 1. The default value is 0. Gets the underlying document from which pages are imported. Extracts the page number if the path has the form 'MyFile.pdf#123' and returns the actual path without the number sign and the following digits. Defines an object used to draw lines and curves. Initializes a new instance of the class. Initializes a new instance of the class. Initializes a new instance of the class. Clones this instance. Gets or sets the color. Gets or sets the width. Gets or sets the line join. Gets or sets the line cap. Gets or sets the miter limit. Gets or sets the dash style. Gets or sets the dash offset. Gets or sets the dash pattern. Gets or sets a value indicating whether the pen enables overprint when used in a PDF document. Experimental, takes effect only on CMYK color mode. Pens for all the pre-defined colors. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Gets a pre-defined XPen object. Represents a pair of floating point x- and y-coordinates that defines a point in a two-dimensional plane. Initializes a new instance of the XPoint class with the specified coordinates. Determines whether two points are equal. Determines whether two points are not equal. Indicates whether the specified points are equal. Indicates whether this instance and a specified object are equal. Indicates whether this instance and a specified point are equal. Returns the hash code for this instance. Parses the point from a string. Parses an array of points from a string. Gets the x-coordinate of this XPoint. Gets the x-coordinate of this XPoint. Converts this XPoint to a human readable string. Converts this XPoint to a human readable string. Converts this XPoint to a human readable string. Implements ToString. Offsets the x and y value of this point. Adds a point and a vector. Adds a point and a size. Adds a point and a vector. Subtracts a vector from a point. Subtracts a vector from a point. Subtracts a point from a point. Subtracts a size from a point. Subtracts a point from a point. Multiplies a point with a matrix. Multiplies a point with a matrix. Multiplies a point with a scalar value. Multiplies a point with a scalar value. Performs an explicit conversion from XPoint to XSize. Performs an explicit conversion from XPoint to XVector. Gets the DebuggerDisplayAttribute text. Makes fonts that are not installed on the system available within the current application domain.
In Silverlight required for all fonts used in PDF documents.
Initializes a new instance of the class. Gets the global font collection. Adds the specified font data to the global PrivateFontCollection. Family name and style are automatically retrieved from the font. Adds the specified font data to the global PrivateFontCollection. Family name and style are automatically retrieved from the font. Stores a set of four floating-point numbers that represent the location and size of a rectangle. Initializes a new instance of the XRect class. Initializes a new instance of the XRect class. Initializes a new instance of the XRect class. Initializes a new instance of the XRect class. Initializes a new instance of the XRect class. Creates a rectangle from for straight lines. Determines whether the two rectangles are equal. Determines whether the two rectangles are not equal. Determines whether the two rectangles are equal. Determines whether this instance and the specified object are equal. Determines whether this instance and the specified rect are equal. Returns the hash code for this instance. Parses the rectangle from a string. Converts this XRect to a human readable string. Converts this XRect to a human readable string. Converts this XRect to a human readable string. Gets the empty rectangle. Gets a value indicating whether this instance is empty. Gets or sets the location of the rectangle. Gets or sets the size of the rectangle. Gets or sets the X value of the rectangle. Gets or sets the Y value of the rectangle. Gets or sets the width of the rectangle. Gets or sets the height of the rectangle. Gets the x-axis value of the left side of the rectangle. Gets the y-axis value of the top side of the rectangle. Gets the x-axis value of the right side of the rectangle. Gets the y-axis value of the bottom side of the rectangle. Gets the position of the top-left corner of the rectangle. Gets the position of the top-right corner of the rectangle. Gets the position of the bottom-left corner of the rectangle. Gets the position of the bottom-right corner of the rectangle. Gets the center of the rectangle. Indicates whether the rectangle contains the specified point. Indicates whether the rectangle contains the specified point. Indicates whether the rectangle contains the specified rectangle. Indicates whether the specified rectangle intersects with the current rectangle. Sets current rectangle to the intersection of the current rectangle and the specified rectangle. Returns the intersection of two rectangles. Sets current rectangle to the union of the current rectangle and the specified rectangle. Returns the union of two rectangles. Sets current rectangle to the union of the current rectangle and the specified point. Returns the intersection of a rectangle and a point. Moves a rectangle by the specified amount. Moves a rectangle by the specified amount. Returns a rectangle that is offset from the specified rectangle by using the specified vector. Returns a rectangle that is offset from the specified rectangle by using specified horizontal and vertical amounts. Translates the rectangle by adding the specified point. Translates the rectangle by subtracting the specified point. Expands the rectangle by using the specified Size, in all directions. Expands or shrinks the rectangle by using the specified width and height amounts, in all directions. Returns the rectangle that results from expanding the specified rectangle by the specified Size, in all directions. Creates a rectangle that results from expanding or shrinking the specified rectangle by the specified width and height amounts, in all directions. Returns the rectangle that results from applying the specified matrix to the specified rectangle. Transforms the rectangle by applying the specified matrix. Multiplies the size of the current rectangle by the specified x and y values. Gets the DebuggerDisplayAttribute text. The debugger display. Represents a pair of floating-point numbers, typically the width and height of a graphical object. Initializes a new instance of the XPoint class with the specified values. Determines whether two size objects are equal. Determines whether two size objects are not equal. Indicates whether this two instance are equal. Indicates whether this instance and a specified object are equal. Indicates whether this instance and a specified size are equal. Returns the hash code for this instance. Parses the size from a string. Converts this XSize to an XPoint. Converts this XSize to an XVector. Converts this XSize to a human readable string. Converts this XSize to a human readable string. Converts this XSize to a human readable string. Returns an empty size, i.e. a size with a width or height less than 0. Gets a value indicating whether this instance is empty. Gets or sets the width. Gets or sets the height. Performs an explicit conversion from XSize to XVector. Performs an explicit conversion from XSize to XPoint. Gets the DebuggerDisplayAttribute text. The debugger display. Defines a single color object used to fill shapes and draw text. Initializes a new instance of the class. Initializes a new instance of the class. Initializes a new instance of the class. Gets or sets the color of this brush. Gets or sets a value indicating whether the brush enables overprint when used in a PDF document. Experimental, takes effect only on CMYK color mode. Represents the text layout information. Initializes a new instance of the class. Gets or sets horizontal text alignment information. Gets or sets the line alignment. Gets a new XStringFormat object that aligns the text left on the base line. Gets a new XStringFormat object that aligns the text top left of the layout rectangle. Gets a new XStringFormat object that centers the text in the middle of the layout rectangle. Gets a new XStringFormat object that centers the text at the top of the layout rectangle. Gets a new XStringFormat object that centers the text at the bottom of the layout rectangle. Represents predefined text layouts. Gets a new XStringFormat object that aligns the text left on the base line. This is the same as BaseLineLeft. Gets a new XStringFormat object that aligns the text left on the base line. This is the same as Default. Gets a new XStringFormat object that aligns the text top left of the layout rectangle. Gets a new XStringFormat object that aligns the text center left of the layout rectangle. Gets a new XStringFormat object that aligns the text bottom left of the layout rectangle. Gets a new XStringFormat object that centers the text in the middle of the base line. Gets a new XStringFormat object that centers the text at the top of the layout rectangle. Gets a new XStringFormat object that centers the text in the middle of the layout rectangle. Gets a new XStringFormat object that centers the text at the bottom of the layout rectangle. Gets a new XStringFormat object that aligns the text in right on the base line. Gets a new XStringFormat object that aligns the text top right of the layout rectangle. Gets a new XStringFormat object that aligns the text center right of the layout rectangle. Gets a new XStringFormat object that aligns the text at the bottom right of the layout rectangle. Represents a value and its unit of measure. The structure converts implicitly from and to double with a value measured in point. Initializes a new instance of the XUnit class with type set to point. Initializes a new instance of the XUnit class. Gets the raw value of the object without any conversion. To determine the XGraphicsUnit use property Type. To get the value in point use the implicit conversion to double. Gets the unit of measure. Gets or sets the value in point. Gets or sets the value in inch. Gets or sets the value in millimeter. Gets or sets the value in centimeter. Gets or sets the value in presentation units (1/96 inch). Returns the object as string using the format information. The unit of measure is appended to the end of the string. Returns the object as string using the specified format and format information. The unit of measure is appended to the end of the string. Returns the object as string. The unit of measure is appended to the end of the string. Returns the unit of measure of the object as a string like 'pt', 'cm', or 'in'. Returns an XUnit object. Sets type to point. Returns an XUnit object. Sets type to inch. Returns an XUnit object. Sets type to millimeters. Returns an XUnit object. Sets type to centimeters. Returns an XUnit object. Sets type to Presentation. Converts a string to an XUnit object. If the string contains a suffix like 'cm' or 'in' the object will be converted to the appropriate type, otherwise point is assumed. Converts an int to an XUnit object with type set to point. Converts a double to an XUnit object with type set to point. Returns a double value as point. Memberwise comparison. To compare by value, use code like Math.Abs(a.Pt - b.Pt) < 1e-5. Memberwise comparison. To compare by value, use code like Math.Abs(a.Pt - b.Pt) < 1e-5. Calls base class Equals. Returns the hash code for this instance. This member is intended to be used by XmlDomainObjectReader only. Converts an existing object from one unit into another unit type. Represents a unit with all values zero. Gets the DebuggerDisplayAttribute text. The debugger display. Represents a two-dimensional vector specified by x- and y-coordinates. Gets the DebuggerDisplayAttribute text. The debugger display. Identifies the technology of an OpenType font file. Font is Adobe Postscript font in CFF. Font is a TrueType font. Font is a TrueType font collection. TrueType font table names. Character to glyph mapping. Font header . Horizontal header. Horizontal Metrics. Maximum profile. Naming table. OS/2 and Windows specific Metrics. PostScript information. Control Value Table. Font program. Glyph data. Index to location. CVT Program. PostScript font program (compact font format). Vertical Origin. Embedded bitmap data. Embedded bitmap location data. Embedded bitmap scaling data. Baseline data. Glyph definition data. Glyph positioning data. Glyph substitution data. Justification data. Digital signature. Grid-fitting/Scan-conversion. Horizontal device Metrics. Kerning. Linear threshold data. PCL 5 data. Vertical device Metrics. Vertical Header. Vertical Metrics. Base class for all font descriptors. Currently only OpenTypeDescriptor is derived from this base class. Gets a value indicating whether this instance belongs to a bold font. Gets a value indicating whether this instance belongs to an italic font. This table contains information that describes the glyphs in the font in the TrueType outline format. Information regarding the rasterizer (scaler) refers to the TrueType rasterizer. http://www.microsoft.com/typography/otspec/glyf.htm Converts the bytes in a handy representation Gets the data of the specified glyph. Gets the size of the byte array that defines the glyph. Gets the offset of the specified glyph relative to the first byte of the font image. Adds for all composite glyphs the glyphs the composite one is made of. If the specified glyph is a composite glyph add the glyphs it is made of to the glyph table. Prepares the font table to be compiled into its binary representation. Converts the font into its binary representation. Global table of all OpenType fontfaces cached by their face name and check sum. Tries to get fontface by its key. Tries to get fontface by its check sum. Gets the singleton. Maps face name to OpenType fontface. Maps font source key to OpenType fontface. Gets the DebuggerDisplayAttribute text. Global table of all glyph typefaces. Gets the singleton. Maps typeface key to glyph typeface. The indexToLoc table stores the offsets to the locations of the glyphs in the font, relative to the beginning of the glyphData table. In order to compute the length of the last glyph element, there is an extra entry after the last valid index. Converts the bytes in a handy representation Prepares the font table to be compiled into its binary representation. Converts the font into its binary representation. Represents an indirect reference to an existing font table in a font image. Used to create binary copies of an existing font table that is not modified. Prepares the font table to be compiled into its binary representation. Converts the font into its binary representation. The OpenType font descriptor. Currently the only font type PDFsharp supports. New... Gets a value indicating whether this instance belongs to a bold font. Gets a value indicating whether this instance belongs to an italic font. Maps a unicode to the index of the corresponding glyph. See OpenType spec "cmap - Character To Glyph Index Mapping Table / Format 4: Segment mapping to delta values" for details about this a little bit strange looking algorithm. Converts the width of a glyph identified by its index to PDF design units. //Converts the width of a glyph identified by its index to PDF design units. //Converts the width of a glyph identified by its index to PDF design units. Represents an OpenType fontface in memory. Shallow copy for font subset. Initializes a new instance of the class. Gets the full face name from the name table. Name is also used as the key. Gets the bytes that represents the font data. The dictionary of all font tables. Adds the specified table to this font image. Reads all required tables from the font data. Creates a new font image that is a subset of this font image containing only the specified glyphs. Compiles the font to its binary representation. Reads a System.Byte. Reads a System.Int16. Reads a System.UInt16. Reads a System.Int32. Reads a System.UInt32. Reads a System.Int32. Reads a System.Int16. Reads a System.UInt16. Reads a System.Int64. Reads a System.String with the specified size. Reads a System.Byte[] with the specified size. Reads the specified buffer. Reads the specified buffer. Reads a System.Char[4] as System.String. Gets the DebuggerDisplayAttribute text. Represents the font offset table. 0x00010000 for Version 1.0. Number of tables. (Maximum power of 2 ≤ numTables) x 16. Log2(maximum power of 2 ≤ numTables). NumTables x 16-searchRange. Writes the offset table. Base class for all OpenType tables used in PDFsharp. Creates a deep copy of the current instance. Gets the font image the table belongs to. When overridden in a derived class, prepares the font table to be compiled into its binary representation. When overridden in a derived class, converts the font into its binary representation. Calculates the checksum of a table represented by its bytes. Only Symbol and Unicode is used by PDFsharp. CMap format 4: Segment mapping to delta values. The Windows standard format. This table defines the mapping of character codes to the glyph index values used in the font. It may contain more than one subtable, in order to support more than one character encoding scheme. Is true for symbol font encoding. Initializes a new instance of the class. This table gives global information about the font. The bounding box values should be computed using only glyphs that have contours. Glyphs with no contours should be ignored for the purposes of these calculations. This table contains information for horizontal layout. The values in the minRightSidebearing, MinLeftSideBearing and xMaxExtent should be computed using only glyphs that have contours. Glyphs with no contours should be ignored for the purposes of these calculations. All reserved areas must be set to 0. The type longHorMetric is defined as an array where each element has two parts: the advance width, which is of type USHORT, and the left side bearing, which is of type SHORT. These fields are in font design units. The vertical Metrics table allows you to specify the vertical spacing for each glyph in a vertical font. This table consists of either one or two arrays that contain metric information (the advance heights and top sidebearings) for the vertical layout of each of the glyphs in the font. This table establishes the memory requirements for this font. Fonts with CFF data must use Version 0.5 of this table, specifying only the numGlyphs field. Fonts with TrueType outlines must use Version 1.0 of this table, where all data is required. Both formats of OpenType require a 'maxp' table because a number of applications call the Windows GetFontData() API on the 'maxp' table to determine the number of glyphs in the font. The naming table allows multilingual strings to be associated with the OpenTypeTM font file. These strings can represent copyright notices, font names, family names, style names, and so on. To keep this table short, the font manufacturer may wish to make a limited set of entries in some small set of languages; later, the font can be "localized" and the strings translated or added. Other parts of the OpenType font file that require these strings can then refer to them simply by their index number. Clients that need a particular string can look it up by its platform ID, character encoding ID, language ID and name ID. Note that some platforms may require single byte character strings, while others may require double byte strings. For historical reasons, some applications which install fonts perform Version control using Macintosh platform (platform ID 1) strings from the 'name' table. Because of this, we strongly recommend that the 'name' table of all fonts include Macintosh platform strings and that the syntax of the Version number (name id 5) follows the guidelines given in this document. Get the font family name. Get the font subfamily name. Get the full font name. The OS/2 table consists of a set of Metrics that are required in OpenType fonts. This table contains additional information needed to use TrueType or OpenTypeTM fonts on PostScript printers. This table contains a list of values that can be referenced by instructions. They can be used, among other things, to control characteristics for different glyphs. The length of the table must be an integral number of FWORD units. This table is similar to the CVT Program, except that it is only run once, when the font is first used. It is used only for FDEFs and IDEFs. Thus the CVT Program need not contain function definitions. However, the CVT Program may redefine existing FDEFs or IDEFs. The Control Value Program consists of a set of TrueType instructions that will be executed whenever the font or point size or transformation matrix change and before each glyph is interpreted. Any instruction is legal in the CVT Program but since no glyph is associated with it, instructions intended to move points within a particular glyph outline cannot be used in the CVT Program. The name 'prep' is anachronistic. This table contains information that describes the glyphs in the font in the TrueType outline format. Information regarding the rasterizer (scaler) refers to the TrueType rasterizer. Represents a writer for True Type font files. Initializes a new instance of the class. Writes a table name. Represents an entry in the fonts table dictionary. Initializes a new instance of the class. Initializes a new instance of the class. 4 -byte identifier. CheckSum for this table. Offset from beginning of TrueType font file. Actual length of this table in bytes. Gets the length rounded up to a multiple of four bytes. Associated font table. Creates and reads a TableDirectoryEntry from the font image. Helper class that determines the characters used in a particular font. Adds the characters of the specified string to the hashtable. Adds the glyphIndices to the hashtable. Adds a ANSI characters. Parameters that affect font selection. Represents a font resolver info created by the platform font resolver. Default platform specific font resolving. Resolves the typeface by generating a font resolver info. Name of the font family. Indicates whether a bold font is requested. Indicates whether an italic font is requested. Internal implementation. Create a GDI+ font and use its handle to retrieve font data using native calls. Describes the physical font that must be used to render a particular XFont. Initializes a new instance of the struct. The name that uniquely identifies the fontface. Initializes a new instance of the struct. The name that uniquely identifies the fontface. Set to true to simulate bold when rendered. Not implemented and must be false. Set to true to simulate italic when rendered. Index of the font in a true type font collection. Not yet implemented and must be zero. Initializes a new instance of the struct. The name that uniquely identifies the fontface. Set to true to simulate bold when rendered. Not implemented and must be false. Set to true to simulate italic when rendered. Initializes a new instance of the struct. The name that uniquely identifies the fontface. The style simulation flags. Gets the key for this object. A name that uniquely identifies the font (not the family), e.g. the file name of the font. PDFsharp does not use this name internally, but passes it to the GetFont function of the IFontResolver interface to retrieve the font data. Indicates whether bold must be simulated. Bold simulation is not implemented in PDFsharp. Indicates whether italic must be simulated. Gets the style simulation flags. The number of the font in a Truetype font collection file. The number of the first font is 0. NOT YET IMPLEMENTED. Must be zero. Gets the DebuggerDisplayAttribute text. Provides functionality that converts a requested typeface into a physical font. Converts specified information about a required typeface into a specific font. Name of the font family. Set to true when a bold fontface is required. Set to true when an italic fontface is required. Information about the physical font, or null if the request cannot be satisfied. Gets the bytes of a physical font with specified face name. A face name previously retrieved by ResolveTypeface. Provides functionality to specify information about the handling of fonts in the current application domain. The name of the default font. Gets or sets the global font resolver for the current application domain. This static function must be called only once and before any font operation was executed by PDFsharp. If this is not easily to obtain, e.g. because your code is running on a web server, you must provide the same instance of your font resolver in every subsequent setting of this property. In a web application set the font resolver in Global.asax. Gets or sets the default font encoding used for XFont objects where encoding is not explicitly specified. If it is not set, the default value is PdfFontEncoding.Unicode. If you are sure your document contains only Windows-1252 characters (see https://en.wikipedia.org/wiki/Windows-1252) set default encoding to PdfFontEncodingj.Windows1252. Must be set only once per app domain. Global table of OpenType font descriptor objects. Gets the FontDescriptor identified by the specified XFont. If no such object exists, a new FontDescriptor is created and added to the cache. Gets the FontDescriptor identified by the specified FontSelector. If no such object exists, a new FontDescriptor is created and added to the stock. Gets the singleton. Maps font font descriptor key to font descriptor. Provides functionality to map a fontface request to a physical font. Converts specified information about a required typeface into a specific font. Name of the font family. The font resolving options. Typeface key if already known by caller, null otherwise. Information about the typeface, or null if no typeface can be found. Gets the bytes of a physical font with specified face name. Gets the bytes of a physical font with specified face name. Gets a value indicating whether at least one font source was created. Caches a font source under its face name and its key. Caches a font source under its face name and its key. Maps font typeface key to font resolver info. Maps typeface key or font name to font source. Maps font source key to font source. Represents a writer for generation of font file streams. Initializes a new instance of the class. Data is written in Motorola format (big-endian). Closes the writer and, if specified, the underlying stream. Closes the writer and the underlying stream. Gets or sets the position within the stream. Writes the specified value to the font stream. Writes the specified value to the font stream. Writes the specified value to the font stream using big-endian. Writes the specified value to the font stream using big-endian. Writes the specified value to the font stream using big-endian. Writes the specified value to the font stream using big-endian. Writes the specified value to the font stream using big-endian. Writes the specified value to the font stream using big-endian. Gets the underlying stream. Specifies the flags of AcroForm fields. If set, the user may not change the value of the field. Any associated widget annotations will not interact with the user; that is, they will not respond to mouse clicks or change their appearance in response to mouse motions. This flag is useful for fields whose values are computed or imported from a database. If set, the field must have a value at the time it is exported by a submit-form action. If set, the field must not be exported by a submit-form action. If set, the field is a pushbutton that does not retain a permanent value. If set, the field is a set of radio buttons; if clear, the field is a checkbox. This flag is meaningful only if the Pushbutton flag is clear. (Radio buttons only) If set, exactly one radio button must be selected at all times; clicking the currently selected button has no effect. If clear, clicking the selected button deselects it, leaving no button selected. If set, the field may contain multiple lines of text; if clear, the field’s text is restricted to a single line. If set, the field is intended for entering a secure password that should not be echoed visibly to the screen. Characters typed from the keyboard should instead be echoed in some unreadable form, such as asterisks or bullet characters. To protect password confidentiality, viewer applications should never store the value of the text field in the PDF file if this flag is set. (PDF 1.4) If set, the text entered in the field represents the pathname of a file whose contents are to be submitted as the value of the field. (PDF 1.4) If set, the text entered in the field will not be spell-checked. (PDF 1.4) If set, the field will not scroll (horizontally for single-line fields, vertically for multiple-line fields) to accommodate more text than will fit within its annotation rectangle. Once the field is full, no further text will be accepted. If set, the field is a combo box; if clear, the field is a list box. If set, the combo box includes an editable text box as well as a drop list; if clear, it includes only a drop list. This flag is meaningful only if the Combo flag is set. If set, the field’s option items should be sorted alphabetically. This flag is intended for use by form authoring tools, not by PDF viewer applications; viewers should simply display the options in the order in which they occur in the Opt array. (PDF 1.4) If set, more than one of the field’s option items may be selected simultaneously; if clear, no more than one item at a time may be selected. (PDF 1.4) If set, the text entered in the field will not be spell-checked. This flag is meaningful only if the Combo and Edit flags are both set. Represents the base class for all interactive field dictionaries. Initializes a new instance of PdfAcroField. Initializes a new instance of the class. Used for type transformation. Gets the name of this field. Gets the field flags of this instance. Gets or sets the value of the field. Gets or sets a value indicating whether the field is read only. Gets the field with the specified name. Gets a child field by name. Indicates whether the field has child fields. Gets the names of all descendants of this field. Gets the names of all descendants of this field. Gets the names of all appearance dictionaries of this AcroField. Gets the collection of fields within this field. Holds a collection of interactive fields. Gets the number of elements in the array. Gets the names of all fields in the collection. Gets an array of all descendant names. Gets a field from the collection. For your convenience an instance of a derived class like PdfTextField or PdfCheckBox is returned if PDFsharp can guess the actual type of the dictionary. If the actual type cannot be guessed by PDFsharp the function returns an instance of PdfGenericField. Gets the field with the specified name. Create a derived type like PdfTextField or PdfCheckBox if possible. If the actual cannot be guessed by PDFsharp the function returns an instance of PdfGenericField. Predefined keys of this dictionary. The description comes from PDF 1.4 Reference. (Required for terminal fields; inheritable) The type of field that this dictionary describes: Btn Button Tx Text Ch Choice Sig (PDF 1.3) Signature Note: This entry may be present in a nonterminal field (one whose descendants are themselves fields) in order to provide an inheritable FT value. However, a nonterminal field does not logically have a type of its own; it is merely a container for inheritable attributes that are intended for descendant terminal fields of any type. (Required if this field is the child of another in the field hierarchy; absent otherwise) The field that is the immediate parent of this one (the field, if any, whose Kids array includes this field). A field can have at most one parent; that is, it can be included in the Kids array of at most one other field. (Optional) An array of indirect references to the immediate children of this field. (Optional) The partial field name. (Optional; PDF 1.3) An alternate field name, to be used in place of the actual field name wherever the field must be identified in the user interface (such as in error or status messages referring to the field). This text is also useful when extracting the document’s contents in support of accessibility to disabled users or for other purposes. (Optional; PDF 1.3) The mapping name to be used when exporting interactive form field data from the document. (Optional; inheritable) A set of flags specifying various characteristics of the field. Default value: 0. (Optional; inheritable) The field’s value, whose format varies depending on the field type; see the descriptions of individual field types for further information. (Optional; inheritable) The default value to which the field reverts when a reset-form action is executed. The format of this value is the same as that of V. (Optional; PDF 1.2) An additional-actions dictionary defining the field’s behavior in response to various trigger events. This entry has exactly the same meaning as the AA entry in an annotation dictionary. (Required; inheritable) A resource dictionary containing default resources (such as fonts, patterns, or color spaces) to be used by the appearance stream. At a minimum, this dictionary must contain a Font entry specifying the resource name and font dictionary of the default font for displaying the field’s text. (Required; inheritable) The default appearance string, containing a sequence of valid page-content graphics or text state operators defining such properties as the field’s text size and color. (Optional; inheritable) A code specifying the form of quadding (justification) to be used in displaying the text: 0 Left-justified 1 Centered 2 Right-justified Default value: 0 (left-justified). Represents an interactive form (or AcroForm), a collection of fields for gathering information interactively from the user. Initializes a new instance of AcroForm. Gets the fields collection of this form. Predefined keys of this dictionary. The description comes from PDF 1.4 Reference. (Required) An array of references to the document’s root fields (those with no ancestors in the field hierarchy). (Optional) A flag specifying whether to construct appearance streams and appearance dictionaries for all widget annotations in the document. Default value: false. (Optional; PDF 1.3) A set of flags specifying various document-level characteristics related to signature fields. Default value: 0. (Required if any fields in the document have additional-actions dictionaries containing a C entry; PDF 1.3) An array of indirect references to field dictionaries with calculation actions, defining the calculation order in which their values will be recalculated when the value of any field changes. (Optional) A document-wide default value for the DR attribute of variable text fields. (Optional) A document-wide default value for the DA attribute of variable text fields. (Optional) A document-wide default value for the Q attribute of variable text fields. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents the base class for all button fields. Initializes a new instance of the class. Initializes a new instance of the class. Gets the name which represents the opposite of /Off. Predefined keys of this dictionary. The description comes from PDF 1.4 Reference. Represents the check box field. Initializes a new instance of PdfCheckBoxField. Indicates whether the field is checked. Gets or sets the name of the dictionary that represents the Checked state. The default value is "/Yes". Gets or sets the name of the dictionary that represents the Unchecked state. The default value is "/Off". Predefined keys of this dictionary. The description comes from PDF 1.4 Reference. (Optional; inheritable; PDF 1.4) A text string to be used in place of the V entry for the value of the field. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents the base class for all choice field dictionaries. Initializes a new instance of the class. Initializes a new instance of the class. Gets the index of the specified string in the /Opt array or -1, if no such string exists. Gets the value from the index in the /Opt array. Predefined keys of this dictionary. The description comes from PDF 1.4 Reference. (Required; inheritable) An array of options to be presented to the user. Each element of the array is either a text string representing one of the available options or a two-element array consisting of a text string together with a default appearance string for constructing the item’s appearance dynamically at viewing time. (Optional; inheritable) For scrollable list boxes, the top index (the index in the Opt array of the first option visible in the list). (Sometimes required, otherwise optional; inheritable; PDF 1.4) For choice fields that allow multiple selection (MultiSelect flag set), an array of integers, sorted in ascending order, representing the zero-based indices in the Opt array of the currently selected option items. This entry is required when two or more elements in the Opt array have different names but the same export value, or when the value of the choice field is an array; in other cases, it is permitted but not required. If the items identified by this entry differ from those in the V entry of the field dictionary (see below), the V entry takes precedence. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents the combo box field. Initializes a new instance of PdfComboBoxField. Gets or sets the index of the selected item. Gets or sets the value of the field. Predefined keys of this dictionary. The description comes from PDF 1.4 Reference. Gets the KeysMeta of this dictionary type. Represents a generic field. Used for AcroForm dictionaries unknown to PDFsharp. Initializes a new instance of PdfGenericField. Predefined keys of this dictionary. The description comes from PDF 1.4 Reference. Gets the KeysMeta of this dictionary type. Represents the list box field. Initializes a new instance of PdfListBoxField. Gets or sets the index of the selected item Predefined keys of this dictionary. The description comes from PDF 1.4 Reference. Gets the KeysMeta of this dictionary type. Represents the push button field. Initializes a new instance of PdfPushButtonField. Predefined keys of this dictionary. The description comes from PDF 1.4 Reference. Gets the KeysMeta of this dictionary type. Represents the radio button field. Initializes a new instance of PdfRadioButtonField. Gets or sets the index of the selected radio button in a radio button group. Predefined keys of this dictionary. The description comes from PDF 1.4 Reference. (Optional; inheritable; PDF 1.4) An array of text strings to be used in place of the V entries for the values of the widget annotations representing the individual radio buttons. Each element in the array represents the export value of the corresponding widget annotation in the Kids array of the radio button field. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents the signature field. Initializes a new instance of PdfSignatureField. Predefined keys of this dictionary. The description comes from PDF 1.4 Reference. (Optional) The type of PDF object that this dictionary describes; if present, must be Sig for a signature dictionary. (Required; inheritable) The name of the signature handler to be used for authenticating the field’s contents, such as Adobe.PPKLite, Entrust.PPKEF, CICI.SignIt, or VeriSign.PPKVS. (Optional) The name of a specific submethod of the specified handler. (Required) An array of pairs of integers (starting byte offset, length in bytes) describing the exact byte range for the digest calculation. Multiple discontinuous byte ranges may be used to describe a digest that does not include the signature token itself. (Required) The encrypted signature token. (Optional) The name of the person or authority signing the document. (Optional) The time of signing. Depending on the signature handler, this may be a normal unverified computer time or a time generated in a verifiable way from a secure time server. (Optional) The CPU host name or physical location of the signing. (Optional) The reason for the signing, such as (I agree…). Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents the text field. Initializes a new instance of PdfTextField. Gets or sets the text value of the text field. Gets or sets the font used to draw the text of the field. Gets or sets the foreground color of the field. Gets or sets the background color of the field. Gets or sets the maximum length of the field. The length of the max. Gets or sets a value indicating whether the field has multiple lines. Gets or sets a value indicating whether this field is used for passwords. Creates the normal appearance form X object for the annotation that represents this acro form text field. Predefined keys of this dictionary. The description comes from PDF 1.4 Reference. (Optional; inheritable) The maximum length of the field’s text, in characters. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Specifies the predefined PDF actions. Go to next page. Go to previous page. Go to first page. Go to last page. Represents a PDF Goto actions. Initializes a new instance of the class. Initializes a new instance of the class. The document that owns this object. Predefined keys of this dictionary. (Required) The destination to jump to (see Section 8.2.1, “Destinations”). Represents the base class for all PDF actions. Initializes a new instance of the class. Initializes a new instance of the class. The document that owns this object. Predefined keys of this dictionary. (Optional) The type of PDF object that this dictionary describes; if present, must be Action for an action dictionary. (Required) The type of action that this dictionary describes. (Optional; PDF 1.2) The next action or sequence of actions to be performed after the action represented by this dictionary. The value is either a single action dictionary or an array of action dictionaries to be performed in order; see below for further discussion. Represents the catalog dictionary. Initializes a new instance of the class. Get or sets the version of the PDF specification to which the document conforms. Gets the pages collection of this document. Implementation of PdfDocument.PageLayout. Implementation of PdfDocument.PageMode. Implementation of PdfDocument.ViewerPreferences. Implementation of PdfDocument.Outlines. Gets the AcroForm dictionary of this document. Gets or sets the language identifier specifying the natural language for all text in the document. Sample values are 'en-US' for 'English United States' or 'de-DE' for 'deutsch Deutschland' (i.e. 'German Germany'). Dispatches PrepareForSave to the objects that need it. Predefined keys of this dictionary. (Required) The type of PDF object that this dictionary describes; must be Catalog for the catalog dictionary. (Optional; PDF 1.4) The version of the PDF specification to which the document conforms (for example, 1.4) if later than the version specified in the file’s header. If the header specifies a later version, or if this entry is absent, the document conforms to the version specified in the header. This entry enables a PDF producer application to update the version using an incremental update. (Required; must be an indirect reference) The page tree node that is the root of the document’s page tree. (Optional; PDF 1.3) A number tree defining the page labeling for the document. The keys in this tree are page indices; the corresponding values are page label dictionaries. Each page index denotes the first page in a labeling range to which the specified page label dictionary applies. The tree must include a value for pageindex 0. (Optional; PDF 1.2) The document’s name dictionary. (Optional; PDF 1.1; must be an indirect reference) A dictionary of names and corresponding destinations. (Optional; PDF 1.2) A viewer preferences dictionary specifying the way the document is to be displayed on the screen. If this entry is absent, applications should use their own current user preference settings. (Optional) A name object specifying the page layout to be used when the document is opened: SinglePage - Display one page at a time. OneColumn - Display the pages in one column. TwoColumnLeft - Display the pages in two columns, with oddnumbered pages on the left. TwoColumnRight - Display the pages in two columns, with oddnumbered pages on the right. TwoPageLeft - (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the left TwoPageRight - (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the right. (Optional) A name object specifying how the document should be displayed when opened: UseNone - Neither document outline nor thumbnail images visible. UseOutlines - Document outline visible. UseThumbs - Thumbnail images visible. FullScreen - Full-screen mode, with no menu bar, windowcontrols, or any other window visible. UseOC - (PDF 1.5) Optional content group panel visible. UseAttachments (PDF 1.6) Attachments panel visible. Default value: UseNone. (Optional; must be an indirect reference) The outline dictionary that is the root of the document’s outline hierarchy. (Optional; PDF 1.1; must be an indirect reference) An array of thread dictionaries representing the document’s article threads. (Optional; PDF 1.1) A value specifying a destination to be displayed or an action to be performed when the document is opened. The value is either an array defining a destination or an action dictionary representing an action. If this entry is absent, the document should be opened to the top of the first page at the default magnification factor. (Optional; PDF 1.4) An additional-actions dictionary defining the actions to be taken in response to various trigger events affecting the document as a whole. (Optional; PDF 1.1) A URI dictionary containing document-level information for URI (uniform resource identifier) actions. (Optional; PDF 1.2) The document’s interactive form (AcroForm) dictionary. (Optional; PDF 1.4; must be an indirect reference) A metadata stream containing metadata for the document. (Optional; PDF 1.3) The document’s structure tree root dictionary. (Optional; PDF 1.4) A mark information dictionary containing information about the document’s usage of Tagged PDF conventions. (Optional; PDF 1.4) A language identifier specifying the natural language for all text in the document except where overridden by language specifications for structure elements or marked content. If this entry is absent, the language is considered unknown. (Optional; PDF 1.3) A Web Capture information dictionary containing state information used by the Acrobat Web Capture (AcroSpider) plugin extension. (Optional; PDF 1.4) An array of output intent dictionaries describing the color characteristics of output devices on which the document might be rendered. (Optional; PDF 1.4) A page-piece dictionary associated with the document. (Optional; PDF 1.5; required if a document contains optional content) The document’s optional content properties dictionary. (Optional; PDF 1.5) A permissions dictionary that specifies user access permissions for the document. (Optional; PDF 1.5) A dictionary containing attestations regarding the content of a PDF document, as it relates to the legality of digital signatures. (Optional; PDF 1.7) An array of requirement dictionaries representing requirements for the document. (Optional; PDF 1.7) A collection dictionary that a PDF consumer uses to enhance the presentation of file attachments stored in the PDF document. (Optional; PDF 1.7) A flag used to expedite the display of PDF documents containing XFA forms. It specifies whether the document must be regenerated when the document is first opened. If true, the viewer application treats the document as a shell and regenerates the content when the document is opened, regardless of any dynamic forms settings that appear in the XFA stream itself. This setting is used to expedite the display of documents whose layout varies depending on the content of the XFA streams. If false, the viewer application does not regenerate the content when the document is opened. See the XML Forms Architecture (XFA) Specification (Bibliography). Default value: false. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents a CIDFont dictionary. Prepares the object to get saved. Predefined keys of this dictionary. (Required) The type of PDF object that this dictionary describes; must be Font for a CIDFont dictionary. (Required) The type of CIDFont; CIDFontType0 or CIDFontType2. (Required) The PostScript name of the CIDFont. For Type 0 CIDFonts, this is usually the value of the CIDFontName entry in the CIDFont program. For Type 2 CIDFonts, it is derived the same way as for a simple TrueType font; In either case, the name can have a subset prefix if appropriate. (Required) A dictionary containing entries that define the character collection of the CIDFont. (Required; must be an indirect reference) A font descriptor describing the CIDFont’s default metrics other than its glyph widths. (Optional) The default width for glyphs in the CIDFont. Default value: 1000. (Optional) A description of the widths for the glyphs in the CIDFont. The array’s elements have a variable format that can specify individual widths for consecutive CIDs or one width for a range of CIDs. Default value: none (the DW value is used for all glyphs). (Optional; applies only to CIDFonts used for vertical writing) An array of two numbers specifying the default metrics for vertical writing. Default value: [880 −1000]. (Optional; applies only to CIDFonts used for vertical writing) A description of the metrics for vertical writing for the glyphs in the CIDFont. Default value: none (the DW2 value is used for all glyphs). (Optional; Type 2 CIDFonts only) A specification of the mapping from CIDs to glyph indices. If the value is a stream, the bytes in the stream contain the mapping from CIDs to glyph indices: the glyph index for a particular CID value c is a 2-byte value stored in bytes 2 × c and 2 × c + 1, where the first byte is the high-order byte. If the value of CIDToGIDMap is a name, it must be Identity, indicating that the mapping between CIDs and glyph indices is the identity mapping. Default value: Identity. This entry may appear only in a Type 2 CIDFont whose associated True-Type font program is embedded in the PDF file. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents the content of a page. PDFsharp supports only one content stream per page. If an imported page has an array of content streams, the streams are concatenated to one single stream. Initializes a new instance of the class. Initializes a new instance of the class. Initializes a new instance of the class. The dict. Sets a value indicating whether the content is compressed with the ZIP algorithm. Unfilters the stream. Surround content with q/Q operations if necessary. Predefined keys of this dictionary. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents an array of PDF content streams of a page. Initializes a new instance of the class. The document. Appends a new content stream and returns it. Prepends a new content stream and returns it. Creates a single content stream with the bytes from the array of the content streams. This operation does not modify any of the content streams in this array. Replaces the current content of the page with the specified content sequence. Replaces the current content of the page with the specified bytes. Gets the enumerator. Represents a PDF cross-reference stream. Initializes a new instance of the class. Predefined keys for cross-reference dictionaries. (Required) The type of PDF object that this dictionary describes; must be XRef for a cross-reference stream. (Required) The number one greater than the highest object number used in this section or in any section for which this is an update. It is equivalent to the Size entry in a trailer dictionary. (Optional) An array containing a pair of integers for each subsection in this section. The first integer is the first object number in the subsection; the second integer is the number of entries in the subsection. The array is sorted in ascending order by object number. Subsections cannot overlap; an object number may have at most one entry in a section. Default value: [0 Size]. (Present only if the file has more than one cross-reference stream; not meaningful in hybrid-reference files) The byte offset from the beginning of the file to the beginning of the previous cross-reference stream. This entry has the same function as the Prev entry in the trailer dictionary. (Required) An array of integers representing the size of the fields in a single cross-reference entry. The table describes the types of entries and their fields. For PDF 1.5, W always contains three integers; the value of each integer is the number of bytes (in the decoded stream) of the corresponding field. For example, [1 2 1] means that the fields are one byte, two bytes, and one byte, respectively. A value of zero for an element in the W array indicates that the corresponding field is not present in the stream, and the default value is used, if there is one. If the first element is zero, the type field is not present, and it defaults to type 1. The sum of the items is the total length of each entry; it can be used with the Indexarray to determine the starting position of each subsection. Note: Different cross-reference streams in a PDF file may use different values for W. Entries in a cross-reference stream. TYPE FIELD DESCRIPTION 0 1 The type of this entry, which must be 0. Type 0 entries define the linked list of free objects (corresponding to f entries in a cross-reference table). 2 The object number of the next free object. 3 The generation number to use if this object number is used again. 1 1 The type of this entry, which must be 1. Type 1 entries define objects that are in use but are not compressed (corresponding to n entries in a cross-reference table). 2 The byte offset of the object, starting from the beginning of the file. 3 The generation number of the object. Default value: 0. 2 1 The type of this entry, which must be 2. Type 2 entries define compressed objects. 2 The object number of the object stream in which this object is stored. (The generation number of the object stream is implicitly 0.) 3 The index of this object within the object stream. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents the cross-reference table of a PDF document. It contains all indirect objects of a document. Represents the relation between PdfObjectID and PdfReference for a PdfDocument. Adds a cross reference entry to the table. Used when parsing the trailer. Adds a PdfObject to the table. Gets a cross reference entry from an object identifier. Returns null if no object with the specified ID exists in the object table. Indicates whether the specified object identifier is in the table. Returns the next free object number. Writes the xref section in pdf stream. Gets an array of all object identifiers. For debugging purposes only. Gets an array of all cross references in ascending order by their object identifier. Removes all objects that cannot be reached from the trailer. Returns the number of removed objects. Renumbers the objects starting at 1. Checks the logical consistence for debugging purposes (useful after reconstruction work). Calculates the transitive closure of the specified PdfObject, i.e. all indirect objects recursively reachable from the specified object. Calculates the transitive closure of the specified PdfObject with the specified depth, i.e. all indirect objects recursively reachable from the specified object in up to maximally depth steps. Gets the cross reference to an objects used for undefined indirect references. Represents a base class for dictionaries with a content stream. Implement IContentStream for use with a content writer. Initializes a new instance of the class. Initializes a new instance of the class. The document. Initializes a new instance from an existing dictionary. Used for object type transformation. Gets the resources dictionary of this dictionary. If no such dictionary exists, it is created. Implements the interface because the primary function is internal. Gets the resource name of the specified image within this dictionary. Implements the interface because the primary function is internal. Gets the resource name of the specified form within this dictionary. Implements the interface because the primary function is internal. Predefined keys of this dictionary. (Optional but strongly recommended; PDF 1.2) A dictionary specifying any resources (such as fonts and images) required by the form XObject. Represents an extended graphics state object. Initializes a new instance of the class. The document. Used in Edf.Xps. Used in Edf.Xps. ...for shading patterns Sets the alpha value for stroking operations. Sets the alpha value for nonstroking operations. Sets the overprint value for stroking operations. Sets the overprint value for nonstroking operations. Sets a soft mask object. Common keys for all streams. (Optional) The type of PDF object that this dictionary describes; must be ExtGState for a graphics state parameter dictionary. (Optional; PDF 1.3) The line width (see “Line Width” on page 185). (Optional; PDF 1.3) The line cap style. (Optional; PDF 1.3) The line join style. (Optional; PDF 1.3) The miter limit. (Optional; PDF 1.3) The line dash pattern, expressed as an array of the form [dashArray dashPhase], where dashArray is itself an array and dashPhase is an integer. (Optional; PDF 1.3) The name of the rendering intent. (Optional) A flag specifying whether to apply overprint. In PDF 1.2 and earlier, there is a single overprint parameter that applies to all painting operations. Beginning with PDF 1.3, there are two separate overprint parameters: one for stroking and one for all other painting operations. Specifying an OP entry sets both parameters unless there is also an op entry in the same graphics state parameter dictionary, in which case the OP entry sets only the overprint parameter for stroking. (Optional; PDF 1.3) A flag specifying whether to apply overprint for painting operations other than stroking. If this entry is absent, the OP entry, if any, sets this parameter. (Optional; PDF 1.3) The overprint mode. (Optional; PDF 1.3) An array of the form [font size], where font is an indirect reference to a font dictionary and size is a number expressed in text space units. These two objects correspond to the operands of the Tf operator; however, the first operand is an indirect object reference instead of a resource name. (Optional) The black-generation function, which maps the interval [0.0 1.0] to the interval [0.0 1.0]. (Optional; PDF 1.3) Same as BG except that the value may also be the name Default, denoting the black-generation function that was in effect at the start of the page. If both BG and BG2 are present in the same graphics state parameter dictionary, BG2 takes precedence. (Optional) The undercolor-removal function, which maps the interval [0.0 1.0] to the interval [-1.0 1.0]. (Optional; PDF 1.3) Same as UCR except that the value may also be the name Default, denoting the undercolor-removal function that was in effect at the start of the page. If both UCR and UCR2 are present in the same graphics state parameter dictionary, UCR2 takes precedence. (Optional) A flag specifying whether to apply automatic stroke adjustment. (Optional; PDF 1.4) The current blend mode to be used in the transparent imaging model. (Optional; PDF 1.4) The current soft mask, specifying the mask shape or mask opacity values to be used in the transparent imaging model. (Optional; PDF 1.4) The current stroking alpha constant, specifying the constant shape or constant opacity value to be used for stroking operations in the transparent imaging model. (Optional; PDF 1.4) Same as CA, but for nonstroking operations. (Optional; PDF 1.4) The alpha source flag (“alpha is shape”), specifying whether the current soft mask and alpha constant are to be interpreted as shape values (true) or opacity values (false). (Optional; PDF 1.4) The text knockout flag, which determines the behavior of overlapping glyphs within a text object in the transparent imaging model. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Contains all used ExtGState objects of a document. Initializes a new instance of this class, which is a singleton for each document. Gets a PdfExtGState with the key 'CA' set to the specified alpha value. Gets a PdfExtGState with the key 'ca' set to the specified alpha value. Represents a PDF font. Initializes a new instance of the class. Gets a value indicating whether this instance is symbol font. Gets or sets the CMapInfo. Gets or sets ToUnicodeMap. Adds a tag of exactly six uppercase letters to the font name according to PDF Reference Section 5.5.3 'Font Subsets' Predefined keys common to all font dictionaries. (Required) The type of PDF object that this dictionary describes; must be Font for a font dictionary. (Required) The type of font. (Required) The PostScript name of the font. (Required except for the standard 14 fonts; must be an indirect reference) A font descriptor describing the font’s metrics other than its glyph widths. Note: For the standard 14 fonts, the entries FirstChar, LastChar, Widths, and FontDescriptor must either all be present or all be absent. Ordinarily, they are absent; specifying them enables a standard font to be overridden. The PDF font descriptor flags. All glyphs have the same width (as opposed to proportional or variable-pitch fonts, which have different widths). Glyphs have serifs, which are short strokes drawn at an angle on the top and bottom of glyph stems. (Sans serif fonts do not have serifs.) Font contains glyphs outside the Adobe standard Latin character set. This flag and the Nonsymbolic flag cannot both be set or both be clear. Glyphs resemble cursive handwriting. Font uses the Adobe standard Latin character set or a subset of it. Glyphs have dominant vertical strokes that are slanted. Font contains no lowercase letters; typically used for display purposes, such as for titles or headlines. Font contains both uppercase and lowercase letters. The uppercase letters are similar to those in the regular version of the same typeface family. The glyphs for the lowercase letters have the same shapes as the corresponding uppercase letters, but they are sized and their proportions adjusted so that they have the same size and stroke weight as lowercase glyphs in the same typeface family. Determines whether bold glyphs are painted with extra pixels even at very small text sizes. A PDF font descriptor specifies metrics and other attributes of a simple font, as distinct from the metrics of individual glyphs. Gets or sets the name of the font. Gets a value indicating whether this instance is symbol font. Predefined keys of this dictionary. (Required) The type of PDF object that this dictionary describes; must be FontDescriptor for a font descriptor. (Required) The PostScript name of the font. This name should be the same as the value of BaseFont in the font or CIDFont dictionary that refers to this font descriptor. (Optional; PDF 1.5; strongly recommended for Type 3 fonts in Tagged PDF documents) A string specifying the preferred font family name. For example, for the font Times Bold Italic, the FontFamily is Times. (Optional; PDF 1.5; strongly recommended for Type 3 fonts in Tagged PDF documents) The font stretch value. It must be one of the following names (ordered from narrowest to widest): UltraCondensed, ExtraCondensed, Condensed, SemiCondensed, Normal, SemiExpanded, Expanded, ExtraExpanded or UltraExpanded. Note: The specific interpretation of these values varies from font to font. For example, Condensed in one font may appear most similar to Normal in another. (Optional; PDF 1.5; strongly recommended for Type 3 fonts in Tagged PDF documents) The weight (thickness) component of the fully-qualified font name or font specifier. The possible values are 100, 200, 300, 400, 500, 600, 700, 800, or 900, where each number indicates a weight that is at least as dark as its predecessor. A value of 400 indicates a normal weight; 700 indicates bold. Note: The specific interpretation of these values varies from font to font. For example, 300 in one font may appear most similar to 500 in another. (Required) A collection of flags defining various characteristics of the font. (Required, except for Type 3 fonts) A rectangle (see Section 3.8.4, “Rectangles”), expressed in the glyph coordinate system, specifying the font bounding box. This is the smallest rectangle enclosing the shape that would result if all of the glyphs of the font were placed with their origins coincident and then filled. (Required) The angle, expressed in degrees counterclockwise from the vertical, of the dominant vertical strokes of the font. (For example, the 9-o’clock position is 90 degrees, and the 3-o’clock position is –90 degrees.) The value is negative for fonts that slope to the right, as almost all italic fonts do. (Required, except for Type 3 fonts) The maximum height above the baseline reached by glyphs in this font, excluding the height of glyphs for accented characters. (Required, except for Type 3 fonts) The maximum depth below the baseline reached by glyphs in this font. The value is a negative number. (Optional) The spacing between baselines of consecutive lines of text. Default value: 0. (Required for fonts that have Latin characters, except for Type 3 fonts) The vertical coordinate of the top of flat capital letters, measured from the baseline. (Optional) The font’s x height: the vertical coordinate of the top of flat nonascending lowercase letters (like the letter x), measured from the baseline, in fonts that have Latin characters. Default value: 0. (Required, except for Type 3 fonts) The thickness, measured horizontally, of the dominant vertical stems of glyphs in the font. (Optional) The thickness, measured vertically, of the dominant horizontal stems of glyphs in the font. Default value: 0. (Optional) The average width of glyphs in the font. Default value: 0. (Optional) The maximum width of glyphs in the font. Default value: 0. (Optional) The width to use for character codes whose widths are not specified in a font dictionary’s Widths array. This has a predictable effect only if all such codes map to glyphs whose actual widths are the same as the value of the MissingWidth entry. Default value: 0. (Optional) A stream containing a Type 1 font program. (Optional; PDF 1.1) A stream containing a TrueType font program. (Optional; PDF 1.2) A stream containing a font program whose format is specified by the Subtype entry in the stream dictionary. (Optional; meaningful only in Type 1 fonts; PDF 1.1) A string listing the character names defined in a font subset. The names in this string must be in PDF syntax—that is, each name preceded by a slash (/). The names can appear in any order. The name .notdef should be omitted; it is assumed to exist in the font subset. If this entry is absent, the only indication of a font subset is the subset tag in the FontName entry. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. TrueType with WinAnsi encoding. TrueType with Identity-H or Identity-V encoding (unicode). Contains all used fonts of a document. Initializes a new instance of this class, which is a singleton for each document. Gets a PdfFont from an XFont. If no PdfFont already exists, a new one is created. Gets a PdfFont from a font program. If no PdfFont already exists, a new one is created. Tries to gets a PdfFont from the font dictionary. Returns null if no such PdfFont exists. Map from PdfFontSelector to PdfFont. Represents an external form object (e.g. an imported page). Gets the PdfResources object of this form. Gets the resource name of the specified font data within this form XObject. Predefined keys of this dictionary. (Optional) The type of PDF object that this dictionary describes; if present, must be XObject for a form XObject. (Required) The type of XObject that this dictionary describes; must be Form for a form XObject. (Optional) A code identifying the type of form XObject that this dictionary describes. The only valid value defined at the time of publication is 1. Default value: 1. (Required) An array of four numbers in the form coordinate system, giving the coordinates of the left, bottom, right, and top edges, respectively, of the form XObject’s bounding box. These boundaries are used to clip the form XObject and to determine its size for caching. (Optional) An array of six numbers specifying the form matrix, which maps form space into user space. Default value: the identity matrix [1 0 0 1 0 0]. (Optional but strongly recommended; PDF 1.2) A dictionary specifying any resources (such as fonts and images) required by the form XObject. (Optional; PDF 1.4) A group attributes dictionary indicating that the contents of the form XObject are to be treated as a group and specifying the attributes of that group (see Section 4.9.2, “Group XObjects”). Note: If a Ref entry (see below) is present, the group attributes also apply to the external page imported by that entry, which allows such an imported page to be treated as a group without further modification. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Contains all external PDF files from which PdfFormXObjects are imported into the current document. Initializes a new instance of this class, which is a singleton for each document. Gets a PdfFormXObject from an XPdfForm. Because the returned objects must be unique, always a new instance of PdfFormXObject is created if none exists for the specified form. Gets the imported object table. Gets the imported object table. Map from Selector to PdfImportedObjectTable. A collection of information that uniquely identifies a particular ImportedObjectTable. Initializes a new instance of FormSelector from an XPdfForm. Initializes a new instance of FormSelector from a PdfPage. Represents a PDF group XObject. Predefined keys of this dictionary. (Optional) The type of PDF object that this dictionary describes; if present, must be Group for a group attributes dictionary. (Required) The group subtype, which identifies the type of group whose attributes this dictionary describes and determines the format and meaning of the dictionary’s remaining entries. The only group subtype defined in PDF 1.4 is Transparency. Other group subtypes may be added in the future. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents an image. Initializes a new instance of PdfImage from an XImage. Gets the underlying XImage object. Returns 'Image'. Creates the keys for a JPEG image. Creates the keys for a FLATE image. Reads images that are returned from GDI+ without color palette. 4 (32bpp RGB), 3 (24bpp RGB, 32bpp ARGB) 8 true (ARGB), false (RGB) Common keys for all streams. (Optional) The type of PDF object that this dictionary describes; if present, must be XObject for an image XObject. (Required) The type of XObject that this dictionary describes; must be Image for an image XObject. (Required) The width of the image, in samples. (Required) The height of the image, in samples. (Required for images, except those that use the JPXDecode filter; not allowed for image masks) The color space in which image samples are specified; it can be any type of color space except Pattern. If the image uses the JPXDecode filter, this entry is optional: • If ColorSpace is present, any color space specifications in the JPEG2000 data are ignored. • If ColorSpace is absent, the color space specifications in the JPEG2000 data are used. The Decode array is also ignored unless ImageMask is true. (Required except for image masks and images that use the JPXDecode filter) The number of bits used to represent each color component. Only a single value may be specified; the number of bits is the same for all color components. Valid values are 1, 2, 4, 8, and (in PDF 1.5) 16. If ImageMask is true, this entry is optional, and if specified, its value must be 1. If the image stream uses a filter, the value of BitsPerComponent must be consistent with the size of the data samples that the filter delivers. In particular, a CCITTFaxDecode or JBIG2Decode filter always delivers 1-bit samples, a RunLengthDecode or DCTDecode filter delivers 8-bit samples, and an LZWDecode or FlateDecode filter delivers samples of a specified size if a predictor function is used. If the image stream uses the JPXDecode filter, this entry is optional and ignored if present. The bit depth is determined in the process of decoding the JPEG2000 image. (Optional; PDF 1.1) The name of a color rendering intent to be used in rendering the image. Default value: the current rendering intent in the graphics state. (Optional) A flag indicating whether the image is to be treated as an image mask. If this flag is true, the value of BitsPerComponent must be 1 and Mask and ColorSpace should not be specified; unmasked areas are painted using the current nonstroking color. Default value: false. (Optional except for image masks; not allowed for image masks; PDF 1.3) An image XObject defining an image mask to be applied to this image, or an array specifying a range of colors to be applied to it as a color key mask. If ImageMask is true, this entry must not be present. (Optional) An array of numbers describing how to map image samples into the range of values appropriate for the image’s color space. If ImageMask is true, the array must be either [0 1] or [1 0]; otherwise, its length must be twice the number of color components required by ColorSpace. If the image uses the JPXDecode filter and ImageMask is false, Decode is ignored. Default value: see “Decode Arrays”. (Optional) A flag indicating whether image interpolation is to be performed. Default value: false. (Optional; PDF 1.3) An array of alternate image dictionaries for this image. The order of elements within the array has no significance. This entry may not be present in an image XObject that is itself an alternate image. (Optional; PDF 1.4) A subsidiary image XObject defining a soft-mask image to be used as a source of mask shape or mask opacity values in the transparent imaging model. The alpha source parameter in the graphics state determines whether the mask values are interpreted as shape or opacity. If present, this entry overrides the current soft mask in the graphics state, as well as the image’s Mask entry, if any. (However, the other transparency related graphics state parameters — blend mode and alpha constant — remain in effect.) If SMask is absent, the image has no associated soft mask (although the current soft mask in the graphics state may still apply). (Optional for images that use the JPXDecode filter, meaningless otherwise; PDF 1.5) A code specifying how soft-mask information encoded with image samples should be used: 0 If present, encoded soft-mask image information should be ignored. 1 The image’s data stream includes encoded soft-mask values. An application can create a soft-mask image from the information to be used as a source of mask shape or mask opacity in the transparency imaging model. 2 The image’s data stream includes color channels that have been preblended with a background; the image data also includes an opacity channel. An application can create a soft-mask image with a Matte entry from the opacity channel information to be used as a source of mask shape or mask opacity in the transparency model. If this entry has a nonzero value, SMask should not be specified. Default value: 0. (Required in PDF 1.0; optional otherwise) The name by which this image XObject is referenced in the XObject subdictionary of the current resource dictionary. (Required if the image is a structural content item; PDF 1.3) The integer key of the image’s entry in the structural parent tree. (Optional; PDF 1.3; indirect reference preferred) The digital identifier of the image’s parent Web Capture content set. (Optional; PDF 1.2) An OPI version dictionary for the image. If ImageMask is true, this entry is ignored. (Optional; PDF 1.4) A metadata stream containing metadata for the image. (Optional; PDF 1.5) An optional content group or optional content membership dictionary, specifying the optional content properties for this image XObject. Before the image is processed, its visibility is determined based on this entry. If it is determined to be invisible, the entire image is skipped, as if there were no Do operator to invoke it. Counts the consecutive one bits in an image line. The reader. The bits left. Counts the consecutive zero bits in an image line. The reader. The bits left. Returns the offset of the next bit in the range [bitStart..bitEnd] that is different from the specified color. The end, bitEnd, is returned if no such bit exists. The reader. The offset of the start bit. The offset of the end bit. If set to true searches "one" (i. e. white), otherwise searches black. The offset of the first non-matching bit. Returns the offset of the next bit in the range [bitStart..bitEnd] that is different from the specified color. The end, bitEnd, is returned if no such bit exists. Like FindDifference, but also check the starting bit against the end in case start > end. The reader. The offset of the start bit. The offset of the end bit. If set to true searches "one" (i. e. white), otherwise searches black. The offset of the first non-matching bit. 2d-encode a row of pixels. Consult the CCITT documentation for the algorithm. The writer. Offset of image data in bitmap file. The bitmap file. Index of the current row. Index of the reference row (0xffffffff if there is none). The width of the image. The height of the image. The bytes per line in the bitmap file. Encodes a bitonal bitmap using 1D CCITT fax encoding. Space reserved for the fax encoded bitmap. An exception will be thrown if this buffer is too small. The bitmap to be encoded. Offset of image data in bitmap file. The width of the image. The height of the image. The size of the fax encoded image (0 on failure). Encodes a bitonal bitmap using 2D group 4 CCITT fax encoding. Space reserved for the fax encoded bitmap. An exception will be thrown if this buffer is too small. The bitmap to be encoded. Offset of image data in bitmap file. The width of the image. The height of the image. The size of the fax encoded image (0 on failure). Writes the image data. The writer. The count of bits (pels) to encode. The color of the pels. Helper class for creating bitmap masks (8 pels per byte). Returns the bitmap mask that will be written to PDF. Creates a bitmap mask. Starts a new line. Adds a pel to the current line. Adds a pel from an alpha mask value. The BitReader class is a helper to read bits from an in-memory bitmap file. Initializes a new instance of the class. The in-memory bitmap file. The offset of the line to read. The count of bits that may be read (i. e. the width of the image for normal usage). Sets the position within the line (needed for 2D encoding). The new position. Gets a single bit at the specified position. The position. True if bit is set. Returns the bits that are in the buffer (without changing the position). Data is MSB aligned. The count of bits that were returned (1 through 8). The MSB aligned bits from the buffer. Moves the buffer to the next byte. "Removes" (eats) bits from the buffer. The count of bits that were processed. A helper class for writing groups of bits into an array of bytes. Initializes a new instance of the class. The byte array to be written to. Writes the buffered bits into the byte array. Masks for n bits in a byte (with n = 0 through 8). Writes bits to the byte array. The bits to be written (LSB aligned). The count of bits. Writes a line from a look-up table. A "line" in the table are two integers, one containing the values, one containing the bit count. Flushes the buffer and returns the count of bytes written to the array. Contains all used images of a document. Initializes a new instance of this class, which is a singleton for each document. Gets a PdfImage from an XImage. If no PdfImage already exists, a new one is created. Map from ImageSelector to PdfImage. A collection of information that uniquely identifies a particular PdfImage. Initializes a new instance of ImageSelector from an XImage. Represents the imported objects of an external document. Used to cache objects that are already imported when a PdfFormXObject is added to a page. Initializes a new instance of this class with the document the objects are imported from. Gets the document this table belongs to. Gets the external document, or null, if the external document is garbage collected. Indicates whether the specified object is already imported. Adds a cloned object to this table. The object identifier in the foreign object. The cross reference to the clone of the foreign object, which belongs to this document. In general the clone has a different object identifier. Gets the cloned object that corresponds to the specified external identifier. Maps external object identifiers to cross reference entries of the importing document {PdfObjectID -> PdfReference}. Provides access to the internal document data structures. This class prevents the public interfaces from pollution with to much internal functions. Gets or sets the first document identifier. Gets the first document identifier as GUID. Gets or sets the second document identifier. Gets the first document identifier as GUID. Gets the catalog dictionary. Gets the ExtGStateTable object. Returns the object with the specified Identifier, or null, if no such object exists. Maps the specified external object to the substitute object in this document. Returns null if no such object exists. Returns the PdfReference of the specified object, or null, if the object is not in the document's object table. Gets the object identifier of the specified object. Gets the object number of the specified object. Gets the generation number of the specified object. Gets all indirect objects ordered by their object identifier. Gets all indirect objects ordered by their object identifier. Creates the indirect object of the specified type, adds it to the document, and returns the object. Adds an object to the PDF document. This operation and only this operation makes the object an indirect object owned by this document. Removes an object from the PDF document. Returns an array containing the specified object as first element follows by its transitive closure. The closure of an object are all objects that can be reached by indirect references. The transitive closure is the result of applying the calculation of the closure to a closure as long as no new objects came along. This is e.g. useful for getting all objects belonging to the resources of a page. Returns an array containing the specified object as first element follows by its transitive closure limited by the specified number of iterations. Writes a PdfItem into the specified stream. The name of the custom value key. Provides access to the internal PDF object data structures. This class prevents the public interfaces from pollution with to much internal functions. Gets the object identifier. Returns PdfObjectID.Empty for direct objects. Gets the object number. Gets the generation number. Gets the name of the current type. Not a very useful property, but can be used for data binding. Represents an object stream that contains compressed objects. PDF 1.5. Initializes a new instance of the class. Initializes a new instance from an existing dictionary. Used for object type transformation. Reads the compressed object with the specified index. Reads the compressed object with the specified index. N pairs of integers. The first integer represents the object number of the compressed object. The second integer represents the absolute offset of that object in the decoded stream, i.e. the byte offset plus First entry. Predefined keys common to all font dictionaries. (Required) The type of PDF object that this dictionary describes; must be ObjStmfor an object stream. (Required) The number of compressed objects in the stream. (Required) The byte offset (in the decoded stream) of the first compressed object. (Optional) A reference to an object stream, of which the current object stream is considered an extension. Both streams are considered part of a collection of object streams (see below). A given collection consists of a set of streams whose Extendslinks form a directed acyclic graph. Represents a PDF page object. Represents an indirect reference to a PdfObject. Initializes a new PdfReference instance for the specified indirect object. Initializes a new PdfReference instance from the specified object identifier and file position. Writes the object in PDF iref table format. Writes an indirect reference. Gets or sets the object identifier. Gets the object number of the object identifier. Gets the generation number of the object identifier. Gets or sets the file position of the related PdfObject. Gets or sets the referenced PdfObject. Hack for dead objects. Gets or sets the document this object belongs to. Gets a string representing the object identifier. Implements a comparer that compares PdfReference objects by their PdfObjectID. Base class for all dictionaries that map resource names to objects. Adds all imported resource names to the specified hashtable. Represents a PDF resource object. Initializes a new instance of the class. The document. Adds the specified font to this resource dictionary and returns its local resource name. Adds the specified image to this resource dictionary and returns its local resource name. Adds the specified form object to this resource dictionary and returns its local resource name. Adds the specified graphics state to this resource dictionary and returns its local resource name. Adds the specified pattern to this resource dictionary and returns its local resource name. Adds the specified pattern to this resource dictionary and returns its local resource name. Adds the specified shading to this resource dictionary and returns its local resource name. Gets the fonts map. Gets the external objects map. Gets a new local name for this resource. Gets a new local name for this resource. Gets a new local name for this resource. Gets a new local name for this resource. Gets a new local name for this resource. Gets a new local name for this resource. Check whether a resource name is already used in the context of this resource dictionary. PDF4NET uses GUIDs as resource names, but I think this weapon is to heavy. All the names of imported resources. Maps all PDFsharp resources to their local resource names. Predefined keys of this dictionary. (Optional) A dictionary that maps resource names to graphics state parameter dictionaries. (Optional) A dictionary that maps each resource name to either the name of a device-dependent color space or an array describing a color space. (Optional) A dictionary that maps each resource name to either the name of a device-dependent color space or an array describing a color space. (Optional; PDF 1.3) A dictionary that maps resource names to shading dictionaries. (Optional) A dictionary that maps resource names to external objects. (Optional) A dictionary that maps resource names to font dictionaries. (Optional) An array of predefined procedure set names. (Optional; PDF 1.2) A dictionary that maps resource names to property list dictionaries for marked content. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Base class for FontTable, ImageTable, FormXObjectTable etc. Base class for document wide resource tables. Gets the owning document of this resource table. Represents a shading dictionary. Initializes a new instance of the class. Setups the shading from the specified brush. Common keys for all streams. (Required) The shading type: 1 Function-based shading 2 Axial shading 3 Radial shading 4 Free-form Gouraud-shaded triangle mesh 5 Lattice-form Gouraud-shaded triangle mesh 6 Coons patch mesh 7 Tensor-product patch mesh (Required) The color space in which color values are expressed. This may be any device, CIE-based, or special color space except a Pattern space. (Optional) An array of color components appropriate to the color space, specifying a single background color value. If present, this color is used, before any painting operation involving the shading, to fill those portions of the area to be painted that lie outside the bounds of the shading object. In the opaque imaging model, the effect is as if the painting operation were performed twice: first with the background color and then with the shading. (Optional) An array of four numbers giving the left, bottom, right, and top coordinates, respectively, of the shading’s bounding box. The coordinates are interpreted in the shading’s target coordinate space. If present, this bounding box is applied as a temporary clipping boundary when the shading is painted, in addition to the current clipping path and any other clipping boundaries in effect at that time. (Optional) A flag indicating whether to filter the shading function to prevent aliasing artifacts. The shading operators sample shading functions at a rate determined by the resolution of the output device. Aliasing can occur if the function is not smooth—that is, if it has a high spatial frequency relative to the sampling rate. Anti-aliasing can be computationally expensive and is usually unnecessary, since most shading functions are smooth enough or are sampled at a high enough frequency to avoid aliasing effects. Anti-aliasing may not be implemented on some output devices, in which case this flag is ignored. Default value: false. (Required) An array of four numbers [x0 y0 x1 y1] specifying the starting and ending coordinates of the axis, expressed in the shading’s target coordinate space. (Optional) An array of two numbers [t0 t1] specifying the limiting values of a parametric variable t. The variable is considered to vary linearly between these two values as the color gradient varies between the starting and ending points of the axis. The variable t becomes the input argument to the color function(s). Default value: [0.0 1.0]. (Required) A 1-in, n-out function or an array of n 1-in, 1-out functions (where n is the number of color components in the shading dictionary’s color space). The function(s) are called with values of the parametric variable t in the domain defined by the Domain entry. Each function’s domain must be a superset of that of the shading dictionary. If the value returned by the function for a given color component is out of range, it is adjusted to the nearest valid value. (Optional) An array of two boolean values specifying whether to extend the shading beyond the starting and ending points of the axis, respectively. Default value: [false false]. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents a shading pattern dictionary. Initializes a new instance of the class. Setups the shading pattern from the specified brush. Common keys for all streams. (Optional) The type of PDF object that this dictionary describes; if present, must be Pattern for a pattern dictionary. (Required) A code identifying the type of pattern that this dictionary describes; must be 2 for a shading pattern. (Required) A shading object (see below) defining the shading pattern’s gradient fill. (Optional) An array of six numbers specifying the pattern matrix. Default value: the identity matrix [1 0 0 1 0 0]. (Optional) A graphics state parameter dictionary containing graphics state parameters to be put into effect temporarily while the shading pattern is painted. Any parameters that are not so specified are inherited from the graphics state that was in effect at the beginning of the content stream in which the pattern is defined as a resource. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents a PDF soft mask. Initializes a new instance of the class. The document that owns the object. Predefined keys of this dictionary. (Optional) The type of PDF object that this dictionary describes; if present, must be Mask for a soft-mask dictionary. (Required) A subtype specifying the method to be used in deriving the mask values from the transparency group specified by the G entry: Alpha: Use the group’s computed alpha, disregarding its color. Luminosity: Convert the group’s computed color to a single-component luminosity value. (Required) A transparency group XObject to be used as the source of alpha or color values for deriving the mask. If the subtype S is Luminosity, the group attributes dictionary must contain a CS entry defining the color space in which the compositing computation is to be performed. (Optional) An array of component values specifying the color to be used as the backdrop against which to composite the transparency group XObject G. This entry is consulted only if the subtype S is Luminosity. The array consists of n numbers, where n is the number of components in the color space specified by the CS entry in the group attributes dictionary. Default value: the color space’s initial value, representing black. (Optional) A function object specifying the transfer function to be used in deriving the mask values. The function accepts one input, the computed group alpha or luminosity (depending on the value of the subtype S), and returns one output, the resulting mask value. Both the input and output must be in the range 0.0 to 1.0; if the computed output falls outside this range, it is forced to the nearest valid value. The name Identity may be specified in place of a function object to designate the identity function. Default value: Identity. Represents a tiling pattern dictionary. Initializes a new instance of the class. Common keys for all streams. (Optional) The type of PDF object that this dictionary describes; if present, must be Pattern for a pattern dictionary. (Required) A code identifying the type of pattern that this dictionary describes; must be 1 for a tiling pattern. (Required) A code that determines how the color of the pattern cell is to be specified: 1: Colored tiling pattern. The pattern’s content stream specifies the colors used to paint the pattern cell. When the content stream begins execution, the current color is the one that was initially in effect in the pattern’s parent content stream. 2: Uncolored tiling pattern. The pattern’s content stream does not specify any color information. Instead, the entire pattern cell is painted with a separately specified color each time the pattern is used. Essentially, the content stream describes a stencil through which the current color is to be poured. The content stream must not invoke operators that specify colors or other color-related parameters in the graphics state; otherwise, an error occurs. The content stream may paint an image mask, however, since it does not specify any color information. (Required) A code that controls adjustments to the spacing of tiles relative to the device pixel grid: 1: Constant spacing. Pattern cells are spaced consistently—that is, by a multiple of a device pixel. To achieve this, the application may need to distort the pattern cell slightly by making small adjustments to XStep, YStep, and the transformation matrix. The amount of distortion does not exceed 1 device pixel. 2: No distortion. The pattern cell is not distorted, but the spacing between pattern cells may vary by as much as 1 device pixel, both horizontally and vertically, when the pattern is painted. This achieves the spacing requested by XStep and YStep on average but not necessarily for each individual pattern cell. 3: Constant spacing and faster tiling. Pattern cells are spaced consistently as in tiling type 1 but with additional distortion permitted to enable a more efficient implementation. (Required) An array of four numbers in the pattern coordinate system giving the coordinates of the left, bottom, right, and top edges, respectively, of the pattern cell’s bounding box. These boundaries are used to clip the pattern cell. (Required) The desired horizontal spacing between pattern cells, measured in the pattern coordinate system. (Required) The desired vertical spacing between pattern cells, measured in the pattern coordinate system. Note that XStep and YStep may differ from the dimensions of the pattern cell implied by the BBox entry. This allows tiling with irregularly shaped figures. XStep and YStep may be either positive or negative but not zero. (Required) A resource dictionary containing all of the named resources required by the pattern’s content stream (see Section 3.7.2, “Resource Dictionaries”). (Optional) An array of six numbers specifying the pattern matrix. Default value: the identity matrix [1 0 0 1 0 0]. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents a ToUnicode map for composite font. Gets or sets the CMap info. Creates the ToUnicode map from the CMapInfo. Represents a PDF trailer dictionary. Even though trailers are dictionaries they never have a cross reference entry in PdfReferenceTable. Initializes a new instance of PdfTrailer. Initializes a new instance of the class from a . (Required; must be an indirect reference) The catalog dictionary for the PDF document contained in the file. Gets the first or second document identifier. Sets the first or second document identifier. Creates and sets two identical new document IDs. Gets the standard security handler. Replace temporary irefs by their correct counterparts from the iref table. Predefined keys of this dictionary. (Required; must not be an indirect reference) The total number of entries in the file’s cross-reference table, as defined by the combination of the original section and all update sections. Equivalently, this value is 1 greater than the highest object number used in the file. Note: Any object in a cross-reference section whose number is greater than this value is ignored and considered missing. (Present only if the file has more than one cross-reference section; must not be an indirect reference) The byte offset from the beginning of the file to the beginning of the previous cross-reference section. (Required; must be an indirect reference) The catalog dictionary for the PDF document contained in the file. (Required if document is encrypted; PDF 1.1) The document’s encryption dictionary. (Optional; must be an indirect reference) The document’s information dictionary. (Optional, but strongly recommended; PDF 1.1) An array of two strings constituting a file identifier for the file. Although this entry is optional, its absence might prevent the file from functioning in some workflows that depend on files being uniquely identified. (Optional) The byte offset from the beginning of the file of a cross-reference stream. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents a PDF transparency group XObject. Predefined keys of this dictionary. (Sometimes required, as discussed below) The group color space, which is used for the following purposes: • As the color space into which colors are converted when painted into the group • As the blending color space in which objects are composited within the group • As the color space of the group as a whole when it in turn is painted as an object onto its backdrop The group color space may be any device or CIE-based color space that treats its components as independent additive or subtractive values in the range 0.0 to 1.0, subject to the restrictions described in Section 7.2.3, “Blending Color Space.” These restrictions exclude Lab and lightness-chromaticity ICCBased color spaces, as well as the special color spaces Pattern, Indexed, Separation, and DeviceN. Device color spaces are subject to remapping according to the DefaultGray, DefaultRGB, and DefaultCMYK entries in the ColorSpace subdictionary of the current resource dictionary. Ordinarily, the CS entry is allowed only for isolated transparency groups (those for which I, below, is true), and even then it is optional. However, this entry is required in the group attributes dictionary for any transparency group XObject that has no parent group or page from which to inherit — in particular, one that is the value of the G entry in a soft-mask dictionary of subtype Luminosity. In addition, it is always permissible to specify CS in the group attributes dictionary associated with a page object, even if I is false or absent. In the normal case in which the page is imposed directly on the output medium, the page group is effectively isolated regardless of the I value, and the specified CS value is therefore honored. But if the page is in turn used as an element of some other page and if the group is non-isolated, CS is ignored and the color space is inherited from the actual backdrop with which the page is composited. Default value: the color space of the parent group or page into which this transparency group is painted. (The parent’s color space in turn can be either explicitly specified or inherited.) (Optional) A flag specifying whether the transparency group is isolated. If this flag is true, objects within the group are composited against a fully transparent initial backdrop; if false, they are composited against the group’s backdrop. Default value: false. In the group attributes dictionary for a page, the interpretation of this entry is slightly altered. In the normal case in which the page is imposed directly on the output medium, the page group is effectively isolated and the specified I value is ignored. But if the page is in turn used as an element of some other page, it is treated as if it were a transparency group XObject; the I value is interpreted in the normal way to determine whether the page group is isolated. (Optional) A flag specifying whether the transparency group is a knockout group. If this flag is false, later objects within the group are composited with earlier ones with which they overlap; if true, they are composited with the group’s initial backdrop and overwrite (“knock out”) any earlier overlapping objects. Default value: false. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents a TrueType font. Initializes a new instance of PdfTrueTypeFont from an XFont. Prepares the object to get saved. Predefined keys of this dictionary. (Required) The type of PDF object that this dictionary describes; must be Font for a font dictionary. (Required) The type of font; must be TrueType for a TrueType font. (Required in PDF 1.0; optional otherwise) The name by which this font is referenced in the Font subdictionary of the current resource dictionary. (Required) The PostScript name of the font. For Type 1 fonts, this is usually the value of the FontName entry in the font program; for more information. The Post-Script name of the font can be used to find the font’s definition in the consumer application or its environment. It is also the name that is used when printing to a PostScript output device. (Required except for the standard 14 fonts) The first character code defined in the font’s Widths array. (Required except for the standard 14 fonts) The last character code defined in the font’s Widths array. (Required except for the standard 14 fonts; indirect reference preferred) An array of (LastChar - FirstChar + 1) widths, each element being the glyph width for the character code that equals FirstChar plus the array index. For character codes outside the range FirstChar to LastChar, the value of MissingWidth from the FontDescriptor entry for this font is used. The glyph widths are measured in units in which 1000 units corresponds to 1 unit in text space. These widths must be consistent with the actual widths given in the font program. (Required except for the standard 14 fonts; must be an indirect reference) A font descriptor describing the font’s metrics other than its glyph widths. Note: For the standard 14 fonts, the entries FirstChar, LastChar, Widths, and FontDescriptor must either all be present or all be absent. Ordinarily, they are absent; specifying them enables a standard font to be overridden. (Optional) A specification of the font’s character encoding if different from its built-in encoding. The value of Encoding is either the name of a predefined encoding (MacRomanEncoding, MacExpertEncoding, or WinAnsiEncoding, as described in Appendix D) or an encoding dictionary that specifies differences from the font’s built-in encoding or from a specified predefined encoding. (Optional; PDF 1.2) A stream containing a CMap file that maps character codes to Unicode values. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents a composite font. Used for Unicode encoding. Predefined keys of this dictionary. (Required) The type of PDF object that this dictionary describes; must be Font for a font dictionary. (Required) The type of font; must be Type0 for a Type 0 font. (Required) The PostScript name of the font. In principle, this is an arbitrary name, since there is no font program associated directly with a Type 0 font dictionary. The conventions described here ensure maximum compatibility with existing Acrobat products. If the descendant is a Type 0 CIDFont, this name should be the concatenation of the CIDFont’s BaseFont name, a hyphen, and the CMap name given in the Encoding entry (or the CMapName entry in the CMap). If the descendant is a Type 2 CIDFont, this name should be the same as the CIDFont’s BaseFont name. (Required) The name of a predefined CMap, or a stream containing a CMap that maps character codes to font numbers and CIDs. If the descendant is a Type 2 CIDFont whose associated TrueType font program is not embedded in the PDF file, the Encoding entry must be a predefined CMap name. (Required) A one-element array specifying the CIDFont dictionary that is the descendant of this Type 0 font. ((Optional) A stream containing a CMap file that maps character codes to Unicode values. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Base class for all PDF external objects. Initializes a new instance of the class. The document that owns the object. Predefined keys of this dictionary. Specifies the annotation flags. If set, do not display the annotation if it does not belong to one of the standard annotation types and no annotation handler is available. If clear, display such an unknown annotation using an appearance stream specified by its appearancedictionary, if any. (PDF 1.2) If set, do not display or print the annotation or allow it to interact with the user, regardless of its annotation type or whether an annotation handler is available. In cases where screen space is limited, the ability to hide and show annotations selectively can be used in combination with appearance streams to display auxiliary pop-up information similar in function to online help systems. (PDF 1.2) If set, print the annotation when the page is printed. If clear, never print the annotation, regardless of whether it is displayed on the screen. This can be useful, for example, for annotations representing interactive pushbuttons, which would serve no meaningful purpose on the printed page. (PDF 1.3) If set, do not scale the annotation’s appearance to match the magnification of the page. The location of the annotation on the page (defined by the upper-left corner of its annotation rectangle) remains fixed, regardless of the page magnification. See below for further discussion. (PDF 1.3) If set, do not rotate the annotation’s appearance to match the rotation of the page. The upper-left corner of the annotation rectangle remains in a fixed location on the page, regardless of the page rotation. See below for further discussion. (PDF 1.3) If set, do not display the annotation on the screen or allow it to interact with the user. The annotation may be printed (depending on the setting of the Print flag) but should be considered hidden for purposes of on-screen display and user interaction. (PDF 1.3) If set, do not allow the annotation to interact with the user. The annotation may be displayed or printed (depending on the settings of the NoView and Print flags) but should not respond to mouse clicks or change its appearance in response to mouse motions. Note: This flag is ignored for widget annotations; its function is subsumed by the ReadOnly flag of the associated form field. (PDF 1.4) If set, do not allow the annotation to be deleted or its properties (including position and size) to be modified by the user. However, this flag does not restrict changes to the annotation’s contents, such as the value of a form field. (PDF 1.5) If set, invert the interpretation of the NoView flag for certain events. A typical use is to have an annotation that appears only when a mouse cursor is held over it. Specifies the predefined icon names of rubber stamp annotations. A pre-defined rubber stamp annotation icon. A pre-defined rubber stamp annotation icon. A pre-defined rubber stamp annotation icon. A pre-defined rubber stamp annotation icon. A pre-defined rubber stamp annotation icon. A pre-defined rubber stamp annotation icon. A pre-defined rubber stamp annotation icon. A pre-defined rubber stamp annotation icon. A pre-defined rubber stamp annotation icon. A pre-defined rubber stamp annotation icon. A pre-defined rubber stamp annotation icon. A pre-defined rubber stamp annotation icon. A pre-defined rubber stamp annotation icon. A pre-defined rubber stamp annotation icon. A pre-defined rubber stamp annotation icon. Specifies the pre-defined icon names of text annotations. A pre-defined annotation icon. A pre-defined annotation icon. A pre-defined annotation icon. A pre-defined annotation icon. A pre-defined annotation icon. A pre-defined annotation icon. A pre-defined annotation icon. A pre-defined annotation icon. Represents the base class of all annotations. Initializes a new instance of the class. Initializes a new instance of the class. Initializes a new instance of the class. Removes an annotation from the document Gets or sets the annotation flags of this instance. Gets or sets the PdfAnnotations object that this annotation belongs to. Gets or sets the annotation rectangle, defining the location of the annotation on the page in default user space units. Gets or sets the text label to be displayed in the title bar of the annotation’s pop-up window when open and active. By convention, this entry identifies the user who added the annotation. Gets or sets text representing a short description of the subject being addressed by the annotation. Gets or sets the text to be displayed for the annotation or, if this type of annotation does not display text, an alternate description of the annotation’s contents in human-readable form. Gets or sets the color representing the components of the annotation. If the color has an alpha value other than 1, it is ignored. Use property Opacity to get or set the opacity of an annotation. Gets or sets the constant opacity value to be used in painting the annotation. This value applies to all visible elements of the annotation in its closed state (including its background and border) but not to the popup window that appears when the annotation is opened. Predefined keys of this dictionary. (Optional) The type of PDF object that this dictionary describes; if present, must be Annot for an annotation dictionary. (Required) The type of annotation that this dictionary describes. (Required) The annotation rectangle, defining the location of the annotation on the page in default user space units. (Optional) Text to be displayed for the annotation or, if this type of annotation does not display text, an alternate description of the annotation’s contents in human-readable form. In either case, this text is useful when extracting the document’s contents in support of accessibility to users with disabilities or for other purposes. (Optional; PDF 1.4) The annotation name, a text string uniquely identifying it among all the annotations on its page. (Optional; PDF 1.1) The date and time when the annotation was most recently modified. The preferred format is a date string, but viewer applications should be prepared to accept and display a string in any format. (Optional; PDF 1.1) A set of flags specifying various characteristics of the annotation. Default value: 0. (Optional; PDF 1.2) A border style dictionary specifying the characteristics of the annotation’s border. (Optional; PDF 1.2) An appearance dictionary specifying how the annotation is presented visually on the page. Individual annotation handlers may ignore this entry and provide their own appearances. (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation’s appearance state, which selects the applicable appearance stream from an appearance subdictionary. (Optional) An array specifying the characteristics of the annotation’s border. The border is specified as a rounded rectangle. In PDF 1.0, the array consists of three numbers defining the horizontal corner radius, vertical corner radius, and border width, all in default user space units. If the corner radii are 0, the border has square (not rounded) corners; if the border width is 0, no border is drawn. In PDF 1.1, the array may have a fourth element, an optional dash array defining a pattern of dashes and gaps to be used in drawing the border. The dash array is specified in the same format as in the line dash pattern parameter of the graphics state. For example, a Border value of [0 0 1 [3 2]] specifies a border 1 unit wide, with square corners, drawn with 3-unit dashes alternating with 2-unit gaps. Note that no dash phase is specified; the phase is assumed to be 0. Note: In PDF 1.2 or later, this entry may be ignored in favor of the BS entry. (Optional; PDF 1.1) An array of three numbers in the range 0.0 to 1.0, representing the components of a color in the DeviceRGB color space. This color is used for the following purposes: • The background of the annotation’s icon when closed • The title bar of the annotation’s pop-up window • The border of a link annotation (Required if the annotation is a structural content item; PDF 1.3) The integer key of the annotation’s entry in the structural parent tree. (Optional; PDF 1.1) An action to be performed when the annotation is activated. Note: This entry is not permitted in link annotations if a Dest entry is present. Also note that the A entry in movie annotations has a different meaning. (Optional; PDF 1.1) The text label to be displayed in the title bar of the annotation’s pop-up window when open and active. By convention, this entry identifies the user who added the annotation. (Optional; PDF 1.3) An indirect reference to a pop-up annotation for entering or editing the text associated with this annotation. (Optional; PDF 1.4) The constant opacity value to be used in painting the annotation. This value applies to all visible elements of the annotation in its closed state (including its background and border) but not to the popup window that appears when the annotation is opened. The specified value is not used if the annotation has an appearance stream; in that case, the appearance stream must specify any transparency. (However, if the viewer regenerates the annotation’s appearance stream, it may incorporate the CA value into the stream’s content.) The implicit blend mode is Normal. Default value: 1.0. (Optional; PDF 1.5) Text representing a short description of the subject being addressed by the annotation. Represents the annotations array of a page. Adds the specified annotation. The annotation. Removes an annotation from the document. Removes all the annotations from the current page. Gets the number of annotations in this collection. Gets the at the specified index. Gets the page the annotations belongs to. Fixes the /P element in imported annotation. Returns an enumerator that iterates through a collection. Represents a generic annotation. Used for annotation dictionaries unknown to PDFsharp. Predefined keys of this dictionary. Gets the KeysMeta of this dictionary type. Represents a link annotation. Initializes a new instance of the class. Initializes a new instance of the class. Creates a link within the current document. The link area in default page coordinates. The one-based destination page number. Creates a link to the web. Creates a link to a file. Predefined keys of this dictionary. (Optional; not permitted if an A entry is present) A destination to be displayed when the annotation is activated. (Optional; PDF 1.2) The annotation’s highlighting mode, the visual effect to be used when the mouse button is pressed or held down inside its active area: N (None) No highlighting. I (Invert) Invert the contents of the annotation rectangle. O (Outline) Invert the annotation’s border. P (Push) Display the annotation as if it were being pushed below the surface of the page. Default value: I. Note: In PDF 1.1, highlighting is always done by inverting colors inside the annotation rectangle. (Optional; PDF 1.3) A URI action formerly associated with this annotation. When Web Capture changes and annotation from a URI to a go-to action, it uses this entry to save the data from the original URI action so that it can be changed back in case the target page for the go-to action is subsequently deleted. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents a rubber stamp annotation. Initializes a new instance of the class. Initializes a new instance of the class. The document. Gets or sets an icon to be used in displaying the annotation. Predefined keys of this dictionary. (Optional) The name of an icon to be used in displaying the annotation. Viewer applications should provide predefined icon appearances for at least the following standard names: Approved AsIs Confidential Departmental Draft Experimental Expired Final ForComment ForPublicRelease NotApproved NotForPublicRelease Sold TopSecret Gets the KeysMeta of this dictionary type. Represents a text annotation. Initializes a new instance of the class. Initializes a new instance of the class. Gets or sets a flag indicating whether the annotation should initially be displayed open. Gets or sets an icon to be used in displaying the annotation. Predefined keys of this dictionary. (Optional) A flag specifying whether the annotation should initially be displayed open. Default value: false (closed). (Optional) The name of an icon to be used in displaying the annotation. Viewer applications should provide predefined icon appearances for at least the following standard names: Comment Help Insert Key NewParagraph Note Paragraph Gets the KeysMeta of this dictionary type. Represents a text annotation. Predefined keys of this dictionary. (Optional) The annotation’s highlighting mode, the visual effect to be used when the mouse button is pressed or held down inside its active area: N (None) No highlighting. I (Invert) Invert the contents of the annotation rectangle. O (Outline) Invert the annotation’s border. P (Push) Display the annotation’s down appearance, if any. If no down appearance is defined, offset the contents of the annotation rectangle to appear as if it were being pushed below the surface of the page. T (Toggle) Same as P (which is preferred). A highlighting mode other than P overrides any down appearance defined for the annotation. Default value: I. (Optional) An appearance characteristics dictionary to be used in constructing a dynamic appearance stream specifying the annotation’s visual presentation on the page. The name MK for this entry is of historical significance only and has no direct meaning. Gets the KeysMeta of this dictionary type. Base class for all PDF content stream objects. Initializes a new instance of the class. Creates a new object that is a copy of the current instance. Creates a new object that is a copy of the current instance. Implements the copy mechanism. Must be overridden in derived classes. Represents a comment in a PDF content stream. Creates a new object that is a copy of the current instance. Implements the copy mechanism of this class. Gets or sets the comment text. Returns a string that represents the current comment. Represents a sequence of objects in a PDF content stream. Creates a new object that is a copy of the current instance. Implements the copy mechanism of this class. Adds the specified sequence. The sequence. Adds the specified value add the end of the sequence. Removes all elements from the sequence. Determines whether the specified value is in the sequence. Returns the index of the specified value in the sequence or -1, if no such value is in the sequence. Inserts the specified value in the sequence. Removes the specified value from the sequence. Removes the value at the specified index from the sequence. Gets or sets a CObject at the specified index. Copies the elements of the sequence to the specified array. Gets the number of elements contained in the sequence. Returns an enumerator that iterates through the sequence. Converts the sequence to a PDF content stream. Returns a string containing all elements of the sequence. Represents the base class for numerical objects in a PDF content stream. Creates a new object that is a copy of the current instance. Implements the copy mechanism of this class. Represents an integer value in a PDF content stream. Creates a new object that is a copy of the current instance. Implements the copy mechanism of this class. Gets or sets the value. Returns a string that represents the current value. Represents a real value in a PDF content stream. Creates a new object that is a copy of the current instance. Implements the copy mechanism of this class. Gets or sets the value. Returns a string that represents the current value. Type of the parsed string. The string has the format "(...)". The string has the format "<...>". The string... TODO. The string... TODO. HACK: The string is the content of a dictionary. Currently there is no parser for dictionaries in Content Streams. Represents a string value in a PDF content stream. Creates a new object that is a copy of the current instance. Implements the copy mechanism of this class. Gets or sets the value. Gets or sets the type of the content string. Returns a string that represents the current value. Represents a name in a PDF content stream. Initializes a new instance of the class. Initializes a new instance of the class. The name. Creates a new object that is a copy of the current instance. Implements the copy mechanism of this class. Gets or sets the name. Names must start with a slash. Returns a string that represents the current value. Represents an array of objects in a PDF content stream. Creates a new object that is a copy of the current instance. Implements the copy mechanism of this class. Returns a string that represents the current value. Represents an operator a PDF content stream. Initializes a new instance of the class. Creates a new object that is a copy of the current instance. Implements the copy mechanism of this class. Gets or sets the name of the operator The name. Gets or sets the operands. The operands. Gets the operator description for this instance. Returns a string that represents the current operator. Specifies the group of operations the op-code belongs to. The names of the op-codes. Close, fill, and stroke path using nonzero winding number rule. Fill and stroke path using nonzero winding number rule. Close, fill, and stroke path using even-odd rule. Fill and stroke path using even-odd rule. (PDF 1.2) Begin marked-content sequence with property list. Begin inline image object. (PDF 1.2) Begin marked-content sequence. Begin text object. (PDF 1.1) Begin compatibility section. (PDF 1.2) Define marked-content point with property list. (PDF 1.2) End marked-content sequence. (PDF 1.1) End compatibility section. (PDF 1.2) Define marked-content point Move to next line and show text. Set word and character spacing, move to next line, and show text. Represents a PDF content stream operator description. Initializes a new instance of the class. The name. The enum value of the operator. The number of operands. The postscript equivalent, or null, if no such operation exists. The flags. The description from Adobe PDF Reference. The name of the operator. The enum value of the operator. The number of operands. -1 indicates a variable number of operands. The flags. The postscript equivalent, or null, if no such operation exists. The description from Adobe PDF Reference. Static class with all PDF op-codes. Operators from name. The name. Initializes the class. Array of all OpCodes. Character table by name. Same as PdfSharp.Pdf.IO.Chars. Not yet clear if necessary. Lexical analyzer for PDF content files. Adobe specifies no grammar, but it seems that it is a simple post-fix notation. Initializes a new instance of the Lexer class. Initializes a new instance of the Lexer class. Reads the next token and returns its type. Scans a comment line. (Not yet used, comments are skipped by lexer.) Scans the bytes of an inline image. NYI: Just scans over it. Scans a name. Scans an integer or real number. Scans an operator. Move current position one character further in content stream. Resets the current token to the empty string. Appends current character to the token and reads next one. If the current character is not a white space, the function immediately returns it. Otherwise the PDF cursor is moved forward to the first non-white space or EOF. White spaces are NUL, HT, LF, FF, CR, and SP. Gets or sets the current symbol. Gets the current token. Interprets current token as integer literal. Interpret current token as real or integer literal. Indicates whether the specified character is a content stream white-space character. Indicates whether the specified character is an content operator character. Indicates whether the specified character is a PDF delimiter character. Gets the length of the content. Represents the functionality for reading PDF content streams. Reads the content stream(s) of the specified page. The page. Reads the specified content. The content. Reads the specified content. The content. Exception thrown by ContentReader. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Represents a writer for generation of PDF streams. Writes the specified value to the PDF stream. Gets or sets the indentation for a new indentation level. Increases indent level. Decreases indent level. Gets an indent string of current indent. Gets the underlying stream. Provides the functionality to parse PDF content streams. Parses whatever comes until the specified stop symbol is reached. Reads the next symbol that must be the specified one. Terminal symbols recognized by PDF content stream lexer. Implements the ASCII85Decode filter. Encodes the specified data. Decodes the specified data. Implements the ASCIIHexDecode filter. Encodes the specified data. Decodes the specified data. Reserved for future extension. Base class for all stream filters When implemented in a derived class encodes the specified data. Encodes a raw string. When implemented in a derived class decodes the specified data. Decodes the specified data. Decodes to a raw string. Decodes to a raw string. Removes all white spaces from the data. The function assumes that the bytes are characters. Applies standard filters to streams. Gets the filter specified by the case sensitive name. Gets the filter singleton. Gets the filter singleton. Gets the filter singleton. Gets the filter singleton. Encodes the data with the specified filter. Encodes a raw string with the specified filter. Decodes the data with the specified filter. Decodes the data with the specified filter. Decodes the data with the specified filter. Decodes to a raw string with the specified filter. Decodes to a raw string with the specified filter. Implements the FlateDecode filter by wrapping SharpZipLib. Encodes the specified data. Encodes the specified data. Decodes the specified data. Implements the LzwDecode filter. Throws a NotImplementedException because the obsolete LZW encoding is not supported by PDFsharp. Decodes the specified data. Initialize the dictionary. Add a new entry to the Dictionary. Returns the next set of bits. An encoder for PDF AnsiEncoding. Gets the byte count. Gets the bytes. Gets the character count. Gets the chars. When overridden in a derived class, calculates the maximum number of bytes produced by encoding the specified number of characters. The number of characters to encode. The maximum number of bytes produced by encoding the specified number of characters. When overridden in a derived class, calculates the maximum number of characters produced by decoding the specified number of bytes. The number of bytes to decode. The maximum number of characters produced by decoding the specified number of bytes. Indicates whether the specified Unicode character is available in the ANSI code page 1252. Maps Unicode to ANSI code page 1252. Maps WinAnsi to Unicode characters. Helper functions for RGB and CMYK colors. Checks whether a color mode and a color match. Checks whether the color mode of a document and a color match. Determines whether two colors are equal referring to their CMYK color values. An encoder for PDF DocEncoding. Converts WinAnsi to DocEncode characters. Based upon PDF Reference 1.6. Groups a set of static encoding helper functions. Gets the raw encoding. Gets the raw Unicode encoding. Gets the Windows 1252 (ANSI) encoding. Gets the PDF DocEncoding encoding. Gets the UNICODE little-endian encoding. Converts a raw string into a raw string literal, possibly encrypted. Converts a raw string into a raw string literal, possibly encrypted. Converts a raw string into a raw hexadecimal string literal, possibly encrypted. Converts a raw string into a raw hexadecimal string literal, possibly encrypted. Converts the specified byte array into a byte array representing a string literal. The bytes of the string. Indicates whether one or two bytes are one character. Indicates whether to use Unicode prefix. Indicates whether to create a hexadecimal string literal. Encrypts the bytes if specified. The PDF bytes. Converts WinAnsi to DocEncode characters. Incomplete, just maps € and some other characters. ...because I always forget CultureInfo.InvariantCulture and wonder why Acrobat cannot understand my German decimal separator... Converts a float into a string with up to 3 decimal digits and a decimal point. Converts an XColor into a string with up to 3 decimal digits and a decimal point. Converts an XMatrix into a string with up to 4 decimal digits and a decimal point. An encoder for raw strings. The raw encoding is simply the identity relation between characters and bytes. PDFsharp internally works with raw encoded strings instead of byte arrays because strings are much more handy than byte arrays. Raw encoded strings represent an array of bytes. Therefore a character greater than 255 is not valid in a raw encoded string. Initializes a new instance of the class. When overridden in a derived class, calculates the number of bytes produced by encoding a set of characters from the specified character array. The character array containing the set of characters to encode. The index of the first character to encode. The number of characters to encode. The number of bytes produced by encoding the specified characters. When overridden in a derived class, encodes a set of characters from the specified character array into the specified byte array. The character array containing the set of characters to encode. The index of the first character to encode. The number of characters to encode. The byte array to contain the resulting sequence of bytes. The index at which to start writing the resulting sequence of bytes. The actual number of bytes written into . When overridden in a derived class, calculates the number of characters produced by decoding a sequence of bytes from the specified byte array. The byte array containing the sequence of bytes to decode. The index of the first byte to decode. The number of bytes to decode. The number of characters produced by decoding the specified sequence of bytes. When overridden in a derived class, decodes a sequence of bytes from the specified byte array into the specified character array. The byte array containing the sequence of bytes to decode. The index of the first byte to decode. The number of bytes to decode. The character array to contain the resulting set of characters. The index at which to start writing the resulting set of characters. The actual number of characters written into . When overridden in a derived class, calculates the maximum number of bytes produced by encoding the specified number of characters. The number of characters to encode. The maximum number of bytes produced by encoding the specified number of characters. When overridden in a derived class, calculates the maximum number of characters produced by decoding the specified number of bytes. The number of bytes to decode. The maximum number of characters produced by decoding the specified number of bytes. An encoder for Unicode strings. (That means, a character represents a glyph index.) Provides a thread-local cache for large objects. Maps path to document handle. Character table by name. The EOF marker. The null byte. The carriage return character (ignored by lexer). The line feed character. The bell character. The backspace character. The form feed character. The horizontal tab character. The vertical tab character. The non-breakable space character (aka no-break space or non-breaking space). The space character. The double quote character. The single quote character. The left parenthesis. The right parenthesis. The left brace. The right brace. The left bracket. The right bracket. The less-than sign. The greater-than sign. The equal sign. The period. The semicolon. The colon. The slash. The bar character. The back slash. The percent sign. The dollar sign. The at sign. The number sign. The question mark. The hyphen. The soft hyphen. The currency sign. Determines the type of the password. Password is neither user nor owner password. Password is user password. Password is owner password. Determines how a PDF document is opened. The PDF stream is completely read into memory and can be modified. Pages can be deleted or inserted, but it is not possible to extract pages. This mode is useful for modifying an existing PDF document. The PDF stream is opened for importing pages from it. A document opened in this mode cannot be modified. The PDF stream is completely read into memory, but cannot be modified. This mode preserves the original internal structure of the document and is useful for analyzing existing PDF files. The PDF stream is partially read for information purposes only. The only valid operation is to call the Info property at the imported document. This option is very fast and needs less memory and is e.g. useful for browsing information about a collection of PDF documents in a user interface. Determines how the PDF output stream is formatted. Even all formats create valid PDF files, only Compact or Standard should be used for production purposes. The PDF stream contains no unnecessary characters. This is default in release build. The PDF stream contains some superfluous line feeds, but is more readable. The PDF stream is indented to reflect the nesting levels of the objects. This is useful for analyzing PDF files, but increases the size of the file significantly. The PDF stream is indented to reflect the nesting levels of the objects and contains additional information about the PDFsharp objects. Furthermore content streams are not deflated. This is useful for debugging purposes only and increases the size of the file significantly. INTERNAL USE ONLY. If only this flag is specified the result is a regular valid PDF stream. Omit writing stream data. For debugging purposes only. With this option the result is not valid PDF. Omit inflate filter. For debugging purposes only. Terminal symbols recognized by lexer. Lexical analyzer for PDF files. Technically a PDF file is a stream of bytes. Some chunks of bytes represent strings in several encodings. The actual encoding depends on the context where the string is used. Therefore the bytes are 'raw encoded' into characters, i.e. a character or token read by the lexer has always character values in the range from 0 to 255. Initializes a new instance of the Lexer class. Gets or sets the position within the PDF stream. Reads the next token and returns its type. If the token starts with a digit, the parameter testReference specifies how to treat it. If it is false, the lexer scans for a single integer. If it is true, the lexer checks if the digit is the prefix of a reference. If it is a reference, the token is set to the object ID followed by the generation number separated by a blank (the 'R' is omitted from the token). Reads the raw content of a stream. Reads a string in raw encoding. Scans a comment line. Scans a name. Scans a number. Scans a keyword. Scans a literal string, contained between "(" and ")". Move current position one character further in PDF stream. Appends current character to the token and reads next one. If the current character is not a white space, the function immediately returns it. Otherwise the PDF cursor is moved forward to the first non-white space or EOF. White spaces are NUL, HT, LF, FF, CR, and SP. Gets the current symbol. Gets the current token. Interprets current token as boolean literal. Interprets current token as integer literal. Interprets current token as unsigned integer literal. Interprets current token as real or integer literal. Interprets current token as object ID. Indicates whether the specified character is a PDF white-space character. Indicates whether the specified character is a PDF delimiter character. Gets the length of the PDF output. Provides the functionality to parse PDF documents. Sets PDF input stream position to the specified object. Reads PDF object from input stream. Either the instance of a derived type or null. If it is null an appropriate object is created. The address of the object. If true, specifies that all indirect objects are included recursively. If true, the objects is parsed from an object stream. Reads the stream of a dictionary. Parses whatever comes until the specified stop symbol is reached. Reads the object ID and the generation and sets it into the specified object. Reads the next symbol that must be the specified one. Reads the next token that must be the specified one. Reads a name from the PDF data stream. The preceding slash is part of the result string. Reads an integer value directly from the PDF data stream. Reads an object from the PDF input stream using the default parser. Reads the irefs from the compressed object with the specified index in the object stream of the object with the specified object id. Reads the compressed object with the specified index in the object stream of the object with the specified object id. Reads the compressed object with the specified number at the given offset. The parser must be initialized with the stream an object stream object. Reads the object stream header as pairs of integers from the beginning of the stream of an object stream. Parameter first is the value of the First entry of the object stream object. Reads the cross-reference table(s) and their trailer dictionary or cross-reference streams. Reads cross reference table(s) and trailer(s). Checks the x reference table entry. Returns true if everything is correct. Return false if the keyword "obj" was found, but ID or Generation are incorrect. Throws an exception otherwise. The position where the object is supposed to be. The ID from the XRef table. The generation from the XRef table. The identifier found in the PDF file. The generation found in the PDF file. Reads cross reference stream(s). Parses a PDF date string. Encapsulates the arguments of the PdfPasswordProvider delegate. Sets the password to open the document with. When set to true the PdfReader.Open function returns null indicating that no PdfDocument was created. A delegated used by the PdfReader.Open function to retrieve a password if the document is protected. Represents the functionality for reading PDF documents. Determines whether the file specified by its path is a PDF file by inspecting the first eight bytes of the data. If the file header has the form «%PDF-x.y» the function returns the version number as integer (e.g. 14 for PDF 1.4). If the file header is invalid or inaccessible for any reason, 0 is returned. The function never throws an exception. Determines whether the specified stream is a PDF file by inspecting the first eight bytes of the data. If the data begins with «%PDF-x.y» the function returns the version number as integer (e.g. 14 for PDF 1.4). If the data is invalid or inaccessible for any reason, 0 is returned. The function never throws an exception. Determines whether the specified data is a PDF file by inspecting the first eight bytes of the data. If the data begins with «%PDF-x.y» the function returns the version number as integer (e.g. 14 for PDF 1.4). If the data is invalid or inaccessible for any reason, 0 is returned. The function never throws an exception. Implements scanning the PDF file version. Opens an existing PDF document. Opens an existing PDF document. Opens an existing PDF document. Opens an existing PDF document. Opens an existing PDF document. Opens an existing PDF document. Opens an existing PDF document. Opens an existing PDF document. Opens an existing PDF document. Opens an existing PDF document. Opens an existing PDF document. Exception thrown by PdfReader. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Represents a writer for generation of PDF streams. Gets or sets the kind of layout. Writes the specified value to the PDF stream. Writes the specified value to the PDF stream. Writes the specified value to the PDF stream. Writes the specified value to the PDF stream. Writes the specified value to the PDF stream. Writes the specified value to the PDF stream. Writes the specified value to the PDF stream. Writes the specified value to the PDF stream. Writes the specified value to the PDF stream. Writes the specified value to the PDF stream. Begins a direct or indirect dictionary or array. Ends a direct or indirect dictionary or array. Writes the stream of the specified dictionary. Gets or sets the indentation for a new indentation level. Increases indent level. Decreases indent level. Gets an indent string of current indent. Gets the underlying stream. Represents the stack for the shift-reduce parser. It seems that it is only needed for reduction of indirect references. Gets the stack pointer index. Gets the value at the specified index. Valid index is in range 0 up to sp-1. Gets an item relative to the current stack pointer. The index must be a negative value (-1, -2, etc.). Gets an item relative to the current stack pointer. The index must be a negative value (-1, -2, etc.). Pushes the specified item onto the stack. Replaces the last 'count' items with the specified item. Replaces the last 'count' items with the specified item. The stack pointer index. Points to the next free item. An array representing the stack. Specifies the security level of the PDF document. Document is not protected. Document is protected with 40-bit security. This option is for compatibility with Acrobat 3 and 4 only. Use Encrypted128Bit whenever possible. Document is protected with 128-bit security. Specifies which operations are permitted when the document is opened with user access. Permits everything. This is the default value. Represents the base of all security handlers. Predefined keys of this dictionary. (Required) The name of the preferred security handler for this document. Typically, it is the name of the security handler that was used to encrypt the document. If SubFilter is not present, only this security handler should be used when opening the document. If it is present, consumer applications can use any security handler that implements the format specified by SubFilter. Standard is the name of the built-in password-based security handler. Names for other security handlers can be registered by using the procedure described in Appendix E. (Optional; PDF 1.3) A name that completely specifies the format and interpretation of the contents of the encryption dictionary. It is needed to allow security handlers other than the one specified by Filter to decrypt the document. If this entry is absent, other security handlers should not be allowed to decrypt the document. (Optional but strongly recommended) A code specifying the algorithm to be used in encrypting and decrypting the document: 0 An algorithm that is undocumented and no longer supported, and whose use is strongly discouraged. 1 Algorithm 3.1, with an encryption key length of 40 bits. 2 (PDF 1.4) Algorithm 3.1, but permitting encryption key lengths greater than 40 bits. 3 (PDF 1.4) An unpublished algorithm that permits encryption key lengths ranging from 40 to 128 bits. 4 (PDF 1.5) The security handler defines the use of encryption and decryption in the document, using the rules specified by the CF, StmF, and StrF entries. The default value if this entry is omitted is 0, but a value of 1 or greater is strongly recommended. (Optional; PDF 1.4; only if V is 2 or 3) The length of the encryption key, in bits. The value must be a multiple of 8, in the range 40 to 128. Default value: 40. (Optional; meaningful only when the value of V is 4; PDF 1.5) A dictionary whose keys are crypt filter names and whose values are the corresponding crypt filter dictionaries. Every crypt filter used in the document must have an entry in this dictionary, except for the standard crypt filter names. (Optional; meaningful only when the value of V is 4; PDF 1.5) The name of the crypt filter that is used by default when decrypting streams. The name must be a key in the CF dictionary or a standard crypt filter name. All streams in the document, except for cross-reference streams or streams that have a Crypt entry in their Filter array, are decrypted by the security handler, using this crypt filter. Default value: Identity. (Optional; meaningful only when the value of V is 4; PDF 1.) The name of the crypt filter that is used when decrypting all strings in the document. The name must be a key in the CF dictionary or a standard crypt filter name. Default value: Identity. (Optional; meaningful only when the value of V is 4; PDF 1.6) The name of the crypt filter that should be used by default when encrypting embedded file streams; it must correspond to a key in the CF dictionary or a standard crypt filter name. This entry is provided by the security handler. Applications should respect this value when encrypting embedded files, except for embedded file streams that have their own crypt filter specifier. If this entry is not present, and the embedded file stream does not contain a crypt filter specifier, the stream should be encrypted using the default stream crypt filter specified by StmF. Encapsulates access to the security settings of a PDF document. Indicates whether the granted access to the document is 'owner permission'. Returns true if the document is unprotected or was opened with the owner password. Returns false if the document was opened with the user password. Gets or sets the document security level. If you set the security level to anything but PdfDocumentSecurityLevel.None you must also set a user and/or an owner password. Otherwise saving the document will fail. Sets the user password of the document. Setting a password automatically sets the PdfDocumentSecurityLevel to PdfDocumentSecurityLevel.Encrypted128Bit if its current value is PdfDocumentSecurityLevel.None. Sets the owner password of the document. Setting a password automatically sets the PdfDocumentSecurityLevel to PdfDocumentSecurityLevel.Encrypted128Bit if its current value is PdfDocumentSecurityLevel.None. Determines whether the document can be saved. Permits printing the document. Should be used in conjunction with PermitFullQualityPrint. Permits modifying the document. Permits content copying or extraction. Permits commenting the document. Permits filling of form fields. Permits content extraction for accessibility. Permits to insert, rotate, or delete pages and create bookmarks or thumbnail images even if PermitModifyDocument is not set. Permits to print in high quality. insert, rotate, or delete pages and create bookmarks or thumbnail images even if PermitModifyDocument is not set. PdfStandardSecurityHandler is the only implemented handler. Represents the standard PDF security handler. Sets the user password of the document. Setting a password automatically sets the PdfDocumentSecurityLevel to PdfDocumentSecurityLevel.Encrypted128Bit if its current value is PdfDocumentSecurityLevel.None. Sets the owner password of the document. Setting a password automatically sets the PdfDocumentSecurityLevel to PdfDocumentSecurityLevel.Encrypted128Bit if its current value is PdfDocumentSecurityLevel.None. Gets or sets the user access permission represented as an integer in the P key. Encrypts the whole document. Encrypts an indirect object. Encrypts a dictionary. Encrypts an array. Encrypts a string. Encrypts an array. Checks the password. Password or null if no password is provided. Pads a password to a 32 byte array. Generates the user key based on the padded user password. Generates the user key based on the padded owner password. Computes the padded user password from the padded owner password. Computes the encryption key. Computes the user key. Prepare the encryption key. Prepare the encryption key. Prepare the encryption key. Encrypts the data. Encrypts the data. Encrypts the data. Encrypts the data. Checks whether the calculated key correct. Set the hash key for the specified object. Prepares the security handler for encrypting the document. The global encryption key. The message digest algorithm MD5. Bytes used for RC4 encryption. The encryption key for the owner. The encryption key for the user. The encryption key for a particular object/generation. The encryption key length for a particular object/generation. Predefined keys of this dictionary. (Required) A number specifying which revision of the standard security handler should be used to interpret this dictionary: • 2 if the document is encrypted with a V value less than 2 and does not have any of the access permissions set (by means of the P entry, below) that are designated "Revision 3 or greater". • 3 if the document is encrypted with a V value of 2 or 3, or has any "Revision 3 or greater" access permissions set. • 4 if the document is encrypted with a V value of 4 (Required) A 32-byte string, based on both the owner and user passwords, that is used in computing the encryption key and in determining whether a valid owner password was entered. (Required) A 32-byte string, based on the user password, that is used in determining whether to prompt the user for a password and, if so, whether a valid user or owner password was entered. (Required) A set of flags specifying which operations are permitted when the document is opened with user access. (Optional; meaningful only when the value of V is 4; PDF 1.5) Indicates whether the document-level metadata stream is to be encrypted. Applications should respect this value. Default value: true. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Specifies the type of a key's value in a dictionary. Summary description for KeyInfo. Identifies the state of the document The document was created from scratch. The document was created by opening an existing PDF file. The document is disposed. Sets the mode for the Deflater (FlateEncoder). The default mode. Fast encoding, but larger PDF files. Best compression, but takes more time. Specifies whether to compress JPEG images with the FlateDecode filter. PDFsharp will try FlateDecode and use it if it leads to a reduction in PDF file size. When FlateEncodeMode is set to BestCompression, this is more likely to reduce the file size, but it takes considerably more time to create the PDF file. PDFsharp will never use FlateDecode - files may be a few bytes larger, but file creation is faster. PDFsharp will always use FlateDecode, even if this leads to larger files; this option is meant for testing purposes only and should not be used for production code. Specifies what color model is used in a PDF document. All color values are written as specified in the XColor objects they come from. All colors are converted to RGB. All colors are converted to CMYK. This class is undocumented and may change or drop in future releases. Use document default to determine compression. Leave custom values uncompressed. Compress custom values using FlateDecode. Specifies the embedding options of an XFont when converted into PDF. Font embedding is not optional anymore. So Always is the only option. All fonts are embedded. Fonts are not embedded. This is not an option anymore. Unicode fonts are embedded, WinAnsi fonts are not embedded. Not yet implemented. Specifies the encoding schema used for an XFont when converted into PDF. Cause a font to use Windows-1252 encoding to encode text rendered with this font. Same as Windows1252 encoding. Cause a font to use Unicode encoding to encode text rendered with this font. Unicode encoding. Specifies the type of a page destination in outline items, annotations, or actions.. Display the page with the coordinates (left, top) positioned at the upper-left corner of the window and the contents of the page magnified by the factor zoom. Display the page with its contents magnified just enough to fit the entire page within the window both horizontally and vertically. Display the page with the vertical coordinate top positioned at the top edge of the window and the contents of the page magnified just enough to fit the entire width of the page within the window. Display the page with the horizontal coordinate left positioned at the left edge of the window and the contents of the page magnified just enough to fit the entire height of the page within the window. Display the page designated by page, with its contents magnified just enough to fit the rectangle specified by the coordinates left, bottom, right, and topentirely within the window both horizontally and vertically. If the required horizontal and vertical magnification factors are different, use the smaller of the two, centering the rectangle within the window in the other dimension. A null value for any of the parameters may result in unpredictable behavior. Display the page with its contents magnified just enough to fit the rectangle specified by the coordinates left, bottom, right, and topentirely within the window both horizontally and vertically. Display the page with the vertical coordinate top positioned at the top edge of the window and the contents of the page magnified just enough to fit the entire width of its bounding box within the window. Display the page with the horizontal coordinate left positioned at the left edge of the window and the contents of the page magnified just enough to fit the entire height of its bounding box within the window. Specifies the font style for the outline (bookmark) text. Outline text is displayed using a regular font. Outline text is displayed using an italic font. Outline text is displayed using a bold font. Outline text is displayed using a bold and italic font. Specifies the page layout to be used by a viewer when the document is opened. Display one page at a time. Display the pages in one column. Display the pages in two columns, with oddnumbered pages on the left. Display the pages in two columns, with oddnumbered pages on the right. (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the left. (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the right. Specifies how the document should be displayed by a viewer when opened. Neither document outline nor thumbnail images visible. Document outline visible. Thumbnail images visible. Full-screen mode, with no menu bar, windowcontrols, or any other window visible. (PDF 1.5) Optional content group panel visible. (PDF 1.6) Attachments panel visible. Specifies how the document should be displayed by a viewer when opened. Left to right. Right to left (including vertical writing systems, such as Chinese, Japanese, and Korean) Specifies how text strings are encoded. A text string is any text used outside of a page content stream, e.g. document information, outline text, annotation text etc. Specifies that hypertext uses PDF DocEncoding. Specifies that hypertext uses unicode encoding. Base class for all dictionary Keys classes. Holds information about the value of a key in a dictionary. This information is used to create and interpret this value. Initializes a new instance of KeyDescriptor from the specified attribute during a KeysMeta initializes itself using reflection. Gets or sets the PDF version starting with the availability of the described key. Returns the type of the object to be created as value for the described key. Contains meta information about all keys of a PDF dictionary. Gets the KeyDescriptor of the specified key, or null if no such descriptor exits. Represents a PDF array object. Initializes a new instance of the class. Initializes a new instance of the class. The document. Initializes a new instance of the class. The document. The items. Initializes a new instance from an existing dictionary. Used for object type transformation. The array. Creates a copy of this array. Direct elements are deep copied. Indirect references are not modified. Implements the copy mechanism. Gets the collection containing the elements of this object. Returns an enumerator that iterates through a collection. Returns a string with the content of this object in a readable form. Useful for debugging purposes only. Represents the elements of an PdfArray. Creates a shallow copy of this object. Moves this instance to another array during object type transformation. Converts the specified value to boolean. If the value does not exist, the function returns false. If the value is not convertible, the function throws an InvalidCastException. If the index is out of range, the function throws an ArgumentOutOfRangeException. Converts the specified value to integer. If the value does not exist, the function returns 0. If the value is not convertible, the function throws an InvalidCastException. If the index is out of range, the function throws an ArgumentOutOfRangeException. Converts the specified value to double. If the value does not exist, the function returns 0. If the value is not convertible, the function throws an InvalidCastException. If the index is out of range, the function throws an ArgumentOutOfRangeException. Converts the specified value to double?. If the value does not exist, the function returns null. If the value is not convertible, the function throws an InvalidCastException. If the index is out of range, the function throws an ArgumentOutOfRangeException. Converts the specified value to string. If the value does not exist, the function returns the empty string. If the value is not convertible, the function throws an InvalidCastException. If the index is out of range, the function throws an ArgumentOutOfRangeException. Converts the specified value to a name. If the value does not exist, the function returns the empty string. If the value is not convertible, the function throws an InvalidCastException. If the index is out of range, the function throws an ArgumentOutOfRangeException. Returns the indirect object if the value at the specified index is a PdfReference. Gets the PdfObject with the specified index, or null, if no such object exists. If the index refers to a reference, the referenced PdfObject is returned. Gets the PdfArray with the specified index, or null, if no such object exists. If the index refers to a reference, the referenced PdfArray is returned. Gets the PdfArray with the specified index, or null, if no such object exists. If the index refers to a reference, the referenced PdfArray is returned. Gets the PdfReference with the specified index, or null, if no such object exists. Gets all items of this array. Returns false. Gets or sets an item at the specified index. Removes the item at the specified index. Removes the first occurrence of a specific object from the array/>. Inserts the item the specified index. Determines whether the specified value is in the array. Removes all items from the array. Gets the index of the specified item. Appends the specified object to the array. Returns false. Returns false. Gets the number of elements in the array. Copies the elements of the array to the specified array. The current implementation return null. Returns an enumerator that iterates through the array. The elements of the array. The array this objects belongs to. Gets the DebuggerDisplayAttribute text. Represents a direct boolean value. Initializes a new instance of the class. Initializes a new instance of the class. Gets the value of this instance as boolean value. A pre-defined value that represents true. A pre-defined value that represents false. Returns 'false' or 'true'. Writes 'true' or 'false'. Represents an indirect boolean value. This type is not used by PDFsharp. If it is imported from an external PDF file, the value is converted into a direct object. Initializes a new instance of the class. Initializes a new instance of the class. Initializes a new instance of the class. Gets the value of this instance as boolean value. Returns "false" or "true". Writes the keyword «false» or «true». This class is intended for empira internal use only and may change or drop in future releases. This function is intended for empira internal use only. This function is intended for empira internal use only. This property is intended for empira internal use only. This property is intended for empira internal use only. This class is intended for empira internal use only and may change or drop in future releases. This function is intended for empira internal use only. This function is intended for empira internal use only. This function is intended for empira internal use only. This function is intended for empira internal use only. Represents a direct date value. Initializes a new instance of the class. Initializes a new instance of the class. Initializes a new instance of the class. Gets the value as DateTime. Returns the value in the PDF date format. Writes the value in the PDF date format. Value creation flags. Specifies whether and how a value that does not exist is created. Don't create the value. Create the value as direct object. Create the value as indirect object. Represents a PDF dictionary object. Initializes a new instance of the class. Initializes a new instance of the class. The document. Initializes a new instance from an existing dictionary. Used for object type transformation. Creates a copy of this dictionary. Direct values are deep copied. Indirect references are not modified. This function is useful for importing objects from external documents. The returned object is not yet complete. irefs refer to external objects and directed objects are cloned but their document property is null. A cloned dictionary or array needs a 'fix-up' to be a valid object. Gets the dictionary containing the elements of this dictionary. The elements of the dictionary. Returns an enumerator that iterates through the dictionary elements. Returns a string with the content of this object in a readable form. Useful for debugging purposes only. Writes a key/value pair of this dictionary. This function is intended to be overridden in derived classes. Writes the stream of this dictionary. This function is intended to be overridden in a derived class. Gets or sets the PDF stream belonging to this dictionary. Returns null if the dictionary has no stream. To create the stream, call the CreateStream function. Creates the stream of this dictionary and initializes it with the specified byte array. The function must not be called if the dictionary already has a stream. When overridden in a derived class, gets the KeysMeta of this dictionary type. Represents the interface to the elements of a PDF dictionary. Creates a shallow copy of this object. The clone is not owned by a dictionary anymore. Moves this instance to another dictionary during object type transformation. Gets the dictionary to which this elements object belongs to. Converts the specified value to boolean. If the value does not exist, the function returns false. If the value is not convertible, the function throws an InvalidCastException. Converts the specified value to boolean. If the value does not exist, the function returns false. If the value is not convertible, the function throws an InvalidCastException. Sets the entry to a direct boolean value. Converts the specified value to integer. If the value does not exist, the function returns 0. If the value is not convertible, the function throws an InvalidCastException. Converts the specified value to integer. If the value does not exist, the function returns 0. If the value is not convertible, the function throws an InvalidCastException. Sets the entry to a direct integer value. Converts the specified value to double. If the value does not exist, the function returns 0. If the value is not convertible, the function throws an InvalidCastException. Converts the specified value to double. If the value does not exist, the function returns 0. If the value is not convertible, the function throws an InvalidCastException. Sets the entry to a direct double value. Converts the specified value to String. If the value does not exist, the function returns the empty string. Converts the specified value to String. If the value does not exist, the function returns the empty string. Tries to get the string. TODO: more TryGet... Sets the entry to a direct string value. Converts the specified value to a name. If the value does not exist, the function returns the empty string. Sets the specified name value. If the value doesn't start with a slash, it is added automatically. Converts the specified value to PdfRectangle. If the value does not exist, the function returns an empty rectangle. If the value is not convertible, the function throws an InvalidCastException. Converts the specified value to PdfRectangle. If the value does not exist, the function returns an empty rectangle. If the value is not convertible, the function throws an InvalidCastException. Sets the entry to a direct rectangle value, represented by an array with four values. Converts the specified value to XMatrix. If the value does not exist, the function returns an identity matrix. If the value is not convertible, the function throws an InvalidCastException. Converts the specified value to XMatrix. If the value does not exist, the function returns an identity matrix. If the value is not convertible, the function throws an InvalidCastException. Sets the entry to a direct matrix value, represented by an array with six values. Converts the specified value to DateTime. If the value does not exist, the function returns the specified default value. If the value is not convertible, the function throws an InvalidCastException. Sets the entry to a direct datetime value. Gets the value for the specified key. If the value does not exist, it is optionally created. Short cut for GetValue(key, VCF.None). Returns the type of the object to be created as value of the specified key. Sets the entry with the specified value. DON'T USE THIS FUNCTION - IT MAY BE REMOVED. Gets the PdfObject with the specified key, or null, if no such object exists. If the key refers to a reference, the referenced PdfObject is returned. Gets the PdfDictionary with the specified key, or null, if no such object exists. If the key refers to a reference, the referenced PdfDictionary is returned. Gets the PdfArray with the specified key, or null, if no such object exists. If the key refers to a reference, the referenced PdfArray is returned. Gets the PdfReference with the specified key, or null, if no such object exists. Sets the entry to the specified object. The object must not be an indirect object, otherwise an exception is raised. Sets the entry as a reference to the specified object. The object must be an indirect object, otherwise an exception is raised. Sets the entry as a reference to the specified iref. Gets a value indicating whether the object is read-only. Returns an object for the object. Gets or sets an entry in the dictionary. The specified key must be a valid PDF name starting with a slash '/'. This property provides full access to the elements of the PDF dictionary. Wrong use can lead to errors or corrupt PDF files. Gets or sets an entry in the dictionary identified by a PdfName object. Removes the value with the specified key. Removes the value with the specified key. Determines whether the dictionary contains the specified name. Determines whether the dictionary contains a specific value. Removes all elements from the dictionary. Adds the specified value to the dictionary. Adds an item to the dictionary. Gets all keys currently in use in this dictionary as an array of PdfName objects. Get all keys currently in use in this dictionary as an array of string objects. Gets the value associated with the specified key. Gets all values currently in use in this dictionary as an array of PdfItem objects. Return false. Return false. Gets the number of elements contained in the dictionary. Copies the elements of the dictionary to an array, starting at a particular index. The current implementation returns null. Gets the DebuggerDisplayAttribute text. The elements of the dictionary with a string as key. Because the string is a name it starts always with a '/'. The dictionary this objects belongs to. The PDF stream objects. A .NET string can contain char(0) as a valid character. Clones this stream by creating a deep copy. Moves this instance to another dictionary during object type transformation. The dictionary the stream belongs to. Gets the length of the stream, i.e. the actual number of bytes in the stream. Gets a value indicating whether this stream has decode parameters. Gets the decode predictor for LZW- or FlateDecode. Returns 0 if no such value exists. Gets the decode Columns for LZW- or FlateDecode. Returns 0 if no such value exists. Get or sets the bytes of the stream as they are, i.e. if one or more filters exist the bytes are not unfiltered. Gets the value of the stream unfiltered. The stream content is not modified by this operation. Tries to unfilter the bytes of the stream. If the stream is filtered and PDFsharp knows the filter algorithm, the stream content is replaced by its unfiltered value and the function returns true. Otherwise the content remains untouched and the function returns false. The function is useful for analyzing existing PDF files. Compresses the stream with the FlateDecode filter. If a filter is already defined, the function has no effect. Returns the stream content as a raw string. Common keys for all streams. (Required) The number of bytes from the beginning of the line following the keyword stream to the last byte just before the keyword endstream. (There may be an additional EOL marker, preceding endstream, that is not included in the count and is not logically part of the stream data.) (Optional) The name of a filter to be applied in processing the stream data found between the keywords stream and endstream, or an array of such names. Multiple filters should be specified in the order in which they are to be applied. (Optional) A parameter dictionary or an array of such dictionaries, used by the filters specified by Filter. If there is only one filter and that filter has parameters, DecodeParms must be set to the filter’s parameter dictionary unless all the filter’s parameters have their default values, in which case the DecodeParms entry may be omitted. If there are multiple filters and any of the filters has parameters set to nondefault values, DecodeParms must be an array with one entry for each filter: either the parameter dictionary for that filter, or the null object if that filter has no parameters (or if all of its parameters have their default values). If none of the filters have parameters, or if all their parameters have default values, the DecodeParms entry may be omitted. (Optional; PDF 1.2) The file containing the stream data. If this entry is present, the bytes between stream and endstream are ignored, the filters are specified by FFilter rather than Filter, and the filter parameters are specified by FDecodeParms rather than DecodeParms. However, the Length entry should still specify the number of those bytes. (Usually, there are no bytes and Length is 0.) (Optional; PDF 1.2) The name of a filter to be applied in processing the data found in the stream’s external file, or an array of such names. The same rules apply as for Filter. (Optional; PDF 1.2) A parameter dictionary, or an array of such dictionaries, used by the filters specified by FFilter. The same rules apply as for DecodeParms. Optional; PDF 1.5) A non-negative integer representing the number of bytes in the decoded (defiltered) stream. It can be used to determine, for example, whether enough disk space is available to write a stream to a file. This value should be considered a hint only; for some stream filters, it may not be possible to determine this value precisely. Gets the DebuggerDisplayAttribute text. Represents a PDF document. Creates a new PDF document in memory. To open an existing PDF file, use the PdfReader class. Creates a new PDF document with the specified file name. The file is immediately created and keeps locked until the document is closed, at that time the document is saved automatically. Do not call Save() for documents created with this constructor, just call Close(). To open an existing PDF file and import it, use the PdfReader class. Creates a new PDF document using the specified stream. The stream won't be used until the document is closed, at that time the document is saved automatically. Do not call Save() for documents created with this constructor, just call Close(). To open an existing PDF file, use the PdfReader class. Disposes all references to this document stored in other documents. This function should be called for documents you finished importing pages from. Calling Dispose is technically not necessary but useful for earlier reclaiming memory of documents you do not need anymore. Gets or sets a user defined object that contains arbitrary information associated with this document. The tag is not used by PDFsharp. Gets or sets a value used to distinguish PdfDocument objects. The name is not used by PDFsharp. Get a new default name for a new document. Closes this instance. Saves the document to the specified path. If a file already exists, it will be overwritten. Saves the document to the specified stream. Saves the document to the specified stream. The stream is not closed by this function. (Older versions of PDFsharp closes the stream. That was not very useful.) Implements saving a PDF file. Dispatches PrepareForSave to the objects that need it. Determines whether the document can be saved. Gets the document options used for saving the document. Gets PDF specific document settings. NYI Indicates whether large objects are written immediately to the output stream to relieve memory consumption. Gets or sets the PDF version number. Return value 14 e.g. means PDF 1.4 / Acrobat 5 etc. Gets the number of pages in the document. Gets the file size of the document. Gets the full qualified file name if the document was read form a file, or an empty string otherwise. Gets a Guid that uniquely identifies this instance of PdfDocument. Returns a value indicating whether the document was newly created or opened from an existing document. Returns true if the document was opened with the PdfReader.Open function, false otherwise. Returns a value indicating whether the document is read only or can be modified. Gets information about the document. This function is intended to be undocumented. Get the pages dictionary. Gets or sets a value specifying the page layout to be used when the document is opened. Gets or sets a value specifying how the document should be displayed when opened. Gets the viewer preferences of this document. Gets the root of the outline (or bookmark) tree. Get the AcroForm dictionary. Gets or sets the default language of the document. Gets the security settings of this document. Gets the document font table that holds all fonts used in the current document. Gets the document image table that holds all images used in the current document. Gets the document form table that holds all form external objects used in the current document. Gets the document ExtGState table that holds all form state objects used in the current document. Gets the PdfCatalog of the current document. Gets the PdfInternals object of this document, that grants access to some internal structures which are not part of the public interface of PdfDocument. Creates a new page and adds it to this document. Depending of the IsMetric property of the current region the page size is set to A4 or Letter respectively. If this size is not appropriate it should be changed before any drawing operations are performed on the page. Adds the specified page to this document. If the page is from an external document, it is imported to this document. In this case the returned page is not the same object as the specified one. Creates a new page and inserts it in this document at the specified position. Inserts the specified page in this document. If the page is from an external document, it is imported to this document. In this case the returned page is not the same object as the specified one. Flattens a document (make the fields non-editable). Gets the security handler. Occurs when the specified document is not used anymore for importing content. Gets the ThreadLocalStorage object. It is used for caching objects that should created only once. Represents the PDF document information dictionary. Initializes a new instance of the class. Gets or sets the document's title. Gets or sets the name of the person who created the document. Gets or sets the name of the subject of the document. Gets or sets keywords associated with the document. Gets or sets the name of the application (for example, MigraDoc) that created the document. Gets the producer application (for example, PDFsharp). Gets or sets the creation date of the document. Breaking Change: If the date is not set in a PDF file DateTime.MinValue is returned. Gets or sets the modification date of the document. Breaking Change: If the date is not set in a PDF file DateTime.MinValue is returned. Predefined keys of this dictionary. (Optional; PDF 1.1) The document’s title. (Optional) The name of the person who created the document. (Optional; PDF 1.1) The subject of the document. (Optional; PDF 1.1) Keywords associated with the document. (Optional) If the document was converted to PDF from another format, the name of the application (for example, empira MigraDoc) that created the original document from which it was converted. (Optional) If the document was converted to PDF from another format, the name of the application (for example, this library) that converted it to PDF. (Optional) The date and time the document was created, in human-readable form. (Required if PieceInfo is present in the document catalog; otherwise optional; PDF 1.1) The date and time the document was most recently modified, in human-readable form. (Optional; PDF 1.3) A name object indicating whether the document has been modified to include trapping information. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Holds information how to handle the document when it is saved as PDF stream. Gets or sets the color mode. Gets or sets a value indicating whether to compress content streams of PDF pages. Gets or sets a value indicating that all objects are not compressed. Gets or sets the flate encode mode. Besides the balanced default mode you can set modes for best compression (slower) or best speed (larger files). Gets or sets a value indicating whether to compress bilevel images using CCITT compression. With true, PDFsharp will try FlateDecode CCITT and will use the smallest one or a combination of both. With false, PDFsharp will always use FlateDecode only - files may be a few bytes larger, but file creation is faster. Gets or sets a value indicating whether to compress JPEG images with the FlateDecode filter. Holds PDF specific information of the document. Gets or sets the default trim margins. Represents a direct integer value. Initializes a new instance of the class. Initializes a new instance of the class. The value. Gets the value as integer. Returns the integer as string. Writes the integer as string. Returns TypeCode for 32-bit integers. Represents an indirect integer value. This type is not used by PDFsharp. If it is imported from an external PDF file, the value is converted into a direct object. Initializes a new instance of the class. Initializes a new instance of the class. Initializes a new instance of the class. Gets the value as integer. Returns the integer as string. Writes the integer literal. The base class of all PDF objects and simple PDF types. Creates a copy of this object. Implements the copy mechanism. Must be overridden in derived classes. When overridden in a derived class, appends a raw string representation of this object to the specified PdfWriter. Represents text that is written 'as it is' into the PDF stream. This class can lead to invalid PDF files. E.g. strings in a literal are not encrypted when the document is saved with a password. Initializes a new instance of the class. Initializes a new instance with the specified string. Initializes a new instance with the culture invariant formatted specified arguments. Creates a literal from an XMatrix Gets the value as litaral string. Returns a string that represents the current value. Represents a PDF name value. Initializes a new instance of the class. Initializes a new instance of the class. Parameter value always must start with a '/'. Determines whether the specified object is equal to this name. Returns the hash code for this instance. Gets the name as a string. Returns the name. The string always begins with a slash. Determines whether the specified name and string are equal. Determines whether the specified name and string are not equal. Represents the empty name. Writes the name including the leading slash. Gets the comparer for this type. Implements a comparer that compares PdfName objects. Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. The first object to compare. The second object to compare. Represents an indirect name value. This type is not used by PDFsharp. If it is imported from an external PDF file, the value is converted into a direct object. Acrobat sometime uses indirect names to save space, because an indirect reference to a name may be shorter than a long name. Initializes a new instance of the class. Initializes a new instance of the class. The document. The value. Determines whether the specified object is equal to the current object. Serves as a hash function for this type. Gets or sets the name value. Returns the name. The string always begins with a slash. Determines whether a name is equal to a string. Determines whether a name is not equal to a string. Writes the name including the leading slash. Represents a indirect reference that is not in the cross reference table. Returns a that represents the current . A that represents the current . The only instance of this class. Represents an indirect null value. This type is not used by PDFsharp, but at least one tool from Adobe creates PDF files with a null object. Initializes a new instance of the class. Initializes a new instance of the class. The document. Returns the string "null". Writes the keyword «null». Base class for direct number values (not yet used, maybe superfluous). Base class for indirect number values (not yet used, maybe superfluous). Initializes a new instance of the class. Initializes a new instance of the class. The document. Base class of all composite PDF objects. Initializes a new instance of the class. Initializes a new instance of the class. Initializes a new instance from an existing object. Used for object type transformation. Creates a copy of this object. The clone does not belong to a document, i.e. its owner and its iref are null. Implements the copy mechanism. Must be overridden in derived classes. Sets the object and generation number. Setting the object identifier makes this object an indirect object, i.e. the object gets a PdfReference entry in the PdfReferenceTable. Gets the PdfDocument this object belongs to. Sets the PdfDocument this object belongs to. Indicates whether the object is an indirect object. Gets the PdfInternals object of this document, that grants access to some internal structures which are not part of the public interface of PdfDocument. When overridden in a derived class, prepares the object to get saved. Saves the stream position. 2nd Edition. Gets the object identifier. Returns PdfObjectID.Empty for direct objects, i.e. never returns null. Gets the object number. Gets the generation number. The document that owns the cloned objects. The root object to be cloned. The clone of the root object The imported object table of the owner for the external document. The document that owns the cloned objects. The root object to be cloned. The clone of the root object Replace all indirect references to external objects by their cloned counterparts owned by the importer document. Ensure for future versions of PDFsharp not to forget code for a new kind of PdfItem. The item. Gets the indirect reference of this object. If the value is null, this object is a direct object. Represents a PDF object identifier, a pair of object and generation number. Initializes a new instance of the class. The object number. Initializes a new instance of the class. The object number. The generation number. Gets or sets the object number. Gets or sets the generation number. Indicates whether this object is an empty object identifier. Indicates whether this instance and a specified object are equal. Returns the hash code for this instance. Determines whether the two objects are equal. Determines whether the tow objects not are equal. Returns the object and generation numbers as a string. Creates an empty object identifier. Compares the current object id with another object. Gets the DebuggerDisplayAttribute text. Represents an outline item in the outlines tree. An 'outline' is also known as a 'bookmark'. Initializes a new instance of the class. Initializes a new instance of the class. The document. Initializes a new instance from an existing dictionary. Used for object type transformation. Initializes a new instance of the class. The outline text. The destination page. Specifies whether the node is displayed expanded (opened) or collapsed. The font style used to draw the outline text. The color used to draw the outline text. Initializes a new instance of the class. The outline text. The destination page. Specifies whether the node is displayed expanded (opened) or collapsed. The font style used to draw the outline text. Initializes a new instance of the class. The outline text. The destination page. Specifies whether the node is displayed expanded (opened) or collapsed. Initializes a new instance of the class. The outline text. The destination page. The total number of open descendants at all lower levels. Counts the open outline items. Not yet used. Gets the parent of this outline item. The root item has no parent and returns null. Gets or sets the title. Gets or sets the destination page. Gets or sets the left position of the page positioned at the left side of the window. Applies only if PageDestinationType is Xyz, FitV, FitR, or FitBV. Gets or sets the top position of the page positioned at the top side of the window. Applies only if PageDestinationType is Xyz, FitH, FitR, ob FitBH. Gets or sets the right position of the page positioned at the right side of the window. Applies only if PageDestinationType is FitR. Gets or sets the bottom position of the page positioned at the bottom side of the window. Applies only if PageDestinationType is FitR. Gets or sets the zoom faction of the page. Applies only if PageDestinationType is Xyz. Gets or sets whether the outline item is opened (or expanded). Gets or sets the style of the outline text. Gets or sets the type of the page destination. Gets or sets the color of the text. The color of the text. Gets a value indicating whether this outline object has child items. Gets the outline collection of this node. Initializes this instance from an existing PDF document. Creates key/values pairs according to the object structure. Format double. Format nullable double. Predefined keys of this dictionary. (Optional) The type of PDF object that this dictionary describes; if present, must be Outlines for an outline dictionary. (Required) The text to be displayed on the screen for this item. (Required; must be an indirect reference) The parent of this item in the outline hierarchy. The parent of a top-level item is the outline dictionary itself. (Required for all but the first item at each level; must be an indirect reference) The previous item at this outline level. (Required for all but the last item at each level; must be an indirect reference) The next item at this outline level. (Required if the item has any descendants; must be an indirect reference) The first of this item’s immediate children in the outline hierarchy. (Required if the item has any descendants; must be an indirect reference) The last of this item’s immediate children in the outline hierarchy. (Required if the item has any descendants) If the item is open, the total number of its open descendants at all lower levels of the outline hierarchy. If the item is closed, a negative integer whose absolute value specifies how many descendants would appear if the item were reopened. (Optional; not permitted if an A entry is present) The destination to be displayed when this item is activated. (Optional; not permitted if a Dest entry is present) The action to be performed when this item is activated. (Optional; PDF 1.3; must be an indirect reference) The structure element to which the item refers. Note: The ability to associate an outline item with a structure element (such as the beginning of a chapter) is a PDF 1.3 feature. For backward compatibility with earlier PDF versions, such an item should also specify a destination (Dest) corresponding to an area of a page where the contents of the designated structure element are displayed. (Optional; PDF 1.4) An array of three numbers in the range 0.0 to 1.0, representing the components in the DeviceRGB color space of the color to be used for the outline entry’s text. Default value: [0.0 0.0 0.0]. (Optional; PDF 1.4) A set of flags specifying style characteristics for displaying the outline item’s text. Default value: 0. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents a collection of outlines. Can only be created as part of PdfOutline. Indicates whether the outline collection has at least one entry. Removes the first occurrence of a specific item from the collection. Gets the number of entries in this collection. Returns false. Adds the specified outline. Removes all elements form the collection. Determines whether the specified element is in the collection. Copies the collection to an array, starting at the specified index of the target array. Adds the specified outline entry. The outline text. The destination page. Specifies whether the node is displayed expanded (opened) or collapsed. The font style used to draw the outline text. The color used to draw the outline text. Adds the specified outline entry. The outline text. The destination page. Specifies whether the node is displayed expanded (opened) or collapsed. The font style used to draw the outline text. Adds the specified outline entry. The outline text. The destination page. Specifies whether the node is displayed expanded (opened) or collapsed. Creates a PdfOutline and adds it into the outline collection. Gets the index of the specified item. Inserts the item at the specified index. Removes the outline item at the specified index. Gets the at the specified index. Returns an enumerator that iterates through the outline collection. The parent outine of this collection. Represents a page in a PDF document. Initializes a new page. The page must be added to a document before it can be used. Depending of the IsMetric property of the current region the page size is set to A4 or Letter respectively. If this size is not appropriate it should be changed before any drawing operations are performed on the page. Initializes a new instance of the class. The document. Gets or sets a user defined object that contains arbitrary information associated with this PDF page. The tag is not used by PDFsharp. Closes the page. A closed page cannot be modified anymore and it is not possible to get an XGraphics object for a closed page. Closing a page is not required, but may save resources if the document has many pages. Gets a value indicating whether the page is closed. Gets or sets the PdfDocument this page belongs to. Gets or sets the orientation of the page. The default value PageOrientation.Portrait. If an imported page has a /Rotate value that matches the formula 90 + n * 180 the orientation is set to PageOrientation.Landscape. Gets or sets one of the predefined standard sizes like. Gets or sets the trim margins. Gets or sets the media box directly. XGrahics is not prepared to work with a media box with an origin other than (0,0). Gets or sets the crop box. Gets or sets the bleed box. Gets or sets the art box. Gets or sets the trim box. Gets or sets the height of the page. If orientation is Landscape, this function applies to the width. Gets or sets the width of the page. If orientation is Landscape, this function applies to the height. Gets or sets the /Rotate entry of the PDF page. The value is the number of degrees by which the page should be rotated clockwise when displayed or printed. The value must be a multiple of 90. PDFsharp does not set this value, but for imported pages this value can be set and must be taken into account when adding graphic to such a page. The content stream currently used by an XGraphics object for rendering. Gets the array of content streams of the page. Gets the annotations array of this page. Gets the annotations array of this page. Adds an intra document link. The rect. The destination page. Adds a link to the Web. The rect. The URL. Adds a link to a file. The rect. Name of the file. Gets or sets the custom values. Gets the PdfResources object of this page. Implements the interface because the primary function is internal. Gets the resource name of the specified font within this page. Tries to get the resource name of the specified font data within this page. Returns null if no such font exists. Gets the resource name of the specified font data within this page. Gets the resource name of the specified image within this page. Implements the interface because the primary function is internal. Gets the resource name of the specified form within this page. Implements the interface because the primary function is internal. Hack to indicate that a page-level transparency group must be created. Inherit values from parent node. Add all inheritable values from the specified page to the specified values structure. Predefined keys of this dictionary. (Required) The type of PDF object that this dictionary describes; must be Page for a page object. (Required; must be an indirect reference) The page tree node that is the immediate parent of this page object. (Required if PieceInfo is present; optional otherwise; PDF 1.3) The date and time when the page’s contents were most recently modified. If a page-piece dictionary (PieceInfo) is present, the modification date is used to ascertain which of the application data dictionaries that it contains correspond to the current content of the page. (Optional; PDF 1.3) A rectangle, expressed in default user space units, defining the region to which the contents of the page should be clipped when output in a production environment. Default value: the value of CropBox. (Optional; PDF 1.3) A rectangle, expressed in default user space units, defining the intended dimensions of the finished page after trimming. Default value: the value of CropBox. (Optional; PDF 1.3) A rectangle, expressed in default user space units, defining the extent of the page’s meaningful content (including potential white space) as intended by the page’s creator. Default value: the value of CropBox. (Optional; PDF 1.4) A box color information dictionary specifying the colors and other visual characteristics to be used in displaying guidelines on the screen for the various page boundaries. If this entry is absent, the application should use its own current default settings. (Optional) A content stream describing the contents of this page. If this entry is absent, the page is empty. The value may be either a single stream or an array of streams. If the value is an array, the effect is as if all of the streams in the array were concatenated, in order, to form a single stream. This allows PDF producers to create image objects and other resources as they occur, even though they interrupt the content stream. The division between streams may occur only at the boundaries between lexical tokens but is unrelated to the page’s logical content or organization. Applications that consume or produce PDF files are not required to preserve the existing structure of the Contents array. (Optional; PDF 1.4) A group attributes dictionary specifying the attributes of the page’s page group for use in the transparent imaging model. (Optional) A stream object defining the page’s thumbnail image. (Optional; PDF 1.1; recommended if the page contains article beads) An array of indirect references to article beads appearing on the page. The beads are listed in the array in natural reading order. (Optional; PDF 1.1) The page’s display duration (also called its advance timing): the maximum length of time, in seconds, that the page is displayed during presentations before the viewer application automatically advances to the next page. By default, the viewer does not advance automatically. (Optional; PDF 1.1) A transition dictionary describing the transition effect to be used when displaying the page during presentations. (Optional) An array of annotation dictionaries representing annotations associated with the page. (Optional; PDF 1.2) An additional-actions dictionary defining actions to be performed when the page is opened or closed. (Optional; PDF 1.4) A metadata stream containing metadata for the page. (Optional; PDF 1.3) A page-piece dictionary associated with the page. (Required if the page contains structural content items; PDF 1.3) The integer key of the page’s entry in the structural parent tree. (Optional; PDF 1.3; indirect reference preferred) The digital identifier of the page’s parent Web Capture content set. (Optional; PDF 1.3) The page’s preferred zoom (magnification) factor: the factor by which it should be scaled to achieve the natural display magnification. (Optional; PDF 1.3) A separation dictionary containing information needed to generate color separations for the page. (Optional; PDF 1.5) A name specifying the tab order to be used for annotations on the page. The possible values are R (row order), C (column order), and S (structure order). (Required if this page was created from a named page object; PDF 1.5) The name of the originating page object. (Optional; PDF 1.5) A navigation node dictionary representing the first node on the page. (Optional; PDF 1.6) A positive number giving the size of default user space units, in multiples of 1/72 inch. The range of supported values is implementation-dependent. (Optional; PDF 1.6) An array of viewport dictionaries specifying rectangular regions of the page. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Predefined keys common to PdfPage and PdfPages. (Required; inheritable) A dictionary containing any resources required by the page. If the page requires no resources, the value of this entry should be an empty dictionary. Omitting the entry entirely indicates that the resources are to be inherited from an ancestor node in the page tree. (Required; inheritable) A rectangle, expressed in default user space units, defining the boundaries of the physical medium on which the page is intended to be displayed or printed. (Optional; inheritable) A rectangle, expressed in default user space units, defining the visible region of default user space. When the page is displayed or printed, its contents are to be clipped (cropped) to this rectangle and then imposed on the output medium in some implementation defined manner. Default value: the value of MediaBox. (Optional; inheritable) The number of degrees by which the page should be rotated clockwise when displayed or printed. The value must be a multiple of 90. Default value: 0. Values inherited from a parent in the parent chain of a page tree. Represents the pages of the document. Gets the number of pages. Gets the page with the specified index. Finds a page by its id. Transforms it to PdfPage if necessary. Creates a new PdfPage, adds it to the end of this document, and returns it. Adds the specified PdfPage to the end of this document and maybe returns a new PdfPage object. The value returned is a new object if the added page comes from a foreign document. Creates a new PdfPage, inserts it at the specified position into this document, and returns it. Inserts the specified PdfPage at the specified position to this document and maybe returns a new PdfPage object. The value returned is a new object if the inserted page comes from a foreign document. Inserts pages of the specified document into this document. The index in this document where to insert the page . The document to be inserted. The index of the first page to be inserted. The number of pages to be inserted. Inserts all pages of the specified document into this document. The index in this document where to insert the page . The document to be inserted. Inserts all pages of the specified document into this document. The index in this document where to insert the page . The document to be inserted. The index of the first page to be inserted. Removes the specified page from the document. Removes the specified page from the document. Moves a page within the page sequence. The page index before this operation. The page index after this operation. Imports an external page. The elements of the imported page are cloned and added to this document. Important: In contrast to PdfFormXObject adding an external page always make a deep copy of their transitive closure. Any reuse of already imported objects is not intended because any modification of an imported page must not change another page. Helper function for ImportExternalPage. Gets a PdfArray containing all pages of this document. The array must not be modified. Replaces the page tree by a flat array of indirect references to the pages objects. Recursively converts the page tree into a flat array. Prepares the document for saving. Gets the enumerator. Predefined keys of this dictionary. (Required) The type of PDF object that this dictionary describes; must be Pages for a page tree node. (Required except in root node; must be an indirect reference) The page tree node that is the immediate parent of this one. (Required) An array of indirect references to the immediate children of this node. The children may be page objects or other page tree nodes. (Required) The number of leaf nodes (page objects) that are descendants of this node within the page tree. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents a direct real value. Initializes a new instance of the class. Initializes a new instance of the class. The value. Gets the value as double. Returns the real number as string. Writes the real value with up to three digits. Represents an indirect real value. This type is not used by PDFsharp. If it is imported from an external PDF file, the value is converted into a direct object. Initializes a new instance of the class. Initializes a new instance of the class. The value. Initializes a new instance of the class. The document. The value. Gets or sets the value. Returns the real as a culture invariant string. Writes the real literal. Represents a PDF rectangle value, that is internally an array with 4 real values. Initializes a new instance of the PdfRectangle class. Initializes a new instance of the PdfRectangle class with two points specifying two diagonally opposite corners. Notice that in contrast to GDI+ convention the 3rd and the 4th parameter specify a point and not a width. This is so much confusing that this function is for internal use only. Initializes a new instance of the PdfRectangle class with two points specifying two diagonally opposite corners. Initializes a new instance of the PdfRectangle class with the specified location and size. Initializes a new instance of the PdfRectangle class with the specified XRect. Initializes a new instance of the PdfRectangle class with the specified PdfArray. Clones this instance. Implements cloning this instance. Tests whether all coordinate are zero. Tests whether the specified object is a PdfRectangle and has equal coordinates. Serves as a hash function for a particular type. Tests whether two structures have equal coordinates. Tests whether two structures differ in one or more coordinates. Gets or sets the x-coordinate of the first corner of this PdfRectangle. Gets or sets the y-coordinate of the first corner of this PdfRectangle. Gets or sets the x-coordinate of the second corner of this PdfRectangle. Gets or sets the y-coordinate of the second corner of this PdfRectangle. Gets X2 - X1. Gets Y2 - Y1. Gets or sets the coordinates of the first point of this PdfRectangle. Gets or sets the size of this PdfRectangle. Determines if the specified point is contained within this PdfRectangle. Determines if the specified point is contained within this PdfRectangle. Determines if the rectangular region represented by rect is entirely contained within this PdfRectangle. Determines if the rectangular region represented by rect is entirely contained within this PdfRectangle. Returns the rectangle as an XRect object. Returns the rectangle as a string in the form «[x1 y1 x2 y2]». Writes the rectangle. Gets the DebuggerDisplayAttribute text. Represents an empty PdfRectangle. Represents the cross-reference table of a PDF document. It contains all indirect objects of a document. Represents the relation between PdfObjectID and PdfReference for a PdfDocument. Adds a cross reference entry to the table. Used when parsing the trailer. Adds a PdfObject to the table. Gets a cross reference entry from an object identifier. Returns null if no object with the specified ID exists in the object table. Indicates whether the specified object identifier is in the table. Returns the next free object number. Writes the xref section in pdf stream. Gets an array of all object identifier. For debugging purposes only. Gets an array of all cross references in ascending order by their object identifier. Removes all objects that cannot be reached from the trailer. Returns the number of removed objects. Renumbers the objects starting at 1. Checks the logical consistence for debugging purposes (useful after reconstruction work). Calculates the transitive closure of the specified PdfObject, i.e. all indirect objects recursively reachable from the specified object. Calculates the transitive closure of the specified PdfObject with the specified depth, i.e. all indirect objects recursively reachable from the specified object in up to maximally depth steps. Gets the cross reference to an objects used for undefined indirect references. Determines the encoding of a PdfString or PdfStringObject. The characters of the string are actually bytes with an unknown or context specific meaning or encoding. With this encoding the 8 high bits of each character is zero. Not yet used by PDFsharp. The characters of the string are actually bytes with PDF document encoding. With this encoding the 8 high bits of each character is zero. The characters of the string are actually bytes with Windows ANSI encoding. With this encoding the 8 high bits of each character is zero. Not yet used by PDFsharp. Not yet used by PDFsharp. The characters of the string are Unicode characters. Internal wrapper for PdfStringEncoding. Represents a direct text string value. Initializes a new instance of the class. Initializes a new instance of the class. The value. Initializes a new instance of the class. The value. The encoding. Gets the number of characters in this string. Gets the encoding. Gets a value indicating whether the string is a hexadecimal literal. Gets the string value. Gets or sets the string value for encryption purposes. Returns the string. Hack for document encoded bookmarks. Writes the string DocEncoded. Represents an indirect text string value. This type is not used by PDFsharp. If it is imported from an external PDF file, the value is converted into a direct object. Initializes a new instance of the class. Initializes a new instance of the class. The document. The value. Initializes a new instance of the class. The value. The encoding. Gets the number of characters in this string. Gets or sets the encoding. Gets a value indicating whether the string is a hexadecimal literal. Gets or sets the value as string Gets or sets the string value for encryption purposes. Returns the string. Writes the string literal with encoding DOCEncoded. Represents a direct unsigned integer value. Initializes a new instance of the class. Initializes a new instance of the class. Gets the value as integer. Returns the unsigned integer as string. Writes the integer as string. Converts the value of this instance to an equivalent 64-bit unsigned integer. Converts the value of this instance to an equivalent 8-bit signed integer. Converts the value of this instance to an equivalent double-precision floating-point number. Returns an undefined DateTime structure. Converts the value of this instance to an equivalent single-precision floating-point number. Converts the value of this instance to an equivalent Boolean value. Converts the value of this instance to an equivalent 32-bit signed integer. Converts the value of this instance to an equivalent 16-bit unsigned integer. Converts the value of this instance to an equivalent 16-bit signed integer. Converts the value of this instance to an equivalent . Converts the value of this instance to an equivalent 8-bit unsigned integer. Converts the value of this instance to an equivalent Unicode character. Converts the value of this instance to an equivalent 64-bit signed integer. Returns type code for 32-bit integers. Converts the value of this instance to an equivalent number. Returns null. Converts the value of this instance to an equivalent 32-bit unsigned integer. Represents an indirect integer value. This type is not used by PDFsharp. If it is imported from an external PDF file, the value is converted into a direct object. Initializes a new instance of the class. Initializes a new instance of the class. The value. Initializes a new instance of the class. The document. The value. Gets the value as unsigned integer. Returns the integer as string. Writes the integer literal. Represents the PDF document viewer preferences dictionary. Initializes a new instance of the class. Gets or sets a value indicating whether to hide the viewer application’s tool bars when the document is active. Gets or sets a value indicating whether to hide the viewer application’s menu bar when the document is active. Gets or sets a value indicating whether to hide user interface elements in the document’s window (such as scroll bars and navigation controls), leaving only the document’s contents displayed. Gets or sets a value indicating whether to resize the document’s window to fit the size of the first displayed page. Gets or sets a value indicating whether to position the document’s window in the center of the screen. Gets or sets a value indicating whether the window’s title bar should display the document title taken from the Title entry of the document information dictionary. If false, the title bar should instead display the name of the PDF file containing the document. The predominant reading order for text: LeftToRight or RightToLeft (including vertical writing systems, such as Chinese, Japanese, and Korean). This entry has no direct effect on the document’s contents or page numbering but can be used to determine the relative positioning of pages when displayed side by side or printed n-up. Default value: LeftToRight. Predefined keys of this dictionary. (Optional) A flag specifying whether to hide the viewer application’s tool bars when the document is active. Default value: false. (Optional) A flag specifying whether to hide the viewer application’s menu bar when the document is active. Default value: false. (Optional) A flag specifying whether to hide user interface elements in the document’s window (such as scroll bars and navigation controls), leaving only the document’s contents displayed. Default value: false. (Optional) A flag specifying whether to resize the document’s window to fit the size of the first displayed page. Default value: false. (Optional) A flag specifying whether to position the document’s window in the center of the screen. Default value: false. (Optional; PDF 1.4) A flag specifying whether the window’s title bar should display the document title taken from the Title entry of the document information dictionary. If false, the title bar should instead display the name of the PDF file containing the document. Default value: false. (Optional) The document’s page mode, specifying how to display the document on exiting full-screen mode: UseNone Neither document outline nor thumbnail images visible UseOutlines Document outline visible UseThumbs Thumbnail images visible UseOC Optional content group panel visible This entry is meaningful only if the value of the PageMode entry in the catalog dictionary is FullScreen; it is ignored otherwise. Default value: UseNone. (Optional; PDF 1.3) The predominant reading order for text: L2R Left to right R2L Right to left (including vertical writing systems, such as Chinese, Japanese, and Korean) This entry has no direct effect on the document’s contents or page numbering but can be used to determine the relative positioning of pages when displayed side by side or printed n-up. Default value: L2R. (Optional; PDF 1.4) The name of the page boundary representing the area of a page to be displayed when viewing the document on the screen. The value is the key designating the relevant page boundary in the page object. If the specified page boundary is not defined in the page object, its default value is used. Default value: CropBox. Note: This entry is intended primarily for use by prepress applications that interpret or manipulate the page boundaries as described in Section 10.10.1, “Page Boundaries.” Most PDF consumer applications disregard it. (Optional; PDF 1.4) The name of the page boundary to which the contents of a page are to be clipped when viewing the document on the screen. The value is the key designating the relevant page boundary in the page object. If the specified page boundary is not defined in the page object, its default value is used. Default value: CropBox. Note: This entry is intended primarily for use by prepress applications that interpret or manipulate the page boundaries as described in Section 10.10.1, “Page Boundaries.” Most PDF consumer applications disregard it. (Optional; PDF 1.4) The name of the page boundary representing the area of a page to be rendered when printing the document. The value is the key designating the relevant page boundary in the page object. If the specified page boundary is not defined in the page object, its default value is used. Default value: CropBox. Note: This entry is intended primarily for use by prepress applications that interpret or manipulate the page boundaries as described in Section 10.10.1, “Page Boundaries.” Most PDF consumer applications disregard it. (Optional; PDF 1.4) The name of the page boundary to which the contents of a page are to be clipped when printing the document. The value is the key designating the relevant page boundary in the page object. If the specified page boundary is not defined in the page object, its default value is used. Default value: CropBox. Note: This entry is intended primarily for use by prepress applications that interpret or manipulate the page boundaries. Most PDF consumer applications disregard it. (Optional; PDF 1.6) The page scaling option to be selected when a print dialog is displayed for this document. Valid values are None, which indicates that the print dialog should reflect no page scaling, and AppDefault, which indicates that applications should use the current print scaling. If this entry has an unrecognized value, applications should use the current print scaling. Default value: AppDefault. Note: If the print dialog is suppressed and its parameters are provided directly by the application, the value of this entry should still be used. Gets the KeysMeta for these keys. Gets the KeysMeta of this dictionary type. Represents trim margins added to the page. Sets all four crop margins simultaneously. Gets or sets the left crop margin. Gets or sets the right crop margin. Gets or sets the top crop margin. Gets or sets the bottom crop margin. Gets a value indicating whether this instance has at least one margin with a value other than zero. Base namespace of PDFsharp. Most classes are implemented in nested namespaces like e. g. PdfSharp.Pdf. Specifies the orientation of a page. The default page orientation. The width and height of the page are reversed. Identifies the most popular predefined page sizes. The width or height of the page are set manually and override the PageSize property. Identifies a paper sheet size of 841 mm times 1189 mm or 33.11 inch times 46.81 inch. Identifies a paper sheet size of 594 mm times 841 mm or 23.39 inch times 33.1 inch. Identifies a paper sheet size of 420 mm times 594 mm or 16.54 inch times 23.29 inch. Identifies a paper sheet size of 297 mm times 420 mm or 11.69 inch times 16.54 inch. Identifies a paper sheet size of 210 mm times 297 mm or 8.27 inch times 11.69 inch. Identifies a paper sheet size of 148 mm times 210 mm or 5.83 inch times 8.27 inch. Identifies a paper sheet size of 860 mm times 1220 mm. Identifies a paper sheet size of 610 mm times 860 mm. Identifies a paper sheet size of 430 mm times 610 mm. Identifies a paper sheet size of 305 mm times 430 mm. Identifies a paper sheet size of 215 mm times 305 mm. Identifies a paper sheet size of 153 mm times 215 mm. Identifies a paper sheet size of 1000 mm times 1414 mm or 39.37 inch times 55.67 inch. Identifies a paper sheet size of 707 mm times 1000 mm or 27.83 inch times 39.37 inch. Identifies a paper sheet size of 500 mm times 707 mm or 19.68 inch times 27.83 inch. Identifies a paper sheet size of 353 mm times 500 mm or 13.90 inch times 19.68 inch. Identifies a paper sheet size of 250 mm times 353 mm or 9.84 inch times 13.90 inch. Identifies a paper sheet size of 176 mm times 250 mm or 6.93 inch times 9.84 inch. Identifies a paper sheet size of 10 inch times 8 inch or 254 mm times 203 mm. Identifies a paper sheet size of 13 inch times 8 inch or 330 mm times 203 mm. Identifies a paper sheet size of 10.5 inch times 7.25 inch or 267 mm times 184 mm. Identifies a paper sheet size of 10.5 inch times 8 inch 267 mm times 203 mm. Identifies a paper sheet size of 11 inch times 8.5 inch 279 mm times 216 mm. Identifies a paper sheet size of 14 inch times 8.5 inch 356 mm times 216 mm. Identifies a paper sheet size of 17 inch times 11 inch or 432 mm times 279 mm. Identifies a paper sheet size of 17 inch times 11 inch or 432 mm times 279 mm. Identifies a paper sheet size of 19.25 inch times 15.5 inch 489 mm times 394 mm. 20 ×Identifies a paper sheet size of 20 inch times 15 inch or 508 mm times 381 mm. Identifies a paper sheet size of 21 inch times 16.5 inch 533 mm times 419 mm. Identifies a paper sheet size of 22.5 inch times 17.5 inch 572 mm times 445 mm. Identifies a paper sheet size of 23 inch times 18 inch or 584 mm times 457 mm. Identifies a paper sheet size of 25 inch times 20 inch or 635 mm times 508 mm. Identifies a paper sheet size of 28 inch times 23 inch or 711 mm times 584 mm. Identifies a paper sheet size of 35 inch times 23.5 inch or 889 mm times 597 mm. Identifies a paper sheet size of 45 inch times 35 inch 1143 times 889 mm. Identifies a paper sheet size of 8.5 inch times 5.5 inch or 216 mm times 396 mm. Identifies a paper sheet size of 8.5 inch times 13 inch or 216 mm times 330 mm. Identifies a paper sheet size of 5.5 inch times 8.5 inch or 396 mm times 216 mm. Identifies a paper sheet size of 10 inch times 14 inch. Represents IDs for error and diagnostic messages generated by PDFsharp. PSMsgID. PSMsgID. PSMsgID. PSMsgID. PSMsgID. PSMsgID. Converter from to . Converts the specified page size enumeration to a pair of values in point. Base class of all exceptions in the PDFsharp frame work. Initializes a new instance of the class. Initializes a new instance of the class. The exception message. Initializes a new instance of the class. The exception message. The inner exception. Version info base for all PDFsharp related assemblies. The title of the product. A characteristic description of the product. The PDF producer information string. TODO: Called Creator in MigraDoc??? The PDF producer information string including VersionPatch. The full version number. The full version string. The home page of this product. Unused. The company that created/owned the product. The name the product. The copyright information. The trademark the product. Unused. The major version number of the product. The minor version number of the product. The build number of the product. The patch number of the product. The Version Prerelease String for NuGet. E.g. "2005-01-01", for use in NuGet Script. Use _ instead of blanks and special characters. Can be complemented with a suffix in the NuGet Script. Nuspec Doc: The unique identifier for the package. This is the package name that is shown when packages are listed using the Package Manager Console. These are also used when installing a package using the Install-Package command within the Package Manager Console. Package IDs may not contain any spaces or characters that are invalid in an URL. In general, they follow the same rules as .NET namespaces do. So Foo.Bar is a valid ID, Foo! and Foo Bar are not. Nuspec Doc: The human-friendly title of the package displayed in the Manage NuGet Packages dialog. If none is specified, the ID is used instead. Nuspec Doc: A comma-separated list of authors of the package code. Nuspec Doc: A comma-separated list of the package creators. This is often the same list as in authors. This is ignored when uploading the package to the NuGet.org Gallery. Nuspec Doc: A long description of the package. This shows up in the right pane of the Add Package Dialog as well as in the Package Manager Console when listing packages using the Get-Package command. Nuspec Doc: A description of the changes made in each release of the package. This field only shows up when the _Updates_ tab is selected and the package is an update to a previously installed package. It is displayed where the Description would normally be displayed. Nuspec Doc: A short description of the package. If specified, this shows up in the middle pane of the Add Package Dialog. If not specified, a truncated version of the description is used instead. Nuspec Doc: The locale ID for the package, such as en-us. Nuspec Doc: A URL for the home page of the package. http://www.pdfsharp.net/NuGetPackage_PDFsharp-GDI.ashx http://www.pdfsharp.net/NuGetPackage_PDFsharp-WPF.ashx Nuspec Doc: A URL for the image to use as the icon for the package in the Manage NuGet Packages dialog box. This should be a 32x32-pixel .png file that has a transparent background. Nuspec Doc: A link to the license that the package is under. Nuspec Doc: A Boolean value that specifies whether the client needs to ensure that the package license (described by licenseUrl) is accepted before the package is installed. Nuspec Doc: A space-delimited list of tags and keywords that describe the package. This information is used to help make sure users can find the package using searches in the Add Package Reference dialog box or filtering in the Package Manager Console window. The technology tag of the product: (none) Pure .NET -gdi : GDI+, -wpf : WPF, -hybrid : Both GDI+ and WPF (hybrid). -sl : Silverlight -wp : Windows Phone -wrt : Windows RunTime The Pdf-Sharp-String-Resources. Loads the message from the resource associated with the enum type and formats it using 'String.Format'. Because this function is intended to be used during error handling it never raises an exception. The type of the parameter identifies the resource and the name of the enum identifies the message in the resource. Parameters passed through 'String.Format'. The formatted message. Gets the localized message identified by the specified DomMsgID. Gets the resource manager for this module. Writes all messages defined by PSMsgID. Version info of this assembly. Computes Adler32 checksum for a stream of data. An Adler32 checksum is not as reliable as a CRC32 checksum, but a lot faster to compute. The specification for Adler32 may be found in RFC 1950. ZLIB Compressed Data Format Specification version 3.3) From that document: "ADLER32 (Adler-32 checksum) This contains a checksum value of the uncompressed data (excluding any dictionary data) computed according to Adler-32 algorithm. This algorithm is a 32-bit extension and improvement of the Fletcher algorithm, used in the ITU-T X.224 / ISO 8073 standard. Adler-32 is composed of two sums accumulated per byte: s1 is the sum of all bytes, s2 is the sum of all s1 values. Both sums are done modulo 65521. s1 is initialized to 1, s2 to zero. The Adler-32 checksum is stored as s2*65536 + s1 in most- significant-byte first (network) order." "8.2. The Adler-32 algorithm The Adler-32 algorithm is much faster than the CRC32 algorithm yet still provides an extremely low probability of undetected errors. The modulo on unsigned long accumulators can be delayed for 5552 bytes, so the modulo operation time is negligible. If the bytes are a, b, c, the second sum is 3a + 2b + c + 3, and so is position and order sensitive, unlike the first sum, which is just a checksum. That 65521 is prime is important to avoid a possible large class of two-byte errors that leave the check unchanged. (The Fletcher checksum uses 255, which is not prime and which also makes the Fletcher check insensitive to single byte changes 0 - 255.) The sum s1 is initialized to 1 instead of zero to make the length of the sequence part of s2, so that the length does not have to be checked separately. (Any sequence of zeroes has a Fletcher checksum of zero.)" largest prime smaller than 65536 Returns the Adler32 data checksum computed so far. Creates a new instance of the Adler32 class. The checksum starts off with a value of 1. Resets the Adler32 checksum to the initial value. Updates the checksum with a byte value. The data value to add. The high byte of the int is ignored. Updates the checksum with an array of bytes. The source of the data to update with. Updates the checksum with the bytes taken from the array. an array of bytes the start of the data used for this update the number of bytes to use for this update Generate a table for a byte-wise 32-bit CRC calculation on the polynomial: x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1. Polynomials over GF(2) are represented in binary, one bit per coefficient, with the lowest powers in the most significant bit. Then adding polynomials is just exclusive-or, and multiplying a polynomial by x is a right shift by one. If we call the above polynomial p, and represent a byte as the polynomial q, also with the lowest power in the most significant bit (so the byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, where a mod b means the remainder after dividing a by b. This calculation is done using the shift-register method of multiplying and taking the remainder. The register is initialized to zero, and for each incoming bit, x^32 is added mod p to the register if the bit is a one (where x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by x (which is shifting right by one and adding x^32 mod p if the bit shifted out is a one). We start with the highest power (least significant bit) of q and repeat for all eight bits of q. The table is simply the CRC of all possible eight bit values. This is all the information needed to generate CRC's on data a byte at a time for all combinations of CRC register values and incoming bytes. The crc data checksum so far. Returns the CRC32 data checksum computed so far. Resets the CRC32 data checksum as if no update was ever called. Updates the checksum with the int bval. the byte is taken as the lower 8 bits of value Updates the checksum with the bytes taken from the array. buffer an array of bytes Adds the byte array to the data checksum. The buffer which contains the data The offset in the buffer where the data starts The number of data bytes to update the CRC with. Interface to compute a data checksum used by checked input/output streams. A data checksum can be updated by one byte or with a byte array. After each update the value of the current checksum can be returned by calling getValue. The complete checksum object can also be reset so it can be used again with new data. Returns the data checksum computed so far. Resets the data checksum as if no update was ever called. Adds one byte to the data checksum. the data value to add. The high byte of the int is ignored. Updates the data checksum with the bytes taken from the array. buffer an array of bytes Adds the byte array to the data checksum. The buffer which contains the data The offset in the buffer where the data starts the number of data bytes to add. SharpZipBaseException is the base exception class for the SharpZipLibrary. All library exceptions are derived from this. NOTE: Not all exceptions thrown will be derived from this class. A variety of other exceptions are possible for example Initializes a new instance of the SharpZipBaseException class. Initializes a new instance of the SharpZipBaseException class with a specified error message. A message describing the exception. Initializes a new instance of the SharpZipBaseException class with a specified error message and a reference to the inner exception that is the cause of this exception. A message describing the exception. The inner exception This is the Deflater class. The deflater class compresses input with the deflate algorithm described in RFC 1951. It has several compression levels and three different strategies described below. This class is not thread safe. This is inherent in the API, due to the split of deflate and setInput. Author of the original java version: Jochen Hoenicke The best and slowest compression level. This tries to find very long and distant string repetitions. The worst but fastest compression level. The default compression level. This level won't compress at all but output uncompressed blocks. The compression method. This is the only method supported so far. There is no need to use this constant at all. Creates a new deflater with default compression level. Creates a new deflater with given compression level. the compression level, a value between NO_COMPRESSION and BEST_COMPRESSION, or DEFAULT_COMPRESSION. if lvl is out of range. Creates a new deflater with given compression level. the compression level, a value between NO_COMPRESSION and BEST_COMPRESSION. true, if we should suppress the Zlib/RFC1950 header at the beginning and the adler checksum at the end of the output. This is useful for the GZIP/PKZIP formats. if lvl is out of range. Resets the deflater. The deflater acts afterwards as if it was just created with the same compression level and strategy as it had before. Gets the current adler checksum of the data that was processed so far. Gets the number of input bytes processed so far. Gets the number of output bytes so far. Flushes the current input block. Further calls to deflate() will produce enough output to inflate everything in the current input block. This is not part of Sun's JDK so I have made it package private. It is used by DeflaterOutputStream to implement flush(). Finishes the deflater with the current input block. It is an error to give more input after this method was called. This method must be called to force all bytes to be flushed. Returns true if the stream was finished and no more output bytes are available. Returns true, if the input buffer is empty. You should then call setInput(). NOTE: This method can also return true when the stream was finished. Sets the data which should be compressed next. This should be only called when needsInput indicates that more input is needed. If you call setInput when needsInput() returns false, the previous input that is still pending will be thrown away. The given byte array should not be changed, before needsInput() returns true again. This call is equivalent to setInput(input, 0, input.length). the buffer containing the input data. if the buffer was finished() or ended(). Sets the data which should be compressed next. This should be only called when needsInput indicates that more input is needed. The given byte array should not be changed, before needsInput() returns true again. the buffer containing the input data. the start of the data. the number of data bytes of input. if the buffer was Finish()ed or if previous input is still pending. Sets the compression level. There is no guarantee of the exact position of the change, but if you call this when needsInput is true the change of compression level will occur somewhere near before the end of the so far given input. the new compression level. Get current compression level Returns the current compression level Sets the compression strategy. Strategy is one of DEFAULT_STRATEGY, HUFFMAN_ONLY and FILTERED. For the exact position where the strategy is changed, the same as for SetLevel() applies. The new compression strategy. Deflates the current input block with to the given array. The buffer where compressed data is stored The number of compressed bytes added to the output, or 0 if either IsNeedingInput() or IsFinished returns true or length is zero. Deflates the current input block to the given array. Buffer to store the compressed data. Offset into the output array. The maximum number of bytes that may be stored. The number of compressed bytes added to the output, or 0 if either needsInput() or finished() returns true or length is zero. If Finish() was previously called. If offset or length don't match the array length. Sets the dictionary which should be used in the deflate process. This call is equivalent to setDictionary(dict, 0, dict.Length). the dictionary. if SetInput () or Deflate () were already called or another dictionary was already set. Sets the dictionary which should be used in the deflate process. The dictionary is a byte array containing strings that are likely to occur in the data which should be compressed. The dictionary is not stored in the compressed output, only a checksum. To decompress the output you need to supply the same dictionary again. The dictionary data The index where dictionary information commences. The number of bytes in the dictionary. If SetInput () or Deflate() were already called or another dictionary was already set. Compression level. If true no Zlib/RFC1950 headers or footers are generated The current state. The total bytes of output written. The pending output. The deflater engine. This class contains constants used for deflation. Set to true to enable debugging Written to Zip file to identify a stored block Identifies static tree in Zip file Identifies dynamic tree in Zip file Header flag indicating a preset dictionary for deflation Sets internal buffer sizes for Huffman encoding Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Strategies for deflater The default strategy This strategy will only allow longer string repetitions. It is useful for random data with a small character set. This strategy will not look for string repetitions at all. It only encodes with Huffman trees (which means, that more common characters get a smaller encoding. Low level compression engine for deflate algorithm which uses a 32K sliding window with secondary compression from Huffman/Shannon-Fano codes. Construct instance with pending buffer Pending buffer to use > Deflate drives actual compression of data True to flush input buffers Finish deflation with the current input. Returns true if progress has been made. Sets input data to be deflated. Should only be called when NeedsInput() returns true The buffer containing input data. The offset of the first byte of data. The number of bytes of data to use as input. Determines if more input is needed. Return true if input is needed via SetInput Set compression dictionary The buffer containing the dictionary data The offset in the buffer for the first byte of data The length of the dictionary data. Reset internal state Reset Adler checksum Get current value of Adler checksum Total data processed Get/set the deflate strategy Set the deflate level (0-9) The value to set the level to. Fill the window Inserts the current string in the head hash and returns the previous value for this hash. The previous hash value Find the best (longest) string in the window matching the string starting at strstart. Preconditions: strstart + MAX_MATCH <= window.length. True if a match greater than the minimum length is found Hashtable, hashing three characters to an index for window, so that window[index]..window[index+2] have this hash code. Note that the array should really be unsigned short, so you need to and the values with 0xffff. prev[index & WMASK] points to the previous index that has the same hash code as the string starting at index. This way entries with the same hash code are in a linked list. Note that the array should really be unsigned short, so you need to and the values with 0xffff. Points to the current character in the window. lookahead is the number of characters starting at strstart in window that are valid. So window[strstart] until window[strstart+lookahead-1] are valid characters. This array contains the part of the uncompressed stream that is of relevance. The current character is indexed by strstart. The current compression function. The input data for compression. The total bytes of input read. The offset into inputBuf, where input data starts. The end offset of the input data. The adler checksum This is the DeflaterHuffman class. This class is not thread safe. This is inherent in the API, due to the split of Deflate and SetInput. author of the original java version : Jochen Hoenicke Resets the internal state of the tree Check that all frequencies are zero At least one frequency is non-zero Set static codes and length new codes length for new codes Build dynamic codes and lengths Get encoded length Encoded length, the sum of frequencies * lengths Scan a literal or distance tree to determine the frequencies of the codes in the bit length tree. Write tree values Tree to write Pending buffer to use Construct instance with pending buffer Pending buffer to use Reset internal state Write all trees to pending buffer The number/rank of treecodes to send. Compress current buffer writing data to pending buffer Flush block to output with no compression Data to write Index of first byte to write Count of bytes to write True if this is the last block Flush block to output with compression Data to flush Index of first byte to flush Count of bytes to flush True if this is the last block Get value indicating if internal buffer is full true if buffer is full Add literal to buffer Literal value to add to buffer. Value indicating internal buffer is full Add distance code and length to literal and distance trees Distance code Length Value indicating if internal buffer is full Reverse the bits of a 16 bit value. Value to reverse bits Value with bits reversed This class stores the pending output of the Deflater. Author of the original java version: Jochen Hoenicke Construct instance with default buffer size Inflater is used to decompress data that has been compressed according to the "deflate" standard described in rfc1951. By default Zlib (rfc1950) headers and footers are expected in the input. You can use constructor public Inflater(bool noHeader) passing true if there is no Zlib header information The usage is as following. First you have to set some input with SetInput(), then Inflate() it. If inflate doesn't inflate any bytes there may be three reasons:
  • IsNeedingInput() returns true because the input buffer is empty. You have to provide more input with SetInput(). NOTE: IsNeedingInput() also returns true when, the stream is finished.
  • IsNeedingDictionary() returns true, you have to provide a preset dictionary with SetDictionary().
  • IsFinished returns true, the inflater has finished.
Once the first output byte is produced, a dictionary will not be needed at a later stage. Author of the original java version: John Leuner, Jochen Hoenicke
Copy lengths for literal codes 257..285 Extra bits for literal codes 257..285 Copy offsets for distance codes 0..29 Extra bits for distance codes These are the possible states for an inflater This variable contains the current state. The adler checksum of the dictionary or of the decompressed stream, as it is written in the header resp. footer of the compressed stream. Only valid if mode is DECODE_DICT or DECODE_CHKSUM. The number of bits needed to complete the current state. This is valid, if mode is DECODE_DICT, DECODE_CHKSUM, DECODE_HUFFMAN_LENBITS or DECODE_HUFFMAN_DISTBITS. True, if the last block flag was set in the last block of the inflated stream. This means that the stream ends after the current block. The total number of inflated bytes. The total number of bytes set with setInput(). This is not the value returned by the TotalIn property, since this also includes the unprocessed input. This variable stores the noHeader flag that was given to the constructor. True means, that the inflated stream doesn't contain a Zlib header or footer. Creates a new inflater or RFC1951 decompressor RFC1950/Zlib headers and footers will be expected in the input data Creates a new inflater. True if no RFC1950/Zlib header and footer fields are expected in the input data This is used for GZIPed/Zipped input. For compatibility with Sun JDK you should provide one byte of input more than needed in this case. Resets the inflater so that a new stream can be decompressed. All pending input and output will be discarded. Decodes a zlib/RFC1950 header. False if more input is needed. The header is invalid. Decodes the dictionary checksum after the deflate header. False if more input is needed. Decodes the huffman encoded symbols in the input stream. false if more input is needed, true if output window is full or the current block ends. if deflated stream is invalid. Decodes the adler checksum after the deflate stream. false if more input is needed. If checksum doesn't match. Decodes the deflated stream. false if more input is needed, or if finished. if deflated stream is invalid. Sets the preset dictionary. This should only be called, if needsDictionary() returns true and it should set the same dictionary, that was used for deflating. The getAdler() function returns the checksum of the dictionary needed. The dictionary. Sets the preset dictionary. This should only be called, if needsDictionary() returns true and it should set the same dictionary, that was used for deflating. The getAdler() function returns the checksum of the dictionary needed. The dictionary. The index into buffer where the dictionary starts. The number of bytes in the dictionary. No dictionary is needed. The adler checksum for the buffer is invalid Sets the input. This should only be called, if needsInput() returns true. the input. Sets the input. This should only be called, if needsInput() returns true. The source of input data The index into buffer where the input starts. The number of bytes of input to use. No input is needed. The index and/or count are wrong. Inflates the compressed stream to the output buffer. If this returns 0, you should check, whether IsNeedingDictionary(), IsNeedingInput() or IsFinished() returns true, to determine why no further output is produced. the output buffer. The number of bytes written to the buffer, 0 if no further output can be produced. if buffer has length 0. if deflated stream is invalid. Inflates the compressed stream to the output buffer. If this returns 0, you should check, whether needsDictionary(), needsInput() or finished() returns true, to determine why no further output is produced. the output buffer. the offset in buffer where storing starts. the maximum number of bytes to output. the number of bytes written to the buffer, 0 if no further output can be produced. if count is less than 0. if the index and / or count are wrong. if deflated stream is invalid. Returns true, if the input buffer is empty. You should then call setInput(). NOTE: This method also returns true when the stream is finished. Returns true, if a preset dictionary is needed to inflate the input. Returns true, if the inflater has finished. This means, that no input is needed and no output can be produced. Gets the adler checksum. This is either the checksum of all uncompressed bytes returned by inflate(), or if needsDictionary() returns true (and thus no output was yet produced) this is the adler checksum of the expected dictionary. the adler checksum. Gets the total number of output bytes returned by Inflate(). the total number of output bytes. Gets the total number of processed compressed input bytes. The total number of bytes of processed input bytes. Gets the number of unprocessed input bytes. Useful, if the end of the stream is reached and you want to further process the bytes after the deflate stream. The number of bytes of the input which have not been processed. Huffman tree used for inflation Literal length tree Distance tree Constructs a Huffman tree from the array of code lengths. the array of code lengths Reads the next symbol from input. The symbol is encoded using the huffman tree. input the input source. the next symbol, or -1 if not enough input is available. This class is general purpose class for writing data to a buffer. It allows you to write bits as well as bytes Based on DeflaterPending.java Author of the original java version: Jochen Hoenicke Internal work buffer construct instance using default buffer size of 4096 construct instance using specified buffer size size to use for internal buffer Clear internal state/buffers Write a byte to buffer The value to write Write a short value to buffer LSB first The value to write. write an integer LSB first The value to write. Write a block of data to buffer data to write offset of first byte to write number of bytes to write The number of bits written to the buffer Align internal buffer on a byte boundary Write bits to internal buffer source of bits number of bits to write Write a short value to internal buffer most significant byte first value to write Indicates if buffer has been flushed Flushes the pending buffer into the given output array. If the output array is to small, only a partial flush is done. The output array. The offset into output array. The maximum number of bytes to store. The number of bytes flushed. Convert internal buffer to byte array. Buffer is empty on completion The internal buffer contents converted to a byte array. A special stream deflating or compressing the bytes that are written to it. It uses a Deflater to perform actual deflating.
Authors of the original java version: Tom Tromey, Jochen Hoenicke
Creates a new DeflaterOutputStream with a default Deflater and default buffer size. the output stream where deflated output should be written. Creates a new DeflaterOutputStream with the given Deflater and default buffer size. the output stream where deflated output should be written. the underlying deflater. Creates a new DeflaterOutputStream with the given Deflater and buffer size. The output stream where deflated output is written. The underlying deflater to use The buffer size in bytes to use when deflating (minimum value 512) bufsize is less than or equal to zero. baseOutputStream does not support writing deflater instance is null Finishes the stream by calling finish() on the deflater. Not all input is deflated Get/set flag indicating ownership of the underlying stream. When the flag is true will close the underlying stream also. Allows client to determine if an entry can be patched after its added Get/set the password used for encryption. When set to null or if the password is empty no encryption is performed Encrypt a block of data Data to encrypt. NOTE the original contents of the buffer are lost Offset of first byte in buffer to encrypt Number of bytes in buffer to encrypt Initializes encryption keys based on given . The password. Encrypt a single byte The encrypted value Update encryption keys Deflates everything in the input buffers. This will call def.deflate() until all bytes from the input buffers are processed. Gets value indicating stream can be read from Gets a value indicating if seeking is supported for this stream This property always returns false Get value indicating if this stream supports writing Get current length of stream Gets the current position within the stream. Any attempt to set position Sets the current position of this stream to the given value. Not supported by this class! The offset relative to the to seek. The to seek from. The new position in the stream. Any access Sets the length of this stream to the given value. Not supported by this class! The new stream length. Any access Read a byte from stream advancing position by one The byte read cast to an int. THe value is -1 if at the end of the stream. Any access Read a block of bytes from stream The buffer to store read data in. The offset to start storing at. The maximum number of bytes to read. The actual number of bytes read. Zero if end of stream is detected. Any access Asynchronous reads are not supported a NotSupportedException is always thrown The buffer to read into. The offset to start storing data at. The number of bytes to read The async callback to use. The state to use. Returns an Any access Asynchronous writes arent supported, a NotSupportedException is always thrown The buffer to write. The offset to begin writing at. The number of bytes to write. The to use. The state object. Returns an IAsyncResult. Any access Flushes the stream by calling Flush on the deflater and then on the underlying stream. This ensures that all bytes are flushed. Calls and closes the underlying stream when is true. Writes a single byte to the compressed output stream. The byte value. Writes bytes from an array to the compressed stream. The byte array The offset into the byte array where to start. The number of bytes to write. This buffer is used temporarily to retrieve the bytes from the deflater and write them to the underlying output stream. The deflater which is used to deflate the stream. Base stream the deflater depends on. An input buffer customised for use by The buffer supports decryption of incoming data. Initialise a new instance of with a default buffer size The stream to buffer. Initialise a new instance of The stream to buffer. The size to use for the buffer A minimum buffer size of 1KB is permitted. Lower sizes are treated as 1KB. Get the length of bytes bytes in the Get the contents of the raw data buffer. This may contain encrypted data. Get the number of useable bytes in Get the contents of the clear text buffer. Get/set the number of bytes available Call passing the current clear text buffer contents. The inflater to set input for. Fill the buffer from the underlying input stream. Read a buffer directly from the input stream The buffer to fill Returns the number of bytes read. Read a buffer directly from the input stream The buffer to read into The offset to start reading data into. The number of bytes to read. Returns the number of bytes read. Read clear text data from the input stream. The buffer to add data to. The offset to start adding data at. The number of bytes to read. Returns the number of bytes actually read. Read a from the input stream. Returns the byte read. Read an in little endian byte order. The short value read case to an int. Read an in little endian byte order. The int value read. Read a in little endian byte order. The long value read. This filter stream is used to decompress data compressed using the "deflate" format. The "deflate" format is described in RFC 1951. This stream may form the basis for other decompression filters, such as the GZipInputStream. Author of the original java version: John Leuner. Create an InflaterInputStream with the default decompressor and a default buffer size of 4KB. The InputStream to read bytes from Create an InflaterInputStream with the specified decompressor and a default buffer size of 4KB. The source of input data The decompressor used to decompress data read from baseInputStream Create an InflaterInputStream with the specified decompressor and the specified buffer size. The InputStream to read bytes from The decompressor to use Size of the buffer to use Get/set flag indicating ownership of underlying stream. When the flag is true will close the underlying stream also. The default value is true. Skip specified number of bytes of uncompressed data Number of bytes to skip The number of bytes skipped, zero if the end of stream has been reached The number of bytes to skip is less than or equal to zero. Clear any cryptographic state. Returns 0 once the end of the stream (EOF) has been reached. Otherwise returns 1. Fills the buffer with more data to decompress. Stream ends early Gets a value indicating whether the current stream supports reading Gets a value of false indicating seeking is not supported for this stream. Gets a value of false indicating that this stream is not writeable. A value representing the length of the stream in bytes. The current position within the stream. Throws a NotSupportedException when attempting to set the position Attempting to set the position Flushes the baseInputStream Sets the position within the current stream Always throws a NotSupportedException The relative offset to seek to. The defining where to seek from. The new position in the stream. Any access Set the length of the current stream Always throws a NotSupportedException The new length value for the stream. Any access Writes a sequence of bytes to stream and advances the current position This method always throws a NotSupportedException Thew buffer containing data to write. The offset of the first byte to write. The number of bytes to write. Any access Writes one byte to the current stream and advances the current position Always throws a NotSupportedException The byte to write. Any access Entry point to begin an asynchronous write. Always throws a NotSupportedException. The buffer to write data from Offset of first byte to write The maximum number of bytes to write The method to be called when the asynchronous write operation is completed A user-provided object that distinguishes this particular asynchronous write request from other requests An IAsyncResult that references the asynchronous write Any access Closes the input stream. When is true the underlying stream is also closed. Reads decompressed data into the provided buffer byte array The array to read and decompress data into The offset indicating where the data should be placed The number of bytes to decompress The number of bytes read. Zero signals the end of stream Inflater needs a dictionary Decompressor for this stream Input buffer for this stream. Base stream the inflater reads from. Flag indicating wether this instance has been closed or not. Flag indicating wether this instance is designated the stream owner. When closing if this flag is true the underlying stream is closed. Contains the output from the Inflation process. We need to have a window so that we can refer backwards into the output stream to repeat stuff.
Author of the original java version: John Leuner
Write a byte to this output window value to write if window is full Append a byte pattern already in the window itself length of pattern to copy distance from end of window pattern occurs If the repeated data overflows the window Copy from input manipulator to internal window source of data length of data to copy the number of bytes copied Copy dictionary to window source dictionary offset of start in source dictionary length of dictionary If window isnt empty Get remaining unfilled space in window Number of bytes left in window Get bytes available for output in window Number of bytes filled Copy contents of window to output buffer to copy to offset to start at number of bytes to count The number of bytes copied If a window underflow occurs Reset by clearing window so GetAvailable returns 0 This class allows us to retrieve a specified number of bits from the input buffer, as well as copy big byte blocks. It uses an int buffer to store up to 31 bits for direct manipulation. This guarantees that we can get at least 16 bits, but we only need at most 15, so this is all safe. There are some optimizations in this class, for example, you must never peek more than 8 bits more than needed, and you must first peek bits before you may drop them. This is not a general purpose class but optimized for the behaviour of the Inflater. Authors of the original java version: John Leuner, Jochen Hoenicke Constructs a default StreamManipulator with all buffers empty Get the next sequence of bits but don't increase input pointer. bitCount must be less or equal 16 and if this call succeeds, you must drop at least n - 8 bits in the next call. The number of bits to peek. the value of the bits, or -1 if not enough bits available. */ Drops the next n bits from the input. You should have called PeekBits with a bigger or equal n before, to make sure that enough bits are in the bit buffer. The number of bits to drop. Gets the next n bits and increases input pointer. This is equivalent to followed by , except for correct error handling. The number of bits to retrieve. the value of the bits, or -1 if not enough bits available. Gets the number of bits available in the bit buffer. This must be only called when a previous PeekBits() returned -1. the number of bits available. Gets the number of bytes available. The number of bytes available. Skips to the next byte boundary. Returns true when SetInput can be called Copies bytes from input buffer to output buffer starting at output[offset]. You have to make sure, that the buffer is byte aligned. If not enough bytes are available, copies fewer bytes. The buffer to copy bytes to. The offset in the buffer at which copying starts The length to copy, 0 is allowed. The number of bytes copied, 0 if no bytes were available. Length is less than zero Bit buffer isnt byte aligned Resets state and empties internal buffers Add more input for consumption. Only call when IsNeedingInput returns true data to be input offset of first byte of input number of bytes of input to add. Determines how entries are tested to see if they should use Zip64 extensions or not. Zip64 will not be forced on entries during processing. An entry can have this overridden if required ZipEntry.ForceZip64" Zip64 should always be used. #ZipLib will determine use based on entry values when added to archive. The kind of compression used for an entry in an archive A direct copy of the file contents is held in the archive Common Zip compression method using a sliding dictionary of up to 32KB and secondary compression from Huffman/Shannon-Fano trees An extension to deflate with a 64KB window. Not supported by #Zip currently BZip2 compression. Not supported by #Zip. WinZip special for AES encryption, Now supported by #Zip. Identifies the encryption algorithm used for an entry No encryption has been used. Encrypted using PKZIP 2.0 or 'classic' encryption. DES encryption has been used. RC2 encryption has been used for encryption. Triple DES encryption with 168 bit keys has been used for this entry. Triple DES with 112 bit keys has been used for this entry. AES 128 has been used for encryption. AES 192 has been used for encryption. AES 256 has been used for encryption. RC2 corrected has been used for encryption. Blowfish has been used for encryption. Twofish has been used for encryption. RC4 has been used for encryption. An unknown algorithm has been used for encryption. Defines the contents of the general bit flags field for an archive entry. Bit 0 if set indicates that the file is encrypted Bits 1 and 2 - Two bits defining the compression method (only for Method 6 Imploding and 8,9 Deflating) Bit 3 if set indicates a trailing data desciptor is appended to the entry data Bit 4 is reserved for use with method 8 for enhanced deflation Bit 5 if set indicates the file contains Pkzip compressed patched data. Requires version 2.7 or greater. Bit 6 if set indicates strong encryption has been used for this entry. Bit 7 is currently unused Bit 8 is currently unused Bit 9 is currently unused Bit 10 is currently unused Bit 11 if set indicates the filename and comment fields for this file must be encoded using UTF-8. Bit 12 is documented as being reserved by PKware for enhanced compression. Bit 13 if set indicates that values in the local header are masked to hide their actual values, and the central directory is encrypted. Used when encrypting the central directory contents. Bit 14 is documented as being reserved for use by PKware Bit 15 is documented as being reserved for use by PKware This class contains constants used for Zip format files The version made by field for entries in the central header when created by this library This is also the Zip version for the library when comparing against the version required to extract for an entry. See ZipEntry.CanDecompress. The version made by field for entries in the central header when created by this library This is also the Zip version for the library when comparing against the version required to extract for an entry. See ZipInputStream.CanDecompressEntry. The minimum version required to support strong encryption The minimum version required to support strong encryption Version indicating AES encryption The version required for Zip64 extensions (4.5 or higher) Size of local entry header (excluding variable length fields at end) Size of local entry header (excluding variable length fields at end) Size of Zip64 data descriptor Size of data descriptor Size of data descriptor Size of central header entry (excluding variable fields) Size of central header entry Size of end of central record (excluding variable fields) Size of end of central record (excluding variable fields) Size of 'classic' cryptographic header stored before any entry data Size of cryptographic header stored before entry data Signature for local entry header Signature for local entry header Signature for spanning entry Signature for spanning entry Signature for temporary spanning entry Signature for temporary spanning entry Signature for data descriptor This is only used where the length, Crc, or compressed size isnt known when the entry is created and the output stream doesnt support seeking. The local entry cannot be 'patched' with the correct values in this case so the values are recorded after the data prefixed by this header, as well as in the central directory. Signature for data descriptor This is only used where the length, Crc, or compressed size isnt known when the entry is created and the output stream doesnt support seeking. The local entry cannot be 'patched' with the correct values in this case so the values are recorded after the data prefixed by this header, as well as in the central directory. Signature for central header Signature for central header Signature for Zip64 central file header Signature for Zip64 central file header Signature for Zip64 central directory locator Signature for archive extra data signature (were headers are encrypted). Central header digitial signature Central header digitial signature End of central directory record signature End of central directory record signature Default encoding used for string conversion. 0 gives the default system OEM code page. Dont use unicode encodings if you want to be Zip compatible! Using the default code page isnt the full solution necessarily there are many variable factors, codepage 850 is often a good choice for European users, however be careful about compatibility. Convert a portion of a byte array to a string. Data to convert to string Number of bytes to convert starting from index 0 data[0]..data[count - 1] converted to a string Convert a byte array to string Byte array to convert dataconverted to a string Convert a byte array to string The applicable general purpose bits flags Byte array to convert The number of bytes to convert. dataconverted to a string Convert a byte array to string Byte array to convert The applicable general purpose bits flags dataconverted to a string Convert a string to a byte array String to convert to an array Converted array Convert a string to a byte array The applicable general purpose bits flags String to convert to an array Converted array Initialise default instance of ZipConstants Private to prevent instances being created. Represents exception conditions specific to Zip archive handling Initializes a new instance of the ZipException class. Initializes a new instance of the ZipException class with a specified error message. The error message that explains the reason for the exception. Initialise a new instance of ZipException. A message describing the error. The exception that is the cause of the current exception.