PdfSharp
Floating-point formatting.
Factor to convert from degree to radian measure.
Sine of the angle of 20° 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.
The one and only class that hold all PDFsharp global stuff.
Maps typeface key to glyph typeface.
Maps face name to OpenType font face.
Maps font source key to OpenType font face.
Maps font descriptor key to font descriptor which is currently only an OpenTypeFontDescriptor.
Maps typeface key (TFK) to font resolver info (FRI) and
maps font resolver key to font resolver info.
Maps typeface key or font name to font source.
Maps font source key (FSK) to font source.
The key is a simple hash code of the font face data.
Maps family name to internal font family.
The globally set custom font resolver.
The globally set fallback font resolver.
The font encoding default. Do not change.
Is true if FontEncoding was set by user code.
Gets the version of this instance.
Gets the version of this instance.
The global version count gives every new instance of Globals a new unique
version number.
The container of all global stuff in PDFsharp.
Some static helper functions for calculations.
Degree to radiant factor.
Get page size in point from specified PageSize.
Function invocation has no effect.
Returns a default value if necessary.
Logs a warning.
Logs an error.
Throws a NotSupportedException.
A bunch of internal helper functions.
Indirectly throws NotImplementedException.
Required because PDFsharp Release builds treat 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 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.
Get stretch and weight from a glyph typeface.
Some floating-point utilities. Partially taken from WPF.
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.
Throw helper class of PDFsharp.
Static locking functions to make PDFsharp thread save.
POSSIBLE BUG: Having more than one lock can lead to a deadlock.
Allows optional error handling without exceptions by assigning to a Nullable<SuppressExceptions> parameter.
Returns true, if an error occurred.
If suppressExceptions is set, its ErrorOccurred is set to true, otherwise throwException is invoked.
Returns true, if suppressExceptions is set and its ErrorOccurred is true.
Initializes a new instance of the class.
Initializes a new instance of the class.
Move to next token.
Move to next token.
A helper class for central configuration.
Resets PDFsharp to a state equivalent to the state after
the assemblies are loaded.
Resets the font management equivalent to the state after
the assemblies are loaded.
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.
Implementation 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 a 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 markers.
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.
TODO docDaSt
TODO docDaSt
TODO docDaSt
TODO docDaSt
TODO docDaSt
TODO docDaSt
TODO 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.
Gets or sets the number of columns.
Gets or sets the number of rows.
Gets or sets the text.
Gets or sets the MatrixImage.
Getter throws if MatrixImage is null.
Use HasMatrixImage to test if image was created.
MatrixImage throws if it is null. Here is a way to check if the image was created.
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 ratio between thick and 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 width shall be returned.
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.
Gets the owned memory stream. Can be null if no MemoryStream was created.
The imported image.
Initializes a new instance of the class.
Initializes a new instance of the class.
Gets information about the image.
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 exception on PrepareImageData().
Standard JPEG format (RGB).
Gray-scale JPEG format.
JPEG file with inverted CMYK, thus RGBW.
JPEG file with CMYK.
The width of the image in pixel.
The height of the image in pixel.
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 bit count per pixel. Only valid for certain images, will be 0 otherwise.
The colors used. Only valid for images with palettes, will be 0 otherwise.
The default DPI (dots per inch) for images that do not have DPI information.
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.
The class that imports images of various formats.
Gets the image importer.
Imports the image.
Imports the image.
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 for the CCITT format.
Gets the length.
Image data needed for Windows 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.
A quick check for PNG files, checking the first 16 bytes.
Read information from PNG image header.
Invoked for every chunk of the PNG file. Used to extract additional information.
Data imported from PNG files. Used to prepare the data needed for PDF.
Initializes a new instance of the class.
Image data needed for PDF bitmap images.
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 taking 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.
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.
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 pushes 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, balances the graphic state stack and removes the trailing line feed.
Begins the graphic mode (i.e. ends the text mode).
Begins the text mode (i.e. ends the graphic mode).
Makes the specified pen and brush the current graphics objects.
Makes the specified pen the current graphics object.
Makes the specified brush the current graphics object.
Makes the specified font and brush 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 less code than Tm.
The absolute text position.
The dy.
true if skewing for italic simulation is currently on.
Makes the specified image the current graphics object.
Realizes the current transformation matrix, if necessary.
Converts 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.
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.
Note that this enum was named XFontStyle in PDFsharp versions prior to 6.0.
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.
Rendering does not depend on a particular technology.
Renders using GDI+.
Renders using WPF.
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 is done above the existing graphic.
The new content is inserted before the old content, and any subsequent drawing is done beneath the existing graphic.
The new content entirely replaces the old content, and any subsequent drawing is done on a blank page.
Specifies the unit of measure.
Specifies a printer’s point (1/72 inch) as the unit of measure.
Specifies inch (2.54 cm) as the unit of measure.
Specifies millimeter as the unit of measure.
Specifies 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 anti-aliasing) 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 anti-aliasing.
Specifies anti-aliased 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.
Describes the simulation style of a font.
No font style simulation.
Bold style simulation.
Italic style simulation.
Bold and Italic style simulation.
Defines the direction an elliptical arc is drawn.
Specifies that arcs are drawn in a counterclockwise (negative-angle) direction.
Specifies that arcs are drawn in a clockwise (positive-angle) direction.
Helper class for Geometry paths.
Creates between 1 and 5 Bézier 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ézier 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.
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 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.
Creates and pushes a transformation matrix that maps from the source rect to the destination rect.
The container.
The dstrect.
The srcrect.
The unit.
Pops the current transformation matrix such that the transformation is as it was before BeginContainer.
The container.
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 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.
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.
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 an 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 empty 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.
Not yet implemented.
Name of the family.
The em size.
The style.
The weight.
The font stretch.
The PDF options.
The style simulations.
XFont
Initializes a new instance of the class.
Not yet implemented.
The typeface.
The em size.
The PDF options.
The style simulations.
XFont
Initializes a new instance of the class.
Not yet implemented.
The typeface.
The em size.
The PDF options.
The style simulations.
Initializes this instance by computing the glyph typeface, font family, font source and TrueType font face.
(PDFsharp currently only deals with TrueType fonts.)
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
too 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.
Indicates whether this XFont object is a symbol font.
Gets the PDF options of the font.
Indicates whether this XFont is encoded as Unicode.
Gets a value indicating whether text drawn with this font uses Unicode / CID encoding in the PDF document.
Gets a value indicating whether text drawn with this font uses ANSI encoding in the PDF document.
Gets a value indicating whether the font encoding is determined from the characters used in the text.
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.
Cache PdfFontTable.FontSelector to speed up finding the right PdfFont
if this font is used more than once.
Gets the DebuggerDisplayAttribute text.
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 singleton of font family;
Collects information of a physical font face.
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 thickness.
Gets the strikethrough position.
Gets the strikethrough thickness.
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.
Creates an XFontSource from a font file.
The path of the font file.
Creates a font source from a byte array.
Gets or sets the font face.
Gets the key that uniquely identifies this font source.
Gets the name of the font’s name table.
Gets the bytes of the font.
Returns a hash code for this instance.
Determines whether the specified object is equal to the current object.
The object to compare with the current object.
if the specified object is equal to the current object; otherwise, .
Gets the DebuggerDisplayAttribute text.
Describes the degree to which a font has been stretched compared to the normal aspect ratio of that font.
Creates a new instance of that corresponds to the OpenType usStretchClass value.
An integer value between one and nine that corresponds to the usStretchValue definition in the OpenType specification.
A new instance of .
Returns a value that represents the OpenType usStretchClass for this object.
An integer value between 1 and 999 that corresponds to the usStretchClass definition in the OpenType specification.
Compares two instances of objects.
The first object to compare.
The second object to compare.
An value that represents the relationship between the two instances of .
Evaluates two instances of to determine whether one instance is less than the other.
The first instance of to compare.
The second instance of to compare.
if is less than ; otherwise, .
Evaluates two instances of to determine whether one instance is less than or equal to the other.
The first instance of to compare.
The second instance of to compare.
if is less than or equal to ; otherwise, .
Evaluates two instances of to determine if one instance is greater than the other.
First instance of to compare.
Second instance of to compare.
if is greater than ; otherwise, .
Evaluates two instances of to determine whether one instance is greater than or equal to the other.
The first instance of to compare.
The second instance of to compare.
if is greater than or equal to ; otherwise, .
Compares two instances of for equality.
First instance of to compare.
Second instance of to compare.
when the specified objects are equal; otherwise, .
Evaluates two instances of to determine inequality.
The first instance of to compare.
The second instance of to compare.
if is equal to ; otherwise, .
Compares a object with the current object.
The instance of the object to compare for equality.
if two instances are equal; otherwise, .
Compares a with the current object.
The instance of the to compare for equality.
if two instances are equal; otherwise, .
Retrieves the hash code for this object.
An value representing the hash code for the object.
Creates a representation of the current object based on the current culture.
A value representation of the object.
Provides a set of static predefined values.
Specifies an ultra-condensed .
A value that represents an ultra-condensed .
Specifies an extra-condensed .
A value that represents an extra-condensed .
Specifies a condensed .
A value that represents a condensed .
Specifies a semi-condensed .
A value that represents a semi-condensed .
Specifies a normal .
A value that represents a normal .
Specifies a medium .
A value that represents a medium .
Specifies a semi-expanded .
A value that represents a semi-expanded .
Specifies an expanded .
A value that represents an expanded .
Specifies an extra-expanded .
A value that represents an extra-expanded .
Specifies an ultra-expanded .
A value that represents an ultra-expanded .
Defines a structure that represents the style of a font face as normal, italic, or oblique.
Note that this struct is new since PDFsharp 6.0. XFontStyle from prior version of PDFsharp is
renamed to XFontStyleEx.
Compares two instances of for equality.
The first instance of to compare.
The second instance of to compare.
to show the specified objects are equal; otherwise, .
Evaluates two instances of to determine inequality.
The first instance of to compare.
The second instance of to compare.
to show is equal to ; otherwise, .
Compares a with the current instance for equality.
An instance of to compare for equality.
to show the two instances are equal; otherwise, .
Compares an with the current instance for equality.
An value that represents the to compare for equality.
to show the two instances are equal; otherwise, .
Retrieves the hash code for this object.
A 32-bit hash code, which is a signed integer.
Creates a that represents the current object and is based on the property information.
A that represents the value of the object, such as "Normal", "Italic", or "Oblique".
Simple hack to make it work...
Returns Normal or Italic - bold, underline and such get lost here.
Provides a set of static predefined font style /> values.
Specifies a normal font style. />
Specifies an oblique font style.
Specifies an italic font style. />
Defines the density of a typeface, in terms of the lightness or heaviness of the strokes.
Gets the weight of the font, a value between 1 and 999.
Compares the specified font weights.
Implements the operator <.
Implements the operator <=.
Implements the operator >.
Implements the operator >=.
Implements the operator ==.
Implements the operator !=.
Determines whether the specified is equal to the current .
Determines whether the specified is equal to the current .
Serves as a hash function for this type.
Returns a that represents the current .
Simple hack to make it work...
Defines a set of static predefined XFontWeight values.
Specifies a "Thin" font weight.
Specifies an "ExtraLight" font weight.
Specifies an "UltraLight" font weight.
Specifies a "Light" font weight.
Specifies a "SemiLight" font weight.
Specifies a "Normal" font weight.
Specifies a "Regular" font weight.
Specifies a "Medium" font weight.
Specifies a "SemiBold" font weight.
Specifies a "DemiBold" font weight.
Specifies a "Bold" font weight.
Specifies a "ExtraBold" font weight.
Specifies a "UltraBold" font weight.
Specifies a "Heavy" font weight.
Specifies a "Black" font weight.
Specifies a "ExtraBlack" font weight.
Specifies a "UltraBlack" font weight.
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.
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 have already been drawn.
Specifies a physical font face that corresponds to a font file on the disk or in memory.
Initializes a new instance of the class by a font source.
Gets the font family of this glyph typeface.
Gets the font source of this glyph typeface.
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 a value indicating whether the style bold, italic, or both styles must be simulated.
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 human-readable key for a glyph typeface.
{family-name}/{(N)ormal | (O)blique | (I)talic}/{weight}/{stretch}|{(B)old|not (b)old}/{(I)talic|not (i)talic}:tk
e.g.: 'arial/N/400/500|B/i:tk'
Computes the bijective key for a typeface.
Gets a string that uniquely identifies an instance of XGlyphTypeface.
Gets the DebuggerDisplayAttribute text.
Defines a Brush with a linear gradient.
Gets or sets a value indicating whether to extend the gradient beyond its bounds.
Gets or sets a value indicating whether to extend the gradient beyond its bounds.
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 for a measure context.
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.
Commit renderEvents to allow RenderTextEvent calls.
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.
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 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 in the current page units.
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 rectangle with rounded corners.
Draws a rectangle with rounded corners.
Draws a rectangle with rounded corners.
Draws a rectangle with rounded corners.
Draws a rectangle with rounded corners.
Draws a rectangle with rounded 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 page in 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 chose
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.
Gets the content string builder of XGraphicsPdfRenderer, if it exists.
(This class is under construction.)
Currently used in MigraDoc only.
Gets the smallest rectangle in default page space units that completely encloses the specified rect
in world space units.
Gets a point in PDF 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 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, JPEG, or PDF file.
Creates an image from the specified stream.
The stream containing a BMP, PNG, JPEG, 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 DPI.
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 was 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.
Appends 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 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.
Get the size in point 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.
This class is out of order. Use a font resolver instead.
Defines a Brush with a radial gradient.
Initializes a new instance of the class.
Gets or sets an XMatrix that defines a local geometric transform for this RadialGradientBrush.
Gets or sets the inner radius.
Gets or sets the outer radius.
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.
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 four 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 union 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 XSize class with the specified values.
Determines whether two size objects are equal.
Determines whether two size objects are not equal.
Indicates whether these two instances 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 combination of XFontFamily, XFontWeight, XFontStyleEx, and XFontStretch.
Initializes a new instance of the class.
Name of the typeface.
Initializes a new instance of the class.
The font family of the typeface.
The style of the typeface.
The relative weight of the typeface.
The degree to which the typeface is stretched.
Gets the font family from which the typeface was constructed.
Gets the style of the Typeface.
Gets the relative weight of the typeface.
Gets the stretch value for the Typeface.
The stretch value determines whether a typeface is expanded or condensed when it is displayed.
Tries the get GlyphTypeface that corresponds to the Typeface.
The glyph typeface that corresponds to this typeface,
or null if the typeface was constructed from a composite font.
Gets the DebuggerDisplayAttribute text.
Represents a value and its unit of measure.
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 property Point
.
Gets the current value in Points.
Storing both Value and PointValue makes rendering more efficient.
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.
Converts an XUnit object to a double value as point.
Memberwise comparison checking the exact value und unit.
To compare by value tolerating rounding errors, use IsSameValue() or code like Math.Abs(a.Pt - b.Pt) < 1e-5.
Memberwise comparison checking exact value und unit.
To compare by value tolerating rounding errors, use IsSameValue() or code like Math.Abs(a.Pt - b.Pt) < 1e-5.
Compares two XUnit values.
Compares two XUnit values.
Compares two XUnit values.
Compares two XUnit values.
Returns the negative value of an XUnit.
Adds an XUnit to an XUnit.
Adds a string parsed as XUnit to an XUnit.
Subtracts an XUnit from an XUnit.
Subtracts a string parsed as Unit from an XUnit.
Multiplies an XUnit with a double.
Divides an XUnit by a double.
Compares this XUnit with another XUnit value.
Compares this XUnit with another object.
Compares the actual values of this XUnit and another XUnit value tolerating rounding errors.
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 value with a unit of measure in point (1/72 inch).
The structure converts implicitly from and to double.
Initializes a new instance of the XUnitPt class.
Gets or sets the raw value of the object, which is always measured in point for XUnitPt.
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 an XUnitPt object.
Returns an XUnitPt object. Converts the value to Point.
Returns an XUnitPt object. Converts the value to Point.
Returns an XUnitPt object. Converts the value to Point.
Returns an XUnitPt object. Converts the value to Point.
Converts a string to an XUnitPt object.
If the string contains a suffix like 'cm' or 'in' the value will be converted to point.
Converts an int to an XUnitPt object.
Converts a double to an XUnitPt object.
Converts an XUnitPt to a double value as point.
Converts an XUnit to an XUnitPt object.
Converts an XUnitPt to an XUnit object.
Memberwise comparison checking exact value.
To compare by value tolerating rounding errors, use IsSameValue() or code like Math.Abs(a.Pt - b.Pt) < 1e-5.
Memberwise comparison checking exact value.
To compare by value tolerating rounding errors, use IsSameValue() or code like Math.Abs(a.Pt - b.Pt) < 1e-5.
Compares two XUnitPt values.
Compares two XUnitPt values.
Compares two XUnitPt values.
Compares two XUnitPt values.
Returns the negative value of an XUnitPt.
Adds an XUnitPt to an XUnitPt.
Adds a string parsed as XUnitPt to an XUnitPt.
Subtracts an XUnitPt from an XUnitPt.
Subtracts a string parsed as UnitPt from an XUnitPt.
Multiplies an XUnitPt with a double.
Divides an XUnitPt by a double.
Compares this XUnitPt with another XUnitPt value.
Compares this XUnitPt with another object.
Compares the actual values of this XUnitPt and another XUnitPt value tolerating rounding errors.
Calls base class Equals.
Returns the hash code for this instance.
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.
It is a displacement in 2-D space.
Initializes a new instance of the struct.
The X-offset of the new Vector.
The Y-offset of the new Vector.
Compares two vectors for equality.
The first vector to compare.
The second vector to compare.
Compares two vectors for inequality.
The first vector to compare.
The second vector to compare.
Compares two vectors for equality.
The first vector to compare.
The second vector to compare.
Determines whether the specified Object is a Vector structure and,
if it is, whether it has the same X and Y values as this vector.
The vector to compare.
Compares two vectors for equality.
The vector to compare with this vector.
Returns the hash code for this instance.
Converts a string representation of a vector into the equivalent Vector structure.
The string representation of the vector.
Gets or sets the X component of this vector.
Gets or sets the Y component of this vector.
Returns the string representation of this Vector structure.
Returns the string representation of this Vector structure with the specified formatting information.
The culture-specific formatting information.
Gets the length of this vector.
Gets the square of the length of this vector.
Normalizes this vector.
Calculates the cross product of two vectors.
The first vector to evaluate.
The second vector to evaluate.
Retrieves the angle, expressed in degrees, between the two specified vectors.
The first vector to evaluate.
The second vector to evaluate.
Negates the specified vector.
The vector to negate.
Negates this vector. The vector has the same magnitude as before, but its direction is now opposite.
Adds two vectors and returns the result as a vector.
The first vector to add.
The second vector to add.
Adds two vectors and returns the result as a Vector structure.
The first vector to add.
The second vector to add.
Subtracts one specified vector from another.
The vector from which vector2 is subtracted.
The vector to subtract from vector1.
Subtracts the specified vector from another specified vector.
The vector from which vector2 is subtracted.
The vector to subtract from vector1.
Translates a point by the specified vector and returns the resulting point.
The vector used to translate point.
The point to translate.
Translates a point by the specified vector and returns the resulting point.
The vector used to translate point.
The point to translate.
Multiplies the specified vector by the specified scalar and returns the resulting vector.
The vector to multiply.
The scalar to multiply.
Multiplies the specified vector by the specified scalar and returns the resulting vector.
The vector to multiply.
The scalar to multiply.
Multiplies the specified scalar by the specified vector and returns the resulting vector.
The scalar to multiply.
The vector to multiply.
Multiplies the specified scalar by the specified vector and returns the resulting Vector.
The scalar to multiply.
The vector to multiply.
Divides the specified vector by the specified scalar and returns the resulting vector.
The vector to divide.
The scalar by which vector will be divided.
Divides the specified vector by the specified scalar and returns the result as a Vector.
The vector structure to divide.
The amount by which vector is divided.
Transforms the coordinate space of the specified vector using the specified Matrix.
The vector to transform.
The transformation to apply to vector.
Transforms the coordinate space of the specified vector using the specified Matrix.
The vector to transform.
The transformation to apply to vector.
Calculates the dot product of the two specified vector structures and returns the result as a Double.
The first vector to multiply.
The second vector to multiply.
Calculates the dot product of the two specified vectors and returns the result as a Double.
The first vector to multiply.
The second vector structure to multiply.
Calculates the determinant of two vectors.
The first vector to evaluate.
The second vector to evaluate.
Creates a Size from the offsets of this vector.
The vector to convert.
Creates a Point with the X and Y values of this vector.
The vector to convert.
Gets the DebuggerDisplayAttribute text.
The debugger display.
The event type of PageEvent.
A new page was created.
A page was moved.
A page was imported from another document.
A page was removed.
EventArgs for changes in the PdfPages of a document.
EventArgs for changes in the PdfPages of a document.
Gets or sets the affected page.
Gets or sets the page index of the affected page.
The event type of PageEvent.
EventHandler for OnPageAdded and OnPageRemoved.
The sender of the event.
The PageEventArgs of the event.
The action type of PageGraphicsEvent.
The XGraphics object for the page was created.
DrawString() was called on the page’s XGraphics object.
Another method drawing content was called on the page’s XGraphics object.
EventArgs for actions on a page’s XGraphics object.
EventArgs for actions on a page’s XGraphics object.
Gets the page that causes the event.
Gets the created XGraphics object.
The action type of PageGraphicsEvent.
EventHandler for OnPageGraphicsAction.
The sender of the event.
The PageGraphicsEventArgs of the event.
A class encapsulating all events of a PdfDocument.
An event raised if a page was added.
The sender of the event.
The PageEventArgs of the event.
EventHandler for OnPageAdded.
An event raised if a page was removes.
The sender of the event.
The PageEventArgs of the event.
EventHandler for OnPageRemoved.
An event raised if the XGraphics object of a page is created.
The sender of the event.
The PageGraphicsEventArgs of the event.
EventHandler for OnPageGraphicsCreated.
An event raised if something is drawn on a page’s XGraphics object.
The sender of the event.
The PageGraphicsEventArgs of the event.
EventHandler for OnPageGraphicsAction.
Base class for EventArgs in PDFsharp.
Base class for EventArgs in PDFsharp.
The source of the event.
EventArgs for RenderTextEvent.
EventArgs for RenderTextEvent.
Gets or sets a value indicating whether the determination of the glyph identifiers must be reevaluated.
An event handler set this property to true after it changed code points but does not set
the appropriate glyph identifier.
Gets the font used to draw the text.
The font cannot be changed in an event handler.
Gets or sets the array containing the code points and glyph indices.
An event handler can modify or replace this array.
EventHandler for DrawString and MeasureString.
Gives a document the opportunity to inspect or modify the UTF-32 code points with their corresponding
glyph identifiers before used for drawing or measuring text.
The sender of the event.
The RenderTextEventHandler of the event.
A class encapsulating all render events of a PdfDocument.
An event raised whenever text is drawn or measured in a PDF document.
The sender of the event.
The RenderTextEventArgs of the event.
EventHandler for RenderTextEvent.
A bunch of internal functions that do not have a better place.
Measure string directly from font data.
This function expects that the code run is ready to be measured.
The RenderEvent is not invoked.
Creates a typeface.
Calculates an Adler32 checksum combined with the buffer length
in a 64-bit unsigned integer.
Parameters that affect font selection.
A bunch of internal functions to handle Unicode.
Converts a UTF-16 string into an array of Unicode code points.
The string to be converted.
if set to true [coerce ANSI].
The non ANSI.
Converts a UTF-16 string into an array of code points of a symbol font.
Convert a surrogate pair to UTF-32 code point.
Similar to Char.ConvertToUtf32 but never throws an error.
Instead, returns 0 if one of the surrogates are invalid.
The high surrogate.
The low surrogate.
Filled by cmap type 4 and 12.
Glyph count is used for validating cmap contents.
If we discover that glyph index we are about to set or return is outside of glyph range,
we throw an exception.
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 glyph typefaces.
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.
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 code point from the BMP to the index of the corresponding glyph.
Returns 0 if no glyph exists for the specified character.
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.
Maps a Unicode character from outside the BMP to the index of the corresponding glyph.
Returns 0 if no glyph exists for the specified code point.
See OpenType spec "cmap - Character To Glyph Index Mapping Table /
Format 12: Segmented coverage"
for details about this a little bit strange looking algorithm.
Maps a Unicode code point to the index of the corresponding glyph.
Returns 0 if no glyph exists for the specified character.
Should only be called for code points that are not from BMP.
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.
Index 0 also returns a valid font specific width for the non-existing glyph.
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 code units of a UTF-16 string into the glyph identifier of this font.
If useAnsiCharactersOnly is true, only valid ANSI code units a taken into account.
All non-ANSI characters are skipped and not part of the result
Remaps a character of a symbol font.
Required to get the correct glyph identifier
from the cmap type 4 table.
Represents an OpenType font face 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.
Global table of all OpenType font faces cached by their face name and check sum.
Tries to get font face by its key.
Tries to get font face by its check sum.
Gets the DebuggerDisplayAttribute text.
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 are used by PDFsharp.
CMap format 4: Segment mapping to delta values.
The Windows standard format.
CMap format 12: Segmented coverage.
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.
Maps a Unicode code point to a glyph ID.
Collects all used glyph IDs. Value is not used.
The combination of a Unicode code point and the glyph index of this code point in a particular font face.
The combination of a Unicode code point and the glyph index of this code point in a particular font face.
The Unicode code point of the Character value.
The code point can be 0 to indicate that the original character is not a valid UTF-32 code unit.
This can happen when a string contains a single high or low surrogate without its counterpart.
The glyph index of the code point for a specific OpenType font.
The value is 0 if the specific font has no glyph for the code point.
Used in CORE build only if no custom FontResolver and no FallbackFontResolver set.
Mac OS? Other Linux???
Finds filename candidates recursively on Linux, as organizing fonts into arbitrary subdirectories is allowed.
Generates filename candidates for Linux systems.
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.
Provides functionality to map a font face request to a physical font.
Converts specified information about a required typeface into a specific font face.
Name of the font family.
The font resolving options.
Typeface key if already known by caller, null otherwise.
Use the fallback font resolver instead of regular one.
Information about the typeface, or null if no typeface can be found.
Register resolver info and font source for a custom font resolver .
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.
Global cache of all internal font family objects.
Caches the font family or returns a previously cached one.
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 DebuggerDisplayAttribute text.
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 font face.
Initializes a new instance of the struct.
The name that uniquely identifies the font face.
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 font face.
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 font face.
The style simulation flags.
Gets the font resolver info key for this object.
A name that uniquely identifies the font face (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.
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.
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.
Provides functionality to specify information about the handling of fonts in the current application domain.
The name of the default font. This name is obsolete and must not be used anymore.
Gets or sets the custom font resolver for the current application.
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.
Gets or sets the fallback font resolver for the current application.
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.
Adds a font resolver. NYI
The font resolver.
Resets the font resolvers and clears all internal cache.
The font management is set to the same state as it has immediately after loading the PDFsharp library.
This function is only useful in unit test scenarios and not intended to be called in application code.
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.Automatic.
If you are sure your document contains only Windows-1252 characters (see https://en.wikipedia.org/wiki/Windows-1252)
set default encoding to PdfFontEncoding.WinAnsi.
Must be set only once per app domain.
Shortcut for PdfSharpCore.ResetFontManagement.
Helper function for code points and glyph indices.
Returns the glyph ID for the specified code point,
or 0, if the specified font has no glyph for this code point.
The code point the glyph ID is requested for.
The font to be used.
Maps the characters of a UTF-32 string to an array of glyph indexes.
Never fails, invalid surrogate pairs are simply skipped.
The font to be used.
The string to be mapped.
An internal marker interface used to identify different manifestations of font resolvers.
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 font face is required.
Set to true when an italic font face 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 that converts a requested typeface into a physical font.
Converts specified information about a required typeface into a specific font.
The font family of the typeface.
The style of the typeface.
The relative weight of the typeface.
The degree to which the typeface is stretched.
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.
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.
Creates an XGlyphTypeface.
Represents a font resolver info created by the platform font resolver if,
and only if, the font is resolved by a platform-specific flavor (GDI+ or WPF).
The point is that PlatformFontResolverInfo contains the platform-specific objects
like the GDI font or the WPF glyph typeface.
Defines the logging event ids of PDFsharp.
Defines the logging high performance messages of PDFsharp.
Defines the logging categories of PDFsharp.
Logger category for creating or saving documents, adding or removing pages,
and other document level specific action.s
Logger category for processing bitmap images.
Logger category for creating XFont objects.
Logger category for reading PDF documents.
Provides a single host for logging in PDFsharp.
The logger factory is taken from LogHost.
Gets the general PDFsharp logger.
This the same you get from LogHost.Logger.
Gets the global PDFsharp font management logger.
Gets the global PDFsharp image processing logger.
Gets the global PDFsharp font management logger.
Gets the global PDFsharp document reading logger.
Resets all loggers after an update of global logging factory.
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.
(Radio buttons only) (PDF 1.5) If set, a group of radio buttons within a
radio button field that use the same value for the on state will turn on and off
in unison; that is if one is checked, they are all checked. If clear, the buttons
are mutually exclusive (the same behaviour as HTML radio buttons).
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.
(PDF 1.5) May be set only if the MaxLen entry is present in the
text field dictionary (see "Table 232 — Additional entry specific to a
text field") and if the Multiline, Password, and FileSelect flags
are clear. If set, the field shall be automatically divided into as
many equally spaced positions, or combs, as the value of MaxLen,
and the text is laid out into those combs.
(PDF 1.5) If set, the value of this field shall be a rich text
string (see Adobe XML Architecture, XML Forms Architecture (XFA)
Specification, version 3.3). If the field has a value, the RV entry
of the field dictionary ("Table 228 — Additional entries common to
all fields containing variable text") shall specify the rich text string.
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.
(PDF 1.5) If set, the new value shall be committed as soon as a selection
is made (commonly with the pointing device). In this case, supplying
a value for a field involves three actions: selecting the field for fill-in,
selecting a choice for the fill-in value, and leaving that field, which
finalizes or "commits" the data choice and triggers any actions associated
with the entry or changing of this data. If this flag is on, then processing
does not wait for leaving the field action to occur, but immediately
proceeds to the third step.This option enables applications to perform
an action once a selection is made, without requiring the user to exit the
field. If clear, the new value is not committed until the user exits the field.
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.
Writes a key/value pair of this signature field dictionary.
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 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 a PDF Embedded Goto action.
Initializes a new instance of the class.
Initializes a new instance of the class.
The document that owns this object.
Creates a link to an embedded document.
The path to the named destination through the embedded documents.
The path is separated by '\' and the last segment is the name of the named destination.
The other segments describe the route from the current (root or embedded) document to the embedded document holding the destination.
".." references to the parent, other strings refer to a child with this name in the EmbeddedFiles name dictionary.
True, if the destination document shall be opened in a new window.
If not set, the viewer application should behave in accordance with the current user preference.
Creates a link to an embedded document in another document.
The path to the target document.
The path to the named destination through the embedded documents in the target document.
The path is separated by '\' and the last segment is the name of the named destination.
The other segments describe the route from the root document to the embedded document.
Each segment name refers to a child with this name in the EmbeddedFiles name dictionary.
True, if the destination document shall be opened in a new window.
If not set, the viewer application should behave in accordance with the current user preference.
Separator for splitting destination path segments ans destination name.
Path segment string used to move to the parent document.
Predefined keys of this dictionary.
(Optional) The root document of the target relative to the root document of the source.
If this entry is absent, the source and target share the same root document.
(Required) The destination in the target to jump to (see Section 8.2.1, “Destinations”).
(Optional) If true, the destination document should be opened in a new window;
if false, the destination document should replace the current document in the same window.
If this entry is absent, the viewer application should honor the current user preference.
(Optional if F is present; otherwise required) A target dictionary (see Table 8.52)
specifying path information to the target document. Each target dictionary specifies
one element in the full path to the target and may have nested target dictionaries
specifying additional elements.
Predefined keys of this dictionary.
(Required) Specifies the relationship between the current document and the target
(which may be an intermediate target). Valid values are P (the target is the parent
of the current document) and C (the target is a child of the current document).
(Required if the value of R is C and the target is located in the EmbeddedFiles name tree;
otherwise, it must be absent) The name of the file in the EmbeddedFiles name tree.
(Optional) A target dictionary specifying additional path information to the target document.
If this entry is absent, the current document is the target file containing the destination.
Represents a PDF Goto action.
Initializes a new instance of the class.
Initializes a new instance of the class.
The document that owns this object.
Creates a link within the current document.
The Named Destination’s name in the target document.
Predefined keys of this dictionary.
(Required) The destination to jump to (see Section 8.2.1, “Destinations”).
Represents a PDF Remote Goto action.
Initializes a new instance of the class.
Initializes a new instance of the class.
The document that owns this object.
Creates a link to another document.
The path to the target document.
The named destination’s name in the target document.
True, if the destination document shall be opened in a new window.
If not set, the viewer application should behave in accordance with the current user preference.
Predefined keys of this dictionary.
(Required) The destination to jump to (see Section 8.5.3, “Action Types”).
(Required) The destination to jump to (see Section 8.2.1, “Destinations”).
If the value is an array defining an explicit destination (as described under “Explicit Destinations” on page 582),
its first element must be a page number within the remote document rather than an indirect reference to a page object
in the current document. The first page is numbered 0.
(Optional; PDF 1.2) A flag specifying whether to open the destination document in a new window.
If this flag is false, the destination document replaces the current document in the same window.
If this entry is absent, the viewer application should behave in accordance with the current user preference.
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 name dictionary of this document.
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 odd-numbered pages on the left.
TwoColumnRight - Display the pages in two columns, with odd-numbered 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, window controls, 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.
The subtype can be CIDFontType0 or CIDFontType2.
PDFsharp only used CIDFontType2 which is a TrueType font program.
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.
Gets or sets a value indicating whether this table is under construction.
It is true while reading a PDF file.
Adds a cross-reference entry to the table. Used when parsing the trailer.
Adds a PdfObject to the table.
Adds a PdfObject to the table if it was not already in.
Returns true if it was added, false otherwise.
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.
Gets or sets the highest object number used in this document.
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.
Gets the position of the object immediately behind the specified object, or -1,
if no such object exists. I.e. -1 means the object is the last one in the PDF file.
Checks the logical consistence for debugging purposes (useful after reconstruction work).
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 object 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 embedded file stream.
PDF 1.3.
Initializes a new instance of PdfEmbeddedFileStream from a stream.
Determines, if dictionary is an embedded file stream.
Predefined keys of this dictionary.
(Optional) The type of PDF object that this dictionary describes; if present,
must be EmbeddedFile for an embedded file stream.
(Optional) The subtype of the embedded file. The value of this entry must be a first-class name,
as defined in Appendix E. Names without a registered prefix must conform to the MIME media type names
defined in Internet RFC 2046, Multipurpose Internet Mail Extensions (MIME), Part Two: Media Types
(see the Bibliography), with the provision that characters not allowed in names must use the
2-character hexadecimal code format described in Section 3.2.4, “Name Objects.”
(Optional) An embedded file parameter dictionary containing additional,
file-specific information (see Table 3.43).
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 non-stroking operations.
Sets the overprint value for stroking operations.
Sets the overprint value for non-stroking 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 non-stroking 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 file specification dictionary.
Initializes a new instance of PdfFileSpecification referring an embedded file stream.
Predefined keys of this dictionary.
(Required if an EF or RF entry is present; recommended always)
The type of PDF object that this dictionary describes; must be Filespec
for a file specification dictionary (see implementation note 45 in Appendix H).
(Required if the DOS, Mac, and Unix entries are all absent; amended with the UF entry
for PDF 1.7) A file specification string of the form described in Section 3.10.1,
“File Specification Strings,” or (if the file system is URL) a uniform resource locator,
as described in Section 3.10.4, “URL Specifications.”
Note: It is recommended that the UF entry be used in addition to the F entry.The UF entry
provides cross-platform and cross-language compatibility and the F entry provides
backwards compatibility.
(Optional, but recommended if the F entry exists in the dictionary; PDF 1.7) A Unicode
text string that provides file specification of the form described in Section 3.10.1,
“File Specification Strings.” Note that this is a Unicode text string encoded using
PDFDocEncoding or UTF-16BE with a leading byte-order marker (as defined in Section ,
“Text String Type”). The F entry should always be included along with this entry for
backwards compatibility reasons.
(Required if RF is present; PDF 1.3; amended to include the UF key in PDF 1.7) A dictionary
containing a subset of the keys F, UF, DOS, Mac, and Unix, corresponding to the entries by
those names in the file specification dictionary. The value of each such key is an embedded
file stream (see Section 3.10.3, “Embedded File Streams”) containing the corresponding file.
If this entry is present, the Type entry is required and the file specification dictionary
must be indirectly referenced. (See implementation note 46in Appendix H.)
Note: It is recommended that the F and UF entries be used in place of the DOS, Mac, or Unix
entries.
Represents the base class of 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 of a PDF font.
For a Unicode font only this characters come to the ToUnicode map.
Gets or sets ToUnicodeMap.
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.
Gets or sets a value indicating whether the cmap table must be added to the
font subset.
Gets the CMapInfo for PDF font descriptor.
It contains all characters, ANSI and Unicode.
Adds a tag of exactly six uppercase letters to the font name
according to PDF Reference Section 5.5.3 'Font Subsets'.
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.
Document specific cache of all PdfFontDescriptor objects of this document.
This allows PdfTrueTypeFont and PdfType0Font
Document specific cache of all PdfFontDescriptor objects of this document.
This allows PdfTrueTypeFont and PdfType0Font
Gets the FontDescriptor identified by the specified XFont. If no such object
exists, a new FontDescriptor is created and added to the cache.
Maps OpenType descriptor to document specific PDF font descriptor.
Represents the base class of a PDF font.
Initializes a new instance of the class.
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 get a PdfFont from the font dictionary.
Returns null if no such PdfFont exists.
Map from PdfFont selector 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 non-stroking 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.
Indicates whether the mask has transparent pels.
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 too many 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.
This property is not documented by intention.
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.
Creates the named destination parameters.
Creates a PdfNamedDestinationParameters object for a named destination.
Moving to this destination will only move to the destination page, without changing the left, top and zoom values for the displayed area.
Creates a PdfNamedDestinationParameters object for a named destination.
Moving to this destination will move to the desired top value and the optional zoom value on the destination page. The left value for the displayed area and null values are retained unchanged.
The top value of the displayed area in PDF world space units.
Optional: The zoom value for the displayed area. 1 = 100%, 2 = 200% etc.
Creates a PdfNamedDestinationParameters object for a named destination.
Moving to this destination will move to the desired left and top value and the optional zoom value on the destination page. Null values are retained unchanged.
The left value of the displayed area in PDF world space units.
The top value of the displayed area in PDF world space units.
Optional: The zoom value for the displayed area. 1 = 100%, 2 = 200% etc.
Creates a PdfNamedDestinationParameters object for a named destination.
Moving to this destination will move to the desired left and top value and the optional zoom value on the destination page. Null values are retained unchanged.
An XPoint defining the left and top value of the displayed area in PDF world space units.
Optional: The zoom value for the displayed area. 1 = 100%, 2 = 200% etc.
Creates a PdfNamedDestinationParameters object for a named destination.
Moving to this destination will move to the destination page, displaying the whole page.
Creates a PdfNamedDestinationParameters object for a named destination.
Moving to this destination will move to the desired top value on the destination page.
The page width is fitted to the window. Null values are retained unchanged.
The top value of the displayed area in PDF world space units.
Creates a PdfNamedDestinationParameters object for a named destination.
Moving to this destination will move to the desired left value on the destination page.
The page height is fitted to the window. Null values are retained unchanged.
The left value of the displayed area in PDF world space units.
Creates a PdfNamedDestinationParameters object for a named destination.
Moving to this destination will move to the destination page. The given rectangle is fitted to the window.
The left value of the rectangle to display in PDF world space units.
The top value of the rectangle to display in PDF world space units.
The right value of the rectangle to display in PDF world space units.
The bottom value of the rectangle to display in PDF world space units.
Creates a PdfNamedDestinationParameters object for a named destination.
Moving to this destination will move to the destination page. The given rectangle is fitted to the window.
The XRect representing the rectangle to display in PDF world space units.
Creates a PdfNamedDestinationParameters object for a named destination.
Moving to this destination will move to the destination page. The given rectangle is fitted to the window.
The first XPoint representing the rectangle to display in PDF world space units.
The second XPoint representing the rectangle to display in PDF world space units.
Creates a PdfNamedDestinationParameters object for a named destination.
Moving to this destination will move to the destination page. The page’s bounding box is fitted to the window.
Creates a PdfNamedDestinationParameters object for a named destination.
Moving to this destination will move to the desired top value on the destination page.
The page’s bounding box width is fitted to the window. Null values are retained unchanged.
The top value of the displayed area in PDF world space units.
Creates a PdfNamedDestinationParameters object for a named destination.
Moving to this destination will move to the desired left value on the destination page.
The page’s bounding box height is fitted to the window. Null values are retained unchanged.
The left value of the displayed area in PDF world space units.
Returns the parameters string for the named destination.
Represents the name dictionary.
Initializes a new instance of the class.
Predefined keys of this dictionary.
(Optional; PDF 1.2) A name tree mapping name strings to destinations (see “Named Destinations” on page 583).
(Optional; PDF 1.4) A name tree mapping name strings to file specifications for embedded file streams
(see Section 3.10.3, “Embedded File Streams”).
Provides access to the internal PDF object data structures.
This class prevents the public interfaces from pollution with too many 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.
Tries to get the position of the PdfObject inside this ObjectStream.
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.
Manages the read positions for all PdfObjects inside this ObjectStream.
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.
Dereferences the specified item. If the item is a PdfReference, the item is set
to the referenced value. Otherwise, no action is taken.
Dereferences the specified item. If the item is a PdfReference, the item is set
to the referenced value. Otherwise no action is taken.
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 too 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 or sets the PdfTrailer of the previous version in a PDF with incremental updates.
Gets the standard security handler and creates it, if not existing.
Gets the standard security handler, if existing and encryption is active.
Gets and sets the internally saved 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 OpenType font that is ANSI encoded in the PDF document.
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 PDF font. Used for Unicode glyph 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.
The position in the destination page.
Creates a link within the current document using a named destination.
The link area in default page coordinates.
The named destination’s name.
Creates a link to an external PDF document using a named destination.
The link area in default page coordinates.
The path to the target document.
The named destination’s name in the target document.
True, if the destination document shall be opened in a new window.
If not set, the viewer application should behave in accordance with the current user preference.
Creates a link to an embedded document.
The link area in default page coordinates.
The path to the named destination through the embedded documents.
The path is separated by '\' and the last segment is the name of the named destination.
The other segments describe the route from the current (root or embedded) document to the embedded document holding the destination.
".." references to the parent, other strings refer to a child with this name in the EmbeddedFiles name dictionary.
True, if the destination document shall be opened in a new window.
If not set, the viewer application should behave in accordance with the current user preference.
Creates a link to an embedded document in another document.
The link area in default page coordinates.
The path to the target document.
The path to the named destination through the embedded documents in the target document.
The path is separated by '\' and the last segment is the name of the named destination.
The other segments describe the route from the root document to the embedded document.
Each segment name refers to a child with this name in the EmbeddedFiles name dictionary.
True, if the destination document shall be opened in a new window.
If not set, the viewer application should behave in accordance with the current user preference.
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.
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.
Represents an integer value in a PDF content stream.
Creates a new object that is a copy of the current instance.
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.
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.
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.
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.
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.
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.
Function returning string that will be used to display object’s value in debugger for this type of objects.
Prints longer version of string including name, operands list and operator description.
Maximal number of characters in operands portion of the string that could be displayed.
If printing all operands would require greater number of characters, a string in form like "15 operands" will be put in the result instead.
Specifies the group of operations the op-code belongs to.
The names of the op-codes.
Pseudo op-code for the name of a dictionary.
Close, fill, and stroke path using non-zero winding number rule.
Fill and stroke path using non-zero 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.
Append curved segment to path (three control points).
Concatenate matrix to current transformation matrix.
(PDF 1.1) Set color space for stroking operations.
(PDF 1.1) Set color space for non-stroking operations.
Set line dash pattern.
Set glyph width in Type 3 font.
Set glyph width and bounding box in Type 3 font.
Invoke named XObject.
(PDF 1.2) Define marked-content point with property list.
End inline image object.
(PDF 1.2) End marked-content sequence.
End text object.
(PDF 1.1) End compatibility section.
Fill path using non-zero winding number rule.
Fill path using non-zero winding number rule (deprecated in PDF 2.0).
Fill path using even-odd rule.
Set gray level for stroking operations.
Set gray level for non-stroking operations.
(PDF 1.2) Set parameters from graphics state parameter dictionary.
Close subpath.
Set flatness tolerance.
Begin inline image data
Set line join style.
Set line cap style
Set CMYK color for stroking operations.
Set CMYK color for non-stroking operations.
Append straight line segment to path.
Begin new subpath.
Set miter limit.
(PDF 1.2) Define marked-content point.
End path without filling or stroking.
Save graphics state.
Restore graphics state.
Append rectangle to path.
Set RGB color for stroking operations.
Set RGB color for non-stroking operations.
Set color rendering intent.
Close and stroke path.
Stroke path.
(PDF 1.1) Set color for stroking operations.
(PDF 1.1) Set color for non-stroking operations.
(PDF 1.2) Set color for stroking operations (ICCBased and special color spaces).
(PDF 1.2) Set color for non-stroking operations (ICCBased and special color spaces).
(PDF 1.3) Paint area defined by shading pattern.
Move to start of next text line.
Set character spacing.
Move text position.
Move text position and set leading.
Set text font and size.
Show text.
Show text, allowing individual glyph positioning.
Set text leading.
Set text matrix and text line matrix.
Set text rendering mode.
Set text rise.
Set word spacing.
Set horizontal text scaling.
Append curved segment to path (initial point replicated).
Set line width.
Set clipping path using non-zero winding number rule.
Set clipping path using even-odd rule.
Append curved segment to path (final point replicated).
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 the dictionary.
Scans an integer or real number.
Scans an operator.
Scans a literal string.
Scans a hexadecimal string.
Move current position one byte further in PDF stream and
return it as a character with high byte always zero.
Resets the current token to the empty string.
Appends current character to the token and
reads next byte as a character.
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 a content operator character.
Indicates whether the specified character is a PDF delimiter character.
Gets the length of the content.
Gets or sets the position in 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 page content reader.
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.
Initializes a new instance of the class.
The page.
Initializes a new instance of the class.
The content bytes.
Initializes a new instance of the class.
The content stream.
Initializes a new instance of the class.
The lexer.
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.
Implements a dummy DCTDecode filter.
Filter does nothing, but allows to read and write PDF files with
DCT encoded streams.
Returns a copy of the input data.
Returns a copy of the input data.
Reserved for future extension.
Gets the decoding-parameters for a filter. May be null.
Initializes a new instance of the class.
The decode parms dictionary.
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.
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.
Implements a dummy filter used for not implemented filters.
Returns a copy of the input data.
Returns a copy of the input data.
Implements PNG-Filtering according to the PNG-specification
see: https://datatracker.ietf.org/doc/html/rfc2083#section-6
The width of a scanline in bytes
Bytes per pixel
The input data
The target array where the unfiltered data is stored
Further decodes a stream of bytes that were processed by the Flate- or LZW-decoder.
The data to decode
Parameters for the decoder. If this is null, is returned unchanged
The decoded data as a byte-array
An encoder use for PDF WinAnsi encoding.
It is by design not to use CodePagesEncodingProvider.Instance.GetEncoding(1252).
However, AnsiEncoding is equivalent to Windows-1252 (CP-1252),
see https://en.wikipedia.org/wiki/Windows-1252
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 BMP character is available in the ANSI code page 1252.
Indicates whether the specified string is available in the ANSI code page 1252.
Indicates whether all code points in the specified array are available in the ANSI code page 1252.
Maps Unicode to ANSI (CP-1252).
Return an ANSI code in a char or the value of parameter nonAnsi
if Unicode value has no ANSI counterpart.
Maps WinAnsi to Unicode characters.
The 5 undefined ANSI value 81, 8D, 8F, 90, and 9D are mapped to
the C1 control code. This is the same as .NET handles them.
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.
The class is intended for internal use only and public only
for being used in unit tests.
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 PDF 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 backslash.
Called REVERSE SOLIDUS in Adobe specs.
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.
PDF 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 logical current position within the PDF stream.
When got, the logical position of the stream pointer is returned.
The actual position in the .NET Stream is two bytes more, because the
reader has a look-ahead of two bytes (_currChar and _nextChar).
When set, the logical position is set and 2 bytes of look-ahead are red
into _currChar and _nextChar.
This ensures that immediately getting and setting or setting and getting
is idempotent.
Reads the next token and returns its type. If the token starts with a digit, the parameter
testForObjectReference 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 a string in 'raw' encoding without changing the state of the lexer.
Scans a comment line.
Scans a name.
Scans a number or an object reference.
Returns one of the following symbols.
Symbol.ObjRef if testForObjectReference is true and the pattern "nnn ggg R" can be found.
Symbol.Real if a decimal point exists or the number of digits is too large for 64-bit integer.
Symbol.Integer if the long value is in the range of 32-bit integer.
Symbol.LongInteger otherwise.
Scans a keyword.
Scans a string literal, contained between "(" and ")".
Scans a hex encoded literal string, contained between "<" and ">".
Tries to scan the specified literal from the current stream position.
Return the exact position where the content of the stream starts.
The logical position is also set to this value when the function returns.
Reference: 3.2.7 Stream Objects / Page 60
Reference 2.0: 7.3.8 Stream objects / Page 31
Reads the raw content of a stream.
A stream longer than 2 GiB is not intended by design.
Gets the effective length of a stream on the basis of the position of 'endstream'.
Call this function if 'endstream' was not found at the end of a stream content after
it is parsed.
The position behind 'stream' symbol in dictionary.
The range to search for 'endstream'.
Suppresses exceptions that may be caused by not yet available objects.
The real length of the stream when 'endstream' was found.
Tries to scan 'endstream' after reading the stream content with a logical position
on the first byte behind the read stream content.
Returns true if success. The logical position is then immediately behind 'endstream'.
In case of false the logical position is not well-defined.
Reads a string in 'raw' encoding.
Move current position one byte further in PDF stream and
return it as a character with high byte always zero.
Resets the current token to the empty string.
Appends current character to the token and
reads next byte as a character.
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.
Returns the neighborhood of the specified position as a string.
It supports a human to find this position in a PDF file.
The current position is tagged with a double quotation mark ('‼').
The position to show. If it is -1 the current position is used.
If set to true the string is a hex dump.
The number of bytes around the position to be dumped.
Gets the current symbol.
Gets the current token.
Interprets current token as boolean literal.
Interprets current token as integer literal.
Interprets current token as 64-bit integer literal.
Interprets current token as real or integer literal.
Interprets current token as a pair of objectNumber and generation
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.
Exception thrown by PdfReader, indicating that the object can not (yet) be read.
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.
Provides the functionality to parse PDF documents.
Constructs a parser for a document.
Constructs a parser for an ObjectStream.
Sets PDF input stream position to the specified object.
The ID of the object to move.
Suppresses exceptions that may be caused by not yet available objects.
Gets the current symbol from the underlying lexer.
Internal function to read 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 object is parsed from an object stream.
Suppresses exceptions that may be caused by not yet available objects.
Reads the content of a stream between 'stream' and 'endstream'.
Because Acrobat is very tolerant with the crap some producer apps crank out,
it is more work than expected in the first place.
Reference: 3.2.7 Stream Objects / Page 60
Reference 2.0: 7.3.8 Stream objects / Page 31
Suppresses exceptions that may be caused by not yet available objects.
Read stream length from /Length entry of the dictionary.
But beware, /Length may be an indirect object. Furthermore, it can be an
indirect object located in an object stream that was not yet parsed.
And though /Length is a required entry in a stream dictionary, some
PDF file miss it anyway in some dictionaries.
In this case, we look for '\nendstream' backwards form the beginning
of the object immediately behind this object or, in case this object itself
is the last one in the PDF file, we start searching from the end of the whole file.
Try to read 'endstream' after reading the stream content. Sometimes the Length is not exact
and ReadSymbol fails. In this case we search the token 'endstream' in the
neighborhood where Length points.
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 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 offset value (int or long) directly from the PDF data stream.
Reads the PdfObject of the reference, no matter if it’s saved at document level or inside an ObjectStream.
Reads the PdfObjects of all known references, no matter if they are saved at document level or inside an ObjectStream.
Reads all ObjectStreams and the references to the PdfObjects they hold.
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.
Returns 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.
Saves the current parser state, which is the lexer Position and the Symbol,
in a ParserState struct.
Restores the current parser state from a ParserState struct.
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 delegate 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.
This method expects the stream position to point to the start of the file data to be checked.
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.
Opens a PDF document from a file.
Opens a PDF document from a stream.
Checks all PdfStrings and PdfStringObjects for valid BOMs and rereads them with the specified Unicode encoding.
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.
Defines the action to be taken by PDFsharp if a problem occurs during reading
a PDF file.
Silently ignore the parser error.
Log an information.
Log a warning.
Log an error.
Throw a parser exception.
A reference to a not existing object occurs.
PDF reference states that such a reference is considered to
be a reference to the Null-Object, but it is worth to be reported.
The specified length of a stream is invalid.
The specified length is an indirect reference to an object in
an Object stream that is not yet decrypted.
The ID of an object occurs more than once.
Gets or sets a human-readable title for this problem.
Gets or sets a human-readable more detailed description for this problem.
Gets or sets a human-readable description of the action taken by PDFsharp for this problem.
UNDER CONSTRUCTION
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.
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.
Abstract class declaring the common methods of crypt filters. These may be the IdentityCryptFilter or PdfCryptFilters defined in the CF dictionary of the security handler.
Initializes a new instance of the class.
Initializes a new instance of the class.
Encrypts the given bytes. Returns true if the crypt filter encrypted the bytes, or false, if the security handler shall do it.
Decrypts the given bytes. Returns true if the crypt filter decrypted the bytes, or false, if the security handler shall do it.
Abstract class for StandardSecurityHandler’s encryption versions implementations.
Initializes the PdfEncryptionBase with the values that were saved in the security handler.
Has to be called if a PdfObject is entered for encryption/decryption.
Should be called if a PdfObject is left from encryption/decryption.
Encrypts the given bytes for the entered indirect PdfObject.
Decrypts the given bytes for the entered indirect PdfObject.
Sets the encryption dictionary’s values for saving.
Validates the password.
Implements StandardSecurityHandler’s encryption versions 1, 2, and 4 (3 shall not appear in conforming files).
Encrypts with RC4 and a file encryption key length of 40 bits.
Encrypts with RC4 and a file encryption key length of more than 40 bits (PDF 1.4).
The file encryption key length - a multiple of 8 from 40 to 128 bit.
Encrypts with RC4 and a file encryption key length of 128 bits using a crypt filter (PDF 1.5).
The document metadata stream shall be encrypted (default: true).
Encrypts with AES and a file encryption key length of 128 bits using a crypt filter (PDF 1.6).
The document metadata stream shall be encrypted (default: true).
Initializes the PdfEncryptionV1To4 with the values that were saved in the security handler.
Sets the encryption dictionary’s values for saving.
Calculates the Revision from the set version and permission values.
Pads a password to a 32 byte array.
Computes the user and owner values.
Computes owner value.
Computes the user value and _encryptionKey.
Computes the user value using _encryptionKey.
Computes and stores the global encryption key.
Validates the password.
Checks whether the password values match.
Has to be called if a PdfObject is entered for encryption/decryption.
Should be called if a PdfObject is left from encryption/decryption.
Encrypts the given bytes for the entered indirect PdfObject.
Decrypts the given bytes for the entered indirect PdfObject.
Encrypts the given bytes for the entered indirect PdfObject using RC4 encryption.
Decrypts the given bytes for the entered indirect PdfObject using RC4 encryption.
Encrypts the given bytes for the entered indirect PdfObject using AES encryption.
Decrypts the given bytes for the entered indirect PdfObject using AES encryption.
Computes the encryption key for the current indirect PdfObject.
The global encryption key.
The current indirect PdfObject ID.
Gets the RC4 encryption key for the current indirect PdfObject.
The AES encryption key for the current indirect PdfObject.
The encryption key length for the current indirect PdfObject.
The message digest algorithm MD5.
The RC4 encryption algorithm.
Implements StandardSecurityHandler’s encryption version 5 (PDF 20).
Initializes the encryption. Has to be called after the security handler’s encryption has been set to this object.
True, if the document metadata stream shall be encrypted (default: true).
Initializes the PdfEncryptionV5 with the values that were saved in the security handler.
Has to be called if a PdfObject is entered for encryption/decryption.
Should be called if a PdfObject is left from encryption/decryption.
Encrypts the given bytes for the entered indirect PdfObject.
Decrypts the given bytes for the entered indirect PdfObject.
Sets the encryption dictionary’s values for saving.
Creates and stores the encryption key for writing a file.
Creates the UTF-8 password.
Corresponding to "7.6.4.3.3 Algorithm 2.A: Retrieving the file encryption key from
an encrypted document in order to decrypt it (revision 6 and later)" steps a) - b)
Computes userValue and userEValue.
Corresponding to "7.6.4.4.7 Algorithm 8: Computing the encryption dictionary’s U (user password)
and UE (user encryption) values (Security handlers of revision 6)"
Computes ownerValue and ownerEValue.
Corresponding to "7.6.4.4.8 Algorithm 9: Computing the encryption dictionary’s O (owner password)
and OE (owner encryption) values (Security handlers of revision 6)"
Computes the hash for a user password.
Corresponding to "7.6.4.3.4 Algorithm 2.B: Computing a hash (revision 6 and later)"
Computes the hash for an owner password.
Corresponding to "7.6.4.3.4 Algorithm 2.B: Computing a hash (revision 6 and later)"
Computes the hash.
Corresponding to "7.6.4.3.4 Algorithm 2.B: Computing a hash (revision 6 and later)"
Computes permsValue.
Corresponding to "Algorithm 10: Computing the encryption dictionary’s Perms (permissions) value (Security handlers of revision 6)"
Validates the password.
Retrieves and stores the encryption key for reading a file.
Corresponding to "7.6.4.3.3 Algorithm 2.A: Retrieving the file encryption key from
an encrypted document in order to decrypt it (revision 6 and later)"
Gets the bytes 1 - 32 (1-based) of the user or owner value, the hash value.
Gets the bytes 33 - 40 (1-based) of the user or owner value, the validation salt.
Gets the bytes 41 - 48 (1-based) of the user or owner value, the key salt.
Validates the user password.
Corresponding to "7.6.4.4.10 Algorithm 11: Authenticating the user password (Security handlers of revision 6)"
Validates the owner password.
Corresponding to "7.6.4.4.11 Algorithm 12: Authenticating the owner password (Security handlers of revision 6)"
Validates the permissions.
Corresponding to "7.6.4.4.12 Algorithm 13: Validating the permissions (Security handlers of revision 6)"
The encryption key.
Implements the RC4 encryption algorithm.
Sets the encryption key.
Sets the encryption key.
Sets the encryption key.
Encrypts the data.
Encrypts the data.
Encrypts the data.
Encrypts the data.
Encrypts the data.
Bytes used for RC4 encryption.
Implements the SASLprep profile (RFC4013) of the stringprep algorithm (RFC3454) for processing strings.
SASLprep Documentation:
SASLprep: https://www.rfc-editor.org/rfc/rfc4013
stringprep: https://www.rfc-editor.org/rfc/rfc3454
UAX15 (Unicode Normalization Forms): https://www.unicode.org/reports/tr15/tr15-22.html
Processes the string with the SASLprep profile (RFC4013) of the stringprep algorithm (RFC3454).
As defined for preparing "stored strings", unassigned code points are prohibited.
Processes the string with the SASLprep profile (RFC4013) of the stringprep algorithm (RFC3454).
As defined for preparing "queries", unassigned code points are allowed.
Checks if a char is part of stringprep "C.1.2 Non-ASCII space characters".
Checks if a char is part of stringprep "B.1 Commonly mapped to nothing".
Checks if a Unicode code point is prohibited in SASLprep.
Checks if a char is part of stringprep "C.2.1 ASCII control characters".
Checks if a Unicode code point is part of stringprep "C.2.2 Non-ASCII control characters".
Checks if a Unicode code point is part of stringprep "C.3 Private use".
Checks if a Unicode code point is part of stringprep "C.4 Non-character code points".
Checks if a Unicode code point is part of stringprep "C.5 Surrogate codes".
Checks if a Unicode code point is part of stringprep "C.6 Inappropriate for plain text".
Checks if a Unicode code point is part of stringprep "C.7 Inappropriate for canonical representation".
Checks if a Unicode code point is part of stringprep "C.8 Change display properties or are deprecated".
Checks if a Unicode code point is part of stringprep "C.9 Tagging characters".
Checks if a Unicode code point is part of stringprep "D.1 Characters with bidirectional property "R" or "AL"".
Checks if a Unicode code point is part of stringprep "D.2 Characters with bidirectional property "L"".
Checks if a Unicode code point is part of stringprep "A.1 Unassigned code points in Unicode 3.2".
Typical settings to initialize encryption with.
With PdfDefaultEncryption, the encryption can be set automized using PdfStandardSecurityHandler.SetPermission() with one single parameter.
Do not encrypt the PDF file.
Use V4UsingAES, the most recent encryption method not requiring PDF 2.0.
Encrypt with Version 1 (RC4 and a file encryption key length of 40 bits).
Encrypt with Version 2 (RC4 and a file encryption key length of more than 40 bits, PDF 1.4) with a file encryption key length of 40 bits.
Encrypt with Version 2 (RC4 and a file encryption key length of more than 40 bits, PDF 1.4) with a file encryption key length of 128 bits.
This was the default encryption in PDFsharp 1.5.
Encrypt with Version 4 (RC4 or AES and a file encryption key length of 128 bits using a crypt filter, PDF 1.5) using RC4.
Encrypt with Version 4 (RC4 or AES and a file encryption key length of 128 bits using a crypt filter, PDF 1.5) using AES (PDF 1.6).
Encrypt with Version 5 (AES and a file encryption key length of 256 bits using a crypt filter, PDF 2.0).
Specifies which operations are permitted when the document is opened with user access.
Permits everything. This is the default value.
Represents the identity crypt filter, which shall be provided by a PDF processor and pass the data unchanged.
Encrypts the given bytes. Returns true if the crypt filter encrypted the bytes, or false, if the security handler shall do it.
Decrypts the given bytes. Returns true if the crypt filter decrypted the bytes, or false, if the security handler shall do it.
Represents a crypt filter dictionary as written into the CF dictionary of a security handler (PDFCryptFilters).
Initializes a new instance of the class.
The parent standard security handler.
Initializes _parentStandardSecurityHandler to do the correct interpretation of the length key.
The encryption shall be handled by the security handler.
Encrypt with RC4 and the given file encryption key length, using the algorithms of encryption V4 (PDF 1.5).
For encryption V4 the file encryption key length shall be 128 bits.
The file encryption key length - a multiple of 8 from 40 to 256 bit.
Encrypt with AES and a file encryption key length of 128 bits, using the algorithms of encryption V4 (PDF 1.6).
Encrypt with AES and a file encryption key length of 256 bits, using the algorithms of encryption V5 (PDF 2.0).
Sets the AuthEvent Key to /EFOpen, in order authenticate embedded file streams when accessing the embedded file.
Does all necessary initialization for reading and decrypting or encrypting and writing the document with this crypt filter.
Encrypts the given bytes.
True, if the crypt filter encrypted the bytes, or false, if the security handler shall do it.
Decrypts the given bytes.
True, if the crypt filter decrypted the bytes, or false, if the security handler shall do it.
The crypt filter method to choose in the CFM key.
The encryption shall be handled by the security handler.
Encrypt with RC4. Used for encryption Version 4.
Encrypt with AES and a file encryption key length of 128. Used for encryption Version 4.
Encrypt with AES and a file encryption key length of 256. Used for encryption Version 5.
Predefined keys of this dictionary.
(Optional) If present, shall be CryptFilter for a crypt filter dictionary.
(Optional) The method used, if any, by the PDF reader to decrypt data.
The following values shall be supported:
None
The application shall not decrypt data but shall direct the input stream to the security handler for decryption.
V2 (Deprecated in PDF 2.0)
The application shall ask the security handler for the file encryption key and shall implicitly decrypt data with
7.6.3.2, "Algorithm 1: Encryption of data using the RC4 or AES algorithms",
using the RC4 algorithm.
AESV2 (PDF 1.6; deprecated in PDF 2.0)
The application shall ask the security handler for the file encryption key and shall implicitly decrypt data with
7.6.3.2, "Algorithm 1: Encryption of data using the RC4 or AES algorithms",
using the AES algorithm in Cipher Block Chaining (CBC) mode with a 16-byte block size and an
initialization vector that shall be randomly generated and placed as the first 16 bytes in the stream or string.
The key size (Length) shall be 128 bits.
AESV3 (PDF 2.0)
The application shall ask the security handler for the file encryption key and shall implicitly decrypt data with
7.6.3.3, "Algorithm 1.A: Encryption of data using the AES algorithms",
using the AES-256 algorithm in Cipher Block Chaining (CBC) with padding mode with a 16-byte block size and an
initialization vector that is randomly generated and placed as the first 16 bytes in the stream or string.
The key size (Length) shall be 256 bits.
When the value is V2, AESV2 or AESV3, the application may ask once for this file encryption key and cache the key
for subsequent use for streams that use the same crypt filter. Therefore, there shall be a one-to-one relationship
between a crypt filter name and the corresponding file encryption key.
Only the values listed here shall be supported. Applications that encounter other values shall report that the file
is encrypted with an unsupported algorithm.
Default value: None.
(Optional) The event that shall be used to trigger the authorization that is required to access file encryption keys
used by this filter. If authorization fails, the event shall fail. Valid values shall be:
DocOpen
Authorization shall be required when a document is opened.
EFOpen
Authorization shall be required when accessing embedded files.
Default value: DocOpen.
If this filter is used as the value of StrF or StmF in the encryption dictionary,
the PDF reader shall ignore this key and behave as if the value is DocOpen.
(Required; deprecated in PDF 2.0) Security handlers may define their own use of the Length entry and
should use it to define the bit length of the file encryption key. The bit length of the file encryption key
shall be a multiple of 8 in the range of 40 to 256. The standard security handler expresses the Length entry
in bytes (e.g., 32 means a length of 256 bits) and public-key security handlers express it as is
(e.g., 256 means a length of 256 bits).
When CFM is AESV2, the Length key shall have the value of 128.
When CFM is AESV3, the Length key shall have a value of 256.
Represents the CF dictionary of a security handler.
Initializes a new instance of the class.
Initializes a new instance of the class.
Gets the crypt filter with the given name.
Adds a crypt filter with the given name.
Removes the crypt filter with the given name.
Enumerates all crypt filters.
Returns a dictionary containing all crypt filters.
Determines whether this instance is empty.
If loaded from file, PdfCryptFilters contains usual PdfDictionaries instead of PdfCryptFilter objects.
This method does the conversion and updates Elements, if desired.
Represents the base of all security handlers.
Predefined keys of this dictionary.
(Required) The name of the preferred security handler for this document. It shall be
the name of the security handler that was used to encrypt the document. If
SubFilter is not present, only this security handler shall be used when opening
the document. If it is present, a PDF processor can use any security handler
that implements the format specified by SubFilter.
Standard shall be the name of the built-in password-based security handler. Names for other
security handlers may be registered by using the procedure described in Annex E, "Extending PDF".
(Optional; PDF 1.3) A name that completely specifies the format and interpretation of
the contents of the encryption dictionary. It allows security handlers other
than the one specified by Filter to decrypt the document. If this entry is absent, other
security handlers shall not decrypt the document.
(Required) A code specifying the algorithm to be used in encrypting
and decrypting the document:
0
An algorithm that is undocumented. This value shall not be used.
1 (Deprecated in PDF 2.0)
Indicates the use of
7.6.3.2, "Algorithm 1: Encryption of data using the RC4 or AES algorithms" (deprecated in PDF 2.0)
with a file encryption key length of 40 bits.
2 (PDF 1.4; deprecated in PDF 2.0)
Indicates the use of
7.6.3.2, "Algorithm 1: Encryption of data using the RC4 or AES algorithms" (deprecated in PDF 2.0)
but permitting file encryption key lengths greater than 40 bits.
3 (PDF 1.4; deprecated in PDF 2.0)
An unpublished algorithm that permits file encryption key lengths ranging from 40 to 128 bits.
This value shall not appear in a conforming PDF file.
4 (PDF 1.5; deprecated in PDF 2.0)
The security handler defines the use of encryption and decryption in the document, using
the rules specified by the CF, StmF, and StrF entries using
7.6.3.2, "Algorithm 1: Encryption of data using the RC4 or AES algorithms" (deprecated in PDF 2.0)
with a file encryption key length of 128 bits.
5 (PDF 2.0)
The security handler defines the use of encryption and decryption in the document, using
the rules specified by the CF, StmF, StrF and EFF entries using
7.6.3.3, "Algorithm 1.A: Encryption of data using the AES algorithms"
with a file encryption key length of 256 bits.
(Optional; PDF 1.4; only if V is 2 or 3; deprecated in PDF 2.0) The length of the file encryption key, in bits.
The value shall 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) or 5 (PDF 2.0))
A dictionary whose keys shall be crypt filter names and whose values shall be the corresponding
crypt filter dictionaries. Every crypt filter used in the document shall have an entry
in this dictionary, except for the standard crypt filter names.
Any keys in the CF dictionary that are listed standard crypt filter names
shall be ignored by a PDF processor. Instead, the PDF processor shall use properties of the
respective standard crypt filters.
(Optional; meaningful only when the value of V is 4 (PDF 1.5) or 5 (PDF 2.0))
The name of the crypt filter that shall be used by default when decrypting streams.
The name shall 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, shall be decrypted by the security handler, using this crypt filter.
Default value: Identity.
(Optional; meaningful only when the value of V is 4 (PDF 1.5) or 5 (PDF 2.0))
The name of the crypt filter that shall be used when decrypting all strings in the document.
The name shall 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) or 5 (PDF 2.0))
The name of the crypt filter that shall be used when encrypting embedded
file streams that do not have their own crypt filter specifier;
it shall correspond to a key in the CF dictionary or a standard crypt
filter name. This entry shall be provided by the security handler. PDF writers shall 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 shall 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.
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.
Returns true, if the standard security handler exists and encryption is active.
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 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.
Returns true if there are permissions set to zero, that were introduced with security handler revision 3.
The permission uint value containing the PdfUserAccessPermission flags.
Gets the standard security handler and creates it, if not existing.
Gets the standard security handler, if existing and encryption is active.
Represents the standard PDF security handler.
Do not encrypt the PDF file. Resets the user and owner password.
Set the encryption according to the given DefaultEncryption.
Allows setting the encryption automized using one single parameter.
Set the encryption according to the given PdfDefaultEncryption.
Allows setting the encryption automized using one single parameter.
Encrypt with Version 1 (RC4 and a file encryption key length of 40 bits).
Encrypt with Version 2 (RC4 and a file encryption key length of more than 40 bits, PDF 1.4).
The file encryption key length - a multiple of 8 from 40 to 128 bit.
Encrypt with Version 2 (RC4 and a file encryption key length of more than 40 bits, PDF 1.4) with a file encryption key length of 128 bits.
This was the default encryption in PDFsharp 1.5.
Encrypt with Version 4 (RC4 or AES and a file encryption key length of 128 bits using a crypt filter, PDF 1.5) using RC4.
The document metadata stream shall be encrypted (default: true).
Encrypt with Version 4 (RC4 or AES and a file encryption key length of 128 bits using a crypt filter, PDF 1.5) using AES (PDF 1.6).
The document metadata stream shall be encrypted (default: true).
Encrypt with Version 5 (AES and a file encryption key length of 256 bits using a crypt filter, PDF 2.0).
The document metadata stream shall be encrypted (default: true).
Returns this SecurityHandler, if it shall be written to PDF (if an encryption is chosen).
Sets the user password of the document.
Sets the owner password of the document.
Gets or sets the user access permission represented as an unsigned 32-bit integer in the P key.
Gets the PermissionsValue with some corrections that shall be done for saving.
Has to be called if an indirect PdfObject is entered for encryption/decryption.
Should be called if a PdfObject is leaved from encryption/decryption.
Returns true, if pdfObject is a SecurityHandler used in any PdfTrailer.
Decrypts an indirect PdfObject.
Decrypts a dictionary.
Decrypts an array.
Decrypts a string.
Decrypts a string.
Encrypts a string.
The byte representation of the string.
Decrypts a string.
The byte representation of the string.
Encrypts a stream.
The byte representation of the stream.
The PdfDictionary holding the stream.
Decrypts a stream.
The byte representation of the stream.
The PdfDictionary holding the stream.
Does all necessary initialization for reading and decrypting the document with this security handler.
Does all necessary initialization for encrypting and writing the document with this security handler.
Checks the password.
Password or null if no password is provided.
Gets the encryption (not nullable). Use this in cases where the encryption must be set.
Removes all crypt filters from the document.
Creates a crypt filter belonging to standard security handler.
Returns the StdCF as it shall be used in encryption version 4 and 5.
If not yet existing, it is created regarding the asDefaultIfNew parameter, which will set StdCF as default for streams, strings, and embedded file streams.
If true and the crypt filter is newly created, the crypt filter is referred to as default for any strings, and streams in StmF, StrF and EFF keys.
Adds a crypt filter to the document.
The name to identify the crypt filter.
The crypt filter.
If true, the crypt filter is referred to as default for any strings and streams in StmF, StrF and EFF keys.
Encrypts embedded file streams only by setting a crypt filter only in the security handler’s EFF key and
setting the crypt filter’s AuthEvent Key to /EFOpen, in order authenticate embedded file streams when accessing the embedded file.
Sets the given crypt filter as default for streams, strings, and embedded streams.
The crypt filter must be manually added crypt filter, "Identity" or null to remove the StmF, StrF and EFF key.
Sets the given crypt filter as default for streams.
The crypt filter must be manually added crypt filter, "Identity" or null to remove the StmF key.
Sets the given crypt filter as default for strings.
The crypt filter must be manually added crypt filter, "Identity" or null to remove the StrF key.
Sets the given crypt filter as default for embedded file streams.
The crypt filter must be manually added crypt filter, "Identity" or null to remove the EFF key.
Resets the explicitly set crypt filter of a dictionary.
Sets the dictionary’s explicitly set crypt filter to the Identity crypt filter.
Sets the dictionary’s explicitly set crypt filter to the desired crypt filter.
Gets the crypt filter that shall be used to decrypt or encrypt the dictionary.
Typical settings to initialize encryption with.
With DefaultEncryption, the encryption can be set automized using PdfStandardSecurityHandler.SetPermission() with one single parameter.
Do not encrypt the PDF file.
Use V4UsingAES, the most recent encryption method not requiring PDF 2.0.
Encrypt with Version 1 (RC4 and a file encryption key length of 40 bits).
Encrypt with Version 2 (RC4 and a file encryption key length of more than 40 bits, PDF 1.4) with a file encryption key length of 40 bits.
Encrypt with Version 2 (RC4 and a file encryption key length of more than 40 bits, PDF 1.4) with a file encryption key length of 128 bits.
This was the default encryption in PDFsharp 1.5.
Encrypt with Version 4 (RC4 or AES and a file encryption key length of 128 bits using a crypt filter, PDF 1.5) using RC4.
Encrypt with Version 4 (RC4 or AES and a file encryption key length of 128 bits using a crypt filter, PDF 1.5) using AES (PDF 1.6).
Encrypt with Version 5 (AES and a file encryption key length of 256 bits using a crypt filter, PDF 2.0).
Predefined keys of this dictionary.
(Required) A number specifying which revision of the standard security handler
shall be used to interpret this dictionary:
2 (Deprecated in PDF 2.0)
if the document is encrypted with a V value less than 2 and does not have any of
the access permissions set to 0 (by means of the P entry, below) that are designated
"Security handlers of revision 3 or greater".
3 (Deprecated in PDF 2.0)
if the document is encrypted with a V value of 2 or 3, or has any "Security handlers of revision 3 or
greater" access permissions set to 0.
4 (Deprecated in PDF 2.0)
if the document is encrypted with a V value of 4.
5 (PDF 2.0; deprecated in PDF 2.0)
Shall not be used. This value was used by a deprecated proprietary Adobe extension.
6 (PDF 2.0)
if the document is encrypted with a V value of 5.
(Required) A byte string,
32 bytes long if the value of R is 4 or less and 48 bytes long if the value of R is 6,
based on both the owner and user passwords, that shall be
used in computing the file encryption key and in determining whether a valid owner
password was entered.
(Required) A byte string,
32 bytes long if the value of R is 4 or less and 48 bytes long if the value of R is 6,
based on the owner and user password, that shall be used in determining
whether to prompt the user for a password and, if so, whether a valid user or owner
password was entered.
(Required if R is 6 (PDF 2.0))
A 32-byte string, based on the owner and user password, that shall be used in computing the file encryption key.
(Required if R is 6 (PDF 2.0))
A 32-byte string, based on the user password, that shall be used in computing the file encryption key.
(Required) A set of flags specifying which operations shall be permitted when the document
is opened with user access.
(Required if R is 6 (PDF 2.0))
A 16-byte string, encrypted with the file encryption key, that contains an encrypted copy of the permissions flags.
(Optional; meaningful only when the value of V is 4 (PDF 1.5) or 5 (PDF 2.0)) Indicates whether
the document-level metadata stream shall be encrypted.
Default value: true.
Gets the KeysMeta for these keys.
Gets the KeysMeta of this dictionary type.
Base class for PDF attributes objects.
Constructor of the abstract class.
The document that owns this object.
Constructor of the abstract class.
Predefined keys of this dictionary.
(Required) The name of the application or plug-in extension owning the attribute data.
The name must conform to the guidelines described in Appendix E
Represents a PDF layout attributes object.
Initializes a new instance of the class.
The document that owns this object.
Initializes a new instance of the class.
Predefined keys of this dictionary.
(Optional for Annot; required for any figure or table appearing in its entirety
on a single page; not inheritable). An array of four numbers in default user
space units giving the coordinates of the left, bottom, right, and top edges,
respectively, of the element’s bounding box (the rectangle that completely
encloses its visible content). This attribute applies to any element that lies
on a single page and occupies a single rectangle.
Represents a marked-content reference.
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 type of PDF object that this dictionary describes;
must be MCR for a marked-content reference.
(Optional; must be an indirect reference) The page object representing
the page on which the graphics objects in the marked-content sequence
are rendered. This entry overrides any Pg entry in the structure element
containing the marked-content reference;
it is required if the structure element has no such entry.
(Optional; must be an indirect reference) The content stream containing
the marked-content sequence. This entry should be present only if the
marked-content sequence resides in a content stream other than the
content stream for the page—for example, in a form XObject or an
annotation’s appearance stream. If this entry is absent, the
marked-content sequence is contained in the content stream of the page
identified by Pg (either in the marked-content reference dictionary or
in the parent structure element).
(Optional; must be an indirect reference) The PDF object owning the stream
identified by Stm—for example, the annotation to which an appearance stream belongs.
(Required) The marked-content identifier of the marked-content sequence
within its content stream.
Represents a mark information dictionary.
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) A flag indicating whether the document conforms to Tagged PDF conventions.
Default value: false.
Note: If Suspects is true, the document may not completely conform to Tagged PDF conventions.
(Optional; PDF 1.6) A flag indicating the presence of structure elements
that contain user properties attributes.
Default value: false.
(Optional; PDF 1.6) A flag indicating the presence of tag suspects.
Default value: false.
Represents a marked-content reference.
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 type of PDF object that this dictionary describes;
must be OBJR for an object reference.
(Optional; must be an indirect reference) The page object representing the page
on which the object is rendered. This entry overrides any Pg entry in the
structure element containing the object reference;
it is required if the structure element has no such entry.
(Required; must be an indirect reference) The referenced object.
Represents the root of a structure tree.
Initializes a new instance of the class.
Initializes a new instance of the class.
The document that owns this object.
Returns all PdfDictionaries saved in the "/K" key.
Returns the PdfDictionary that is lying direct or indirect in "item".
Removes the array and directly adds its first item if there is only one item.
Removes unnecessary Attribute dictionaries or arrays.
Gets the PdfLayoutAttributes instance in "/A". If not existing, it creates one.
Gets the PdfTableAttributes instance in "/A". If not existing, it creates one.
Predefined keys of this dictionary.
(Optional) The type of PDF object that this dictionary describes;
if present, must be StructElem for a structure element.
(Required) The structure type, a name object identifying the nature of the
structure element and its role within the document, such as a chapter,
paragraph, or footnote.
Names of structure types must conform to the guidelines described in Appendix E.
(Required; must be an indirect reference) The structure element that
is the immediate parent of this one in the structure hierarchy.
(Optional) The element identifier, a byte string designating this structure element.
The string must be unique among all elements in the document’s structure hierarchy.
The IDTree entry in the structure tree root defines the correspondence between
element identifiers and the structure elements they denote.
(Optional; must be an indirect reference) A page object representing a page on
which some or all of the content items designated by the K entry are rendered.
(Optional) The children of this structure element. The value of this entry
may be one of the following objects or an array consisting of one or more
of the following objects:
• A structure element dictionary denoting another structure element
• An integer marked-content identifier denoting a marked-content sequence
• A marked-content reference dictionary denoting a marked-content sequence
• An object reference dictionary denoting a PDF object
Each of these objects other than the first (structure element dictionary)
is considered to be a content item.
Note: If the value of K is a dictionary containing no Type entry,
it is assumed to be a structure element dictionary.
(Optional) A single attribute object or array of attribute objects associated
with this structure element. Each attribute object is either a dictionary or
a stream. If the value of this entry is an array, each attribute object in
the array may be followed by an integer representing its revision number.
(Optional) An attribute class name or array of class names associated with this
structure element. If the value of this entry is an array, each class name in the
array may be followed by an integer representing its revision number.
Note: If both the A and C entries are present and a given attribute is specified
by both, the one specified by the A entry takes precedence.
(Optional) The title of the structure element, a text string representing it in
human-readable form. The title should characterize the specific structure element,
such as Chapter 1, rather than merely a generic element type, such as Chapter.
(Optional; PDF 1.4) A language identifier specifying the natural language
for all text in the structure element except where overridden by language
specifications for nested structure elements or marked content.
If this entry is absent, the language (if any) specified in the document catalog applies.
(Optional) An alternate description of the structure element and its children
in human-readable form, which is useful when extracting the document’s contents
in support of accessibility to users with disabilities or for other purposes.
(Optional; PDF 1.5) The expanded form of an abbreviation.
(Optional; PDF 1.4) Text that is an exact replacement for the structure element and
its children. This replacement text (which should apply to as small a piece of
content as possible) is useful when extracting the document’s contents in support
of accessibility to users with disabilities or for other purposes.
Represents the root of a structure tree.
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 type of PDF object that this dictionary describes;
must be StructTreeRoot for a structure tree root.
(Optional) The immediate child or children of the structure tree root
in the structure hierarchy. The value may be either a dictionary
representing a single structure element or an array of such dictionaries.
(Required if any structure elements have element identifiers)
A name tree that maps element identifiers to the structure elements they denote.
(Required if any structure element contains content items) A number tree
used in finding the structure elements to which content items belong.
Each integer key in the number tree corresponds to a single page of the
document or to an individual object (such as an annotation or an XObject)
that is a content item in its own right. The integer key is given as the
value of the StructParent or StructParents entry in that object.
The form of the associated value depends on the nature of the object:
• For an object that is a content item in its own right, the value is an
indirect reference to the object’s parent element (the structure element
that contains it as a content item).
• For a page object or content stream containing marked-content sequences
that are content items, the value is an array of references to the parent
elements of those marked-content sequences.
(Optional) An integer greater than any key in the parent tree, to be used as a
key for the next entry added to the tree.
(Optional) A dictionary that maps the names of structure types used in the
document to their approximate equivalents in the set of standard structure types.
(Optional) A dictionary that maps name objects designating attribute
classes to the corresponding attribute objects or arrays of attribute objects.
Represents a PDF table attributes object.
Initializes a new instance of the class.
The document that owns this object.
Initializes a new instance of the class.
Predefined keys of this dictionary.
(Optional; not inheritable) The number of rows in the enclosing table that are spanned
by the cell. The cell expands by adding rows in the block-progression direction
specified by the table’s WritingMode attribute. Default value: 1.
This entry applies only to table cells that have structure types TH or TD or that are
role mapped to structure types TH or TD.
(Optional; not inheritable) The number of columns in the enclosing table that are spanned
by the cell. The cell expands by adding columns in the inline-progression direction
specified by the table’s WritingMode attribute. Default value: 1.
This entry applies only to table cells that have structure types TH or TD or that are
role mapped to structure types TH or TD.
Provides methods to handle keys that may contain a PdfArray or a single PdfItem.
Initializes ArrayOrSingleItemHelper with PdfDictionary.DictionaryElements to work with.
Adds a PdfItem to the given key.
Creates a PdfArray containing the items, if needed.
The key in the dictionary to work with.
The PdfItem to add.
True, if value shall be prepended instead of appended.
Gets all PdfItems saved in the given key.
The key in the dictionary to work with.
Gets the PdfItem(s) of type T saved in the given key, that match a predicate.
The key in the dictionary to work with.
The predicate, that shall be true for the desired item(s).
Gets the PdfItem(s) of type T saved in the given key, that are equal to value.
The key in the dictionary to work with.
The value, the desired item(s) shall be equal to.
Gets the PdfItem(s) of type T saved in the given key, that are equal to value.
The key in the dictionary to work with.
The value, the desired item(s) shall be equal to.
Returns true if the given key contains a PdfItem of type T matching a predicate.
The key in the dictionary to work with.
The predicate, that shall be true for the desired item(s).
Returns true if the given key contains a PdfItem of type T, that is equal to value.
The key in the dictionary to work with.
The value, the desired item(s) shall be equal to.
Returns true if the given key contains a PdfItem of type T, that is equal to value.
The key in the dictionary to work with.
The value, the desired item(s) shall be equal to.
Removes the PdfItem(s) of type T saved in the given key, that match a predicate.
Removes the PdfArray, if no longer needed.
Returns true if items were removed.
The key in the dictionary to work with.
The predicate, that shall be true for the desired item(s).
Removes the PdfItem(s) of type T saved in the given key, that are equal to value.
Removes the PdfArray, if no longer needed.
Returns true if items were removed.
The key in the dictionary to work with.
The value, the desired item(s) shall be equal to.
Removes the PdfItem(s) of type T saved in the given key, that are equal to value.
Removes the PdfArray, if no longer needed.
Returns true if items were removed.
The key in the dictionary to work with.
The value, the desired item(s) shall be equal to.
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.
The document was saved and cannot be modified anymore.
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.
Sets the mode for the Deflater (FlateEncoder).
The default mode.
Fast encoding, but larger PDF files.
Best compression, but takes more time.
Specifies the embedding options of an XFont when converted into PDF.
Font embedding is not optional anymore. So Always is the only option.
OpenType font files with TrueType outline are embedded as a font subset.
OpenType font files with PostScript outline are embedded as they are,
because PDFsharp cannot compute subsets from this type of font files.
Use TryComputeSubset.
The font file is completely embedded. No subset is computed.
Use EmbedCompleteFontFile.
Fonts are not embedded. This is not an option anymore.
Treated as Automatic.
Not yet implemented. Treated as Default.
Specifies the encoding schema used for an XFont when converting into PDF.
Lets PDFsharp decide which encoding is used when drawing text depending
on the used characters.
Causes a font to use Windows-1252 encoding to encode text rendered with this font.
Causes a font to use Unicode encoding to encode text rendered with this font.
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 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 top entirely
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 top entirely 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 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 odd-numbered pages on the left.
Display the pages in two columns, with odd-numbered 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, window controls, 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.
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.
Base class for all dictionary Keys classes.
Creates the DictionaryMeta with the specified default type to return in DictionaryElements.GetValue
if the key is not defined.
The type.
Default type of the content key.
Default type of the content.
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.
Initializes the DictionaryMeta with the specified default type to return in DictionaryElements.GetValue
if the key is not defined.
The type.
Default type of the content key.
Default type of the content.
Gets the KeyDescriptor of the specified key, or null if no such descriptor exits.
The default content key descriptor used if no descriptor exists for a given key.
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.
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 object 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.
Converts the specified value to unsigned 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.
Access a key that may contain an array or a single item for working with its value(s).
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 object 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.
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 kept
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.
Why we need XML documentation here?
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.
Encapsulates the document’s events.
Encapsulates the document’s render events.
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 if the PdfDocument was created with a filename or a stream.
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 close 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.
Gets or sets the PDF version number. Return value 14 e.g. means PDF 1.4 / Acrobat 5 etc.
Adjusts the version if the current version is lower than the required version.
Version is not adjusted for inconsistent files in ReadOnly mode.
The minimum version number to set version to.
True, if Version was modified.
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.
Adds characters whose glyphs have to be embedded in the PDF file.
By default, PDFsharp only embeds glyphs of a font that are used for drawing text
on a page. With this function actually unused glyphs can be added. This is useful
for PDF that can be modified or has text fields. So all characters that can be
potentially used are available in the PDF document.
The font whose glyph should be added.
A string with all unicode characters that should be added.
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 document PdfFontDescriptorCache that holds all PdfFontDescriptor 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 on 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.
Adds a named destination to the document.
The Named Destination’s name.
The page to navigate to.
The PdfNamedDestinationParameters defining the named destination’s parameters.
Adds an embedded file to the document.
The name used to refer and to entitle the embedded file.
The path of the file to embed.
Adds an embedded file to the document.
The name used to refer and to entitle the embedded file.
The stream containing the file to embed.
Flattens a document (make the fields non-editable).
Gets the standard security handler and creates it, if not existing.
Gets the standard security handler, if existing and encryption is active.
Occurs when the specified document is not used anymore for importing content.
Gets the ThreadLocalStorage object. It is used for caching objects that should be 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 32-bit signed 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 32-bit signed 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 literal string.
Returns a string that represents the current value.
Represents a direct 64-bit signed integer value.
Initializes a new instance of the class.
Initializes a new instance of the class.
The value.
Gets the value as 64-bit integer.
Returns the 64-bit integer as string.
Writes the 64-bit integer as string.
Returns TypeCode for 64-bit integers.
Represents an indirect 64-bit signed 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 64-bit integer.
Returns the integer as string.
Writes the integer literal.
Represents an XML Metadata stream.
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 type of PDF object that this dictionary describes; must be Metadata for a metadata stream.
(Required) The type of metadata stream that this dictionary describes; must be XML.
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.
Adds the slash to a string, that is needed at the beginning of a PDFName string.
Removes the slash from a string, that is needed at the beginning of a PDFName string.
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 name tree node.
Initializes a new instance of the class.
Initializes a new instance of the class.
Gets a value indicating whether this instance is a root node.
Gets the number of Kids elements.
Gets the number of Names elements.
Adds a child node to this node.
Adds a key/value pair to the Names array of this node.
Gets the least key.
Gets the greatest key.
Updates the limits by inspecting Kids and Names.
Predefined keys of this dictionary.
(Root and intermediate nodes only; required in intermediate nodes;
present in the root node if and only if Names is not present)
An array of indirect references to the immediate children of this node
The children may be intermediate or leaf nodes.
(Root and leaf nodes only; required in leaf nodes; present in the root node if and only if Kids is not present)
An array of the form
[key1 value1 key2 value2 … keyn valuen]
where each keyi is a string and the corresponding valuei is the object associated with that key.
The keys are sorted in lexical order, as described below.
(Intermediate and leaf nodes only; required)
An array of two strings, specifying the (lexically) least and greatest keys included in the Names array
of a leaf node or in the Namesarrays of any leaf nodes that are descendants of an intermediate node.
Gets the KeysMeta for these keys.
Gets the KeysMeta of this dictionary type.
Gets the DebuggerDisplayAttribute text.
The debugger display.
Represents an 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).
Gets or sets a value indicating whether this instance is a 32-bit signed integer.
Gets or sets a value indicating whether this instance is a 64-bit signed integer.
Gets or sets a value indicating whether this instance is a floating point number.
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.
Represents a number tree node.
Initializes a new instance of the class.
Initializes a new instance of the class.
Gets a value indicating whether this instance is a root node.
Gets the number of Kids elements.
Gets the number of Nums elements.
Adds a child node to this node.
Adds a key/value pair to the Nums array of this node.
Gets the least key.
Gets the greatest key.
Updates the limits by inspecting Kids and Names.
Predefined keys of this dictionary.
(Root and intermediate nodes only; required in intermediate nodes;
present in the root node if and only if Nums is not present)
An array of indirect references to the immediate children of this node.
The children may be intermediate or leaf nodes.
(Root and leaf nodes only; required in leaf nodes; present in the root node if and only if Kids is not present)
An array of the form
[key1 value1 key2 value2 … keyn valuen]
where each keyi is an integer and the corresponding valuei is the object associated with that key.
The keys are sorted in numerical order, analogously to the arrangement of keys in a name tree.
(Intermediate and leaf nodes only; required)
An array of two integers, specifying the (numerically) least and greatest keys included in the Nums array
of a leaf node or in the Nums arrays of any leaf nodes that are descendants of an intermediate node.
Gets the KeysMeta for these keys.
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.
Gets or sets the comment for debugging purposes.
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.
Gets the indirect reference of this object. Throws if it is null.
The indirect reference must be not null here.
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 two objects are not 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.
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 outline 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 on 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. XGraphics 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 internal document link.
The link area in default page coordinates.
The destination page.
The position in the destination page.
Adds an internal document link.
The link area in default page coordinates.
The Named Destination’s name.
Adds an external document link.
The link area in default page coordinates.
The path to the target document.
The Named Destination’s name in the target document.
True, if the destination document shall be opened in a new window. If not set, the viewer application should behave in accordance with the current user preference.
Adds an embedded document link.
The link area in default page coordinates.
The path to the named destination through the embedded documents.
The path is separated by '\' and the last segment is the name of the named destination.
The other segments describe the route from the current (root or embedded) document to the embedded document holding the destination.
".." references to the parent, other strings refer to a child with this name in the EmbeddedFiles name dictionary.
True, if the destination document shall be opened in a new window.
If not set, the viewer application should behave in accordance with the current user preference.
Adds an external embedded document link.
The link area in default page coordinates.
The path to the target document.
The path to the named destination through the embedded documents in the target document.
The path is separated by '\' and the last segment is the name of the named destination.
The other segments describe the route from the root document to the embedded document.
Each segment name refers to a child with this name in the EmbeddedFiles name dictionary.
True, if the destination document shall be opened in a new window.
If not set, the viewer application should behave in accordance with the current user preference.
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.
Returns TypeCode for 32-bit integers.
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 coordinates 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.
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 code units.
Each char of the string is either a BMP code point or a high or low surrogate.
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.
Checks this PdfString for valid BOMs and rereads it with the specified Unicode encoding.
Checks string for valid BOMs and rereads it with the specified Unicode encoding.
The referenced PdfStringFlags are updated according to the encoding.
Checks string for valid BOMs and rereads it with the specified Unicode encoding.
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
Checks this PdfStringObject for valid BOMs and rereads it with the specified Unicode encoding.
Returns the string.
Writes the string literal with encoding DOCEncoded.
Represents a direct 32-bit 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 32-bit unsigned 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.
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.
For a given pass number (1 indexed) the scanline indexes of the lines included in that pass in the 8x8 grid.
Used to calculate the Adler-32 checksum used for ZLIB data in accordance with
RFC 1950: ZLIB Compressed Data Format Specification.
Calculate the Adler-32 checksum for some data.
The header for a data chunk in a PNG file.
The position/start of the chunk header within the stream.
The length of the chunk in bytes.
The name of the chunk, uppercase first letter means the chunk is critical (vs. ancillary).
Whether the chunk is critical (must be read by all readers) or ancillary (may be ignored).
A public chunk is one that is defined in the International Standard or is registered in the list of public chunk types maintained by the Registration Authority.
Applications can also define private (unregistered) chunk types for their own purposes.
Whether the (if unrecognized) chunk is safe to copy.
Create a new .
Describes the interpretation of the image data.
Grayscale.
Colors are stored in a palette rather than directly in the data.
The image uses color.
The image has an alpha channel.
The method used to compress the image data.
Deflate/inflate compression with a sliding window of at most 32768 bytes.
32-bit Cyclic Redundancy Code used by the PNG for checking the data is intact.
Calculate the CRC32 for data.
Calculate the CRC32 for data.
Calculate the combined CRC32 for data.
Computes a simple linear function of the three neighboring pixels (left, above, upper left),
then chooses as predictor the neighboring pixel closest to the computed value.
Indicates the pre-processing method applied to the image data before compression.
Adaptive filtering with five basic filter types.
The raw byte is unaltered.
The byte to the left.
The byte above.
The mean of bytes left and above, rounded down.
Byte to the left, above or top-left based on Paeth’s algorithm.
Enables execution of custom logic whenever a chunk is read.
Called by the PNG reader after a chunk is read.
The high level information about the image.
The width of the image in pixels.
The height of the image in pixels.
The bit depth of the image.
The color type of the image.
The compression method used for the image.
The filter method used for the image.
The interlace method used by the image..
Create a new .
Indicates the transmission order of the image data.
No interlace.
Adam7 interlace.
The Palette class.
True if palette has alpha values.
The palette data.
Creates a palette object. Input palette data length from PLTE chunk must be a multiple of 3.
Adds transparency values from tRNS chunk.
Gets the palette entry for a specific index.
A pixel in a image.
The red value for the pixel.
The green value for the pixel.
The blue value for the pixel.
The alpha transparency value for the pixel.
Whether the pixel is grayscale (if , and will all have the same value).
Create a new .
The red value for the pixel.
The green value for the pixel.
The blue value for the pixel.
The alpha transparency value for the pixel.
Whether the pixel is grayscale.
Create a new which has false and is fully opaque.
The red value for the pixel.
The green value for the pixel.
The blue value for the pixel.
Create a new grayscale .
The grayscale value.
Whether the pixel values are equal.
The other pixel.
if all pixel values are equal otherwise .
A PNG image. Call to open from file or bytes.
The header data from the PNG image.
The width of the image in pixels.
The height of the image in pixels.
Whether the image has an alpha (transparency) layer.
Get the palette index at the given column and row (x, y).
Pixel values are generated on demand from the underlying data to prevent holding many items in memory at once, so consumers
should cache values if they’re going to be looped over many times.
The x coordinate (column).
The y coordinate (row).
The palette index of the pixel at the coordinate.
Gets the color palette.
Get the pixel at the given column and row (x, y).
Pixel values are generated on demand from the underlying data to prevent holding many items in memory at once, so consumers
should cache values if they’re going to be looped over many times.
The x coordinate (column).
The y coordinate (row).
The pixel at the coordinate.
Read the PNG image from the stream.
The stream containing PNG data to be read.
Optional: A visitor which is called whenever a chunk is read by the library.
The data from the stream.
Read the PNG image from the stream.
The stream containing PNG data to be read.
Settings to apply when opening the PNG.
The data from the stream.
Read the PNG image from the bytes.
The bytes of the PNG data to be read.
Optional: A visitor which is called whenever a chunk is read by the library.
The data from the bytes.
Read the PNG image from the bytes.
The bytes of the PNG data to be read.
Settings to apply when opening the PNG.
The data from the bytes.
Read the PNG from the file path.
The path to the PNG file to open.
Optional: A visitor which is called whenever a chunk is read by the library.
This will open the file to obtain a so will lock the file during reading.
The data from the file.
Read the PNG from the file path.
The path to the PNG file to open.
Settings to apply when opening the PNG.
This will open the file to obtain a so will lock the file during reading.
The data from the file.
Used to construct PNG images. Call to make a new builder.
Create a builder for a PNG with the given width and size.
Create a builder from a .
Create a builder from the bytes of the specified PNG image.
Create a builder from the bytes in the BGRA32 pixel format.
https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.pixelformats.bgra32
The pixels in BGRA32 format.
The width in pixels.
The height in pixels.
Whether to include an alpha channel in the output.
Create a builder from the bytes in the BGRA32 pixel format.
https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.pixelformats.bgra32
The pixels in BGRA32 format.
The width in pixels.
The height in pixels.
Whether to include an alpha channel in the output.
Sets the RGB pixel value for the given column (x) and row (y).
Set the pixel value for the given column (x) and row (y).
Allows you to store arbitrary text data in the "iTXt" international textual data
chunks of the generated PNG image.
A keyword identifying the text data between 1-79 characters in length.
Must not start with, end with, or contain consecutive whitespace characters.
Only characters in the range 32 - 126 and 161 - 255 are permitted.
The text data to store. Encoded as UTF-8 that may not contain zero (0) bytes but can be zero-length.
Get the bytes of the PNG file for this builder.
Write the PNG file bytes to the provided stream.
Attempt to improve compressibility of the raw data by using adaptive filtering.
Options for configuring generation of PNGs from a .
Whether the library should try to reduce the resulting image size.
This process does not affect the original image data (it is lossless) but may
result in longer save times.
The number of parallel tasks allowed during compression.
Settings to use when opening a PNG using
The code to execute whenever a chunk is read. Can be .
Whether to throw if the image contains data after the image end marker.
by default.
Provides convenience methods for indexing into a raw byte array to extract pixel values.
Create a new .
The decoded pixel data as bytes.
The number of bytes in each pixel.
The palette for the image.
The image header.
Version information for all PDFsharp related assemblies.
The title of the product.
A characteristic description of the product.
The major version number of the product.
The minor version number of the product.
The patch number of the product.
The Version PreRelease string for NuGet.
The PDF creator application information string.
The PDF producer (created by) information string.
TODO: Called Creator in MigraDoc???
The full version number.
The full semantic version number created by GitVersion.
The home page of this product.
Unused.
The company that created/owned the product.
The name of the product.
The copyright information.
The trademark of the product.
Unused.
The technology tag of the product:
(none) : Core -- .NET 6 or higher
-gdi : GDI+ -- Windows only
-wpf : WPF -- Windows only
-hybrid : Both GDI+ and WPF (hybrid) -- for self-testing, not used anymore
-sl : Silverlight -- deprecated
-wp : Windows Phone -- deprecated
-wrt : Windows RunTime -- deprecated
-uwp : Universal Windows Platform -- not used anymore
Defines the action to be taken if a requested feature is not available
in the current build.
Silently ignore the parser error.
Log an information.
Log a warning.
Log an error.
Throw a parser exception.
UNDER CONSTRUCTION - DO NOT USE.
Capabilities.Fonts.IsAvailable.GlyphToPath
Resets the capabilities settings to the values they have immediately after loading the PDFsharp library.
This function is only useful in unit test scenarios and not intended to be called in application code.
Access to information about the current PDFsharp build via fluent API.
Gets the name of the PDFsharp build.
Can be 'CORE', 'GDI', or 'WPF'
Gets a value indicating whether this instance is PDFsharp CORE build.
Gets a value indicating whether this instance is PDFsharp GDI+ build.
Gets a value indicating whether this instance is PDFsharp WPF build.
Gets a 3-character abbreviation preceded with a dash of the current
build flavor system.
Valid return values are '-core', '-gdi', '-wpf', or '-xxx'
if the platform is not known.
Access to information about the currently running operating system.
The functionality supersede functions that are partially not available
in .NET Framework / Standard.
Indicates whether the current application is running on Windows.
Indicates whether the current application is running on Linux.
Indicates whether the current application is running on WSL2.
If IsWsl2 is true, IsLinux also is true.
Gets a 3-character abbreviation of the current operating system.
Valid return values are 'WIN', 'WSL', 'LNX', 'OSX',
or 'xxx' if the platform is not known.
Access to feature availability information via fluent API.
Gets a value indicating whether XPath.AddString is available in this build of PDFsharp.
It is always false in CORE build. It is true for GDI and WPF builds if the font did not come from a FontResolver.
The font family.
Access to action information with fluent API.
Gets or sets the action to be taken when trying to convert glyphs into a graphical path
and this feature is currently not supported.
Gets or sets the action to be taken when a not implemented path operation was invoked.
Currently, AddPie, AddClosedCurve, and AddPath are not implemented.
Access to compatibility features with fluent API.
Gets or sets a flag that defines how cryptographic exceptions should be handled that occur while decrypting objects of an encrypted document.
If false, occurring exceptions will be rethrown and PDFsharp will only open correctly encrypted documents.
If true, occurring exceptions will be caught and only logged for information purposes.
This way PDFsharp will be able to load documents with unencrypted contents that should be encrypted due to the settings of the file.
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 by 1189 mm or 33.11 inches by 46.81 inches.
Identifies a paper sheet size of 594 mm by 841 mm or 23.39 inches by 33.1 inches.
Identifies a paper sheet size of 420 mm by 594 mm or 16.54 inches by 23.29 inches.
Identifies a paper sheet size of 297 mm by 420 mm or 11.69 inches by 16.54 inches.
Identifies a paper sheet size of 210 mm by 297 mm or 8.27 inches by 11.69 inches.
Identifies a paper sheet size of 148 mm by 210 mm or 5.83 inches by 8.27 inches.
Identifies a paper sheet size of 860 mm by 1220 mm.
Identifies a paper sheet size of 610 mm by 860 mm.
Identifies a paper sheet size of 430 mm by 610 mm.
Identifies a paper sheet size of 305 mm by 430 mm.
Identifies a paper sheet size of 215 mm by 305 mm.
Identifies a paper sheet size of 153 mm by 215 mm.
Identifies a paper sheet size of 1000 mm by 1414 mm or 39.37 inches by 55.67 inches.
Identifies a paper sheet size of 707 mm by 1000 mm or 27.83 inches by 39.37 inches.
Identifies a paper sheet size of 500 mm by 707 mm or 19.68 inches by 27.83 inches.
Identifies a paper sheet size of 353 mm by 500 mm or 13.90 inches by 19.68 inches.
Identifies a paper sheet size of 250 mm by 353 mm or 9.84 inches by 13.90 inches.
Identifies a paper sheet size of 176 mm by 250 mm or 6.93 inches by 9.84 inches.
Identifies a paper sheet size of 10 inches by 8 inches or 254 mm by 203 mm.
Identifies a paper sheet size of 13 inches by 8 inches or 330 mm by 203 mm.
Identifies a paper sheet size of 10.5 inches by 7.25 inches or 267 mm by 184 mm.
Identifies a paper sheet size of 10.5 inches by 8 inches or 267 mm by 203 mm.
Identifies a paper sheet size of 11 inches by 8.5 inches or 279 mm by 216 mm.
Identifies a paper sheet size of 14 inches by 8.5 inches or 356 mm by 216 mm.
Identifies a paper sheet size of 17 inches by 11 inches or 432 mm by 279 mm.
Identifies a paper sheet size of 17 inches by 11 inches or 432 mm by 279 mm.
Identifies a paper sheet size of 19.25 inches by 15.5 inches or 489 mm by 394 mm.
Identifies a paper sheet size of 20 inches by 15 inches or 508 mm by 381 mm.
Identifies a paper sheet size of 21 inches by 16.5 inches or 533 mm by 419 mm.
Identifies a paper sheet size of 22.5 inches by 17.5 inches or 572 mm by 445 mm.
Identifies a paper sheet size of 23 inches by 18 inches or 584 mm by 457 mm.
Identifies a paper sheet size of 25 inches by 20 inches or 635 mm by 508 mm.
Identifies a paper sheet size of 28 inches by 23 inches or 711 mm by 584 mm.
Identifies a paper sheet size of 35 inches by 23.5 inches or 889 mm by 597 mm.
Identifies a paper sheet size of 45 inches by 35 inches or 1143 by 889 mm.
Identifies a paper sheet size of 8.5 inches by 5.5 inches or 216 mm by 396 mm.
Identifies a paper sheet size of 8.5 inches by 13 inches or 216 mm by 330 mm.
Identifies a paper sheet size of 5.5 inches by 8.5 inches or 396 mm by 216 mm.
Identifies a paper sheet size of 10 inches by 14 inches.
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.
The Pdf-Sharp-String-Resources.
PDF/UA extensions.
Extension for DrawString with a PDF Block Level Element tag.
Extension for DrawString with a PDF Inline Level Element tag.
Extension for DrawString with a PDF Block Level Element tag.
Extension for DrawString with a PDF Inline Level Element tag.
Extension for DrawString with a PDF Block Level Element tag.
Extension for DrawString with a PDF Inline Level Element tag.
Extension for DrawString with a PDF Block Level Element tag.
Extension for DrawString with a PDF Inline Level Element tag.
Extension for DrawAbbreviation with a PDF Inline Level Element tag.
Extension for DrawAbbreviation with a Span PDF Inline Level Element tag.
Extension for DrawAbbreviation with a Span PDF Inline Level Element tag.
Extension for DrawAbbreviation with a Span PDF Inline Level Element tag.
Extension for DrawAbbreviation with a Span PDF Inline Level Element tag.
Extension for DrawImage with an alternative text.
Extension for DrawImage with an alternative text.
Extension for DrawImage with an alternative text.
Extension for DrawImage with an alternative text.
Extension for DrawImage with an alternative text.
Extension for DrawImage with an alternative text.
Extension for DrawImage with an alternative text.
Extension for DrawImage with an alternative text.
Extension for DrawImage with an alternative text.
Extension for DrawImage with an alternative text.
Extension for DrawLink with an alternative text.
Extension for DrawLink with an alternative text.
Extension for DrawLink with an alternative text.
Extension for DrawLink with an alternative text.
Extension draws a list item with PDF Block Level Element tags.
Extension draws a list item with PDF Block Level Element tags.
Extension draws a list item with PDF Block Level Element tags.
Extension draws a list item with PDF Block Level Element tags.
PDF Block Level Element tags for Universal Accessibility.
(Paragraph) A low-level division of text.
A low-level division of text.
(Heading) A label for a subdivision of a document’s content. It should be the first child of the division that it heads.
A label for a subdivision of a document’s content. It should be the first child of the division that it heads.
Headings with specific levels, for use in applications that cannot hierarchically nest their sections and thus cannot
determine the level of a heading from its level of nesting.
Obsolete: Use Heading1 etc. instead.
Headings with specific levels, for use in applications that cannot hierarchically nest their sections and thus cannot
determine the level of a heading from its level of nesting.
Obsolete: Use Heading1 etc. instead.
Headings with specific levels, for use in applications that cannot hierarchically nest their sections and thus cannot
determine the level of a heading from its level of nesting.
Obsolete: Use Heading1 etc. instead.
Headings with specific levels, for use in applications that cannot hierarchically nest their sections and thus cannot
determine the level of a heading from its level of nesting.
Obsolete: Use Heading1 etc. instead.
Headings with specific levels, for use in applications that cannot hierarchically nest their sections and thus cannot
determine the level of a heading from its level of nesting.
Obsolete: Use Heading1 etc. instead.
Headings with specific levels, for use in applications that cannot hierarchically nest their sections and thus cannot
determine the level of a heading from its level of nesting.
Obsolete: Use Heading1 etc. instead.
Headings with specific level 1, for use in applications that cannot hierarchically nest their sections and thus cannot
determine the level of a heading from its level of nesting.
Headings with specific level 2, for use in applications that cannot hierarchically nest their sections and thus cannot
determine the level of a heading from its level of nesting.
Headings with specific level 3, for use in applications that cannot hierarchically nest their sections and thus cannot
determine the level of a heading from its level of nesting.
Headings with specific level 4, for use in applications that cannot hierarchically nest their sections and thus cannot
determine the level of a heading from its level of nesting.
Headings with specific level 5, for use in applications that cannot hierarchically nest their sections and thus cannot
determine the level of a heading from its level of nesting.
Headings with specific level 6, for use in applications that cannot hierarchically nest their sections and thus cannot
determine the level of a heading from its level of nesting.
(List) A sequence of items of like meaning and importance. Its immediate children should be an optional caption (structure type Caption).
A sequence of items of like meaning and importance. Its immediate children should be an optional caption (structure type Caption).
(Label) A name or number that distinguishes a given item from others in the same list or other group of like items. In a dictionary list,
for example, it contains the term being defined; in a bulleted or numbered list, it contains the bullet character or the number of the
list item and associated punctuation.
A name or number that distinguishes a given item from others in the same list or other group of like items. In a dictionary list,
for example, it contains the term being defined; in a bulleted or numbered list, it contains the bullet character or the number of the
list item and associated punctuation.
(List item) An individual member of a list. Its children may be one or more labels, list bodies,
or both (structure types Lbl or LBody; see below).
An individual member of a list. Its children may be one or more labels, list bodies,
or both (structure types Lbl or LBody; see below).
(List body) The descriptive content of a list item. In a dictionary list, for example, it contains
the definition of the term. It can either contain the content directly or have other BLSEs, perhaps including nested lists, as children.
The descriptive content of a list item. In a dictionary list, for example, it contains
the definition of the term. It can either contain the content directly or have other BLSEs, perhaps including nested lists, as children.
A two-dimensional layout of rectangular data cells, possibly having a complex substructure. It contains either one or more
table rows (structure type TR) as children; or an optional table head (structure type THead) followed by one or more table
body elements (structure type TBody) and an optional table footer (structure type TFoot). In addition, a table may have an optional
caption (structure type Caption) as its first or last child.
(Table row) A row of headings or data in a table. It may contain table header cells and table data cells (structure types TH and TD).
A row of headings or data in a table. It may contain table header cells and table data cells (structure types TH and TD).
(Table header cell) A table cell containing header text describing one or more rows or columns of the table.
A table cell containing header text describing one or more rows or columns of the table.
(Table data cell) A table cell containing data that is part of the table’s content.
A table cell containing data that is part of the table’s content.
(Table header row group; PDF 1.5) A group of rows that constitute the header of a table. If the table is split across multiple pages,
these rows may be redrawn at the top of each table fragment (although there is only one THead element).
(PDF 1.5) A group of rows that constitute the header of a table. If the table is split across multiple pages,
these rows may be redrawn at the top of each table fragment (although there is only one THead element).
(Table body row group; PDF 1.5) A group of rows that constitute the main body portion of a table. If the table is split across multiple
pages, the body area may be broken apart on a row boundary. A table may have multiple TBody elements to allow for the drawing of a
border or background for a set of rows.
(PDF 1.5) A group of rows that constitute the main body portion of a table. If the table is split across multiple
pages, the body area may be broken apart on a row boundary. A table may have multiple TBody elements to allow for the drawing of a
border or background for a set of rows.
(Table footer row group; PDF 1.5) A group of rows that constitute the footer of a table. If the table is split across multiple pages,
these rows may be redrawn at the bottom of each table fragment (although there is only one TFoot element.)
(PDF 1.5) A group of rows that constitute the footer of a table. If the table is split across multiple pages,
these rows may be redrawn at the bottom of each table fragment (although there is only one TFoot element.)
PDF Grouping Element tags for Universal Accessibility.
(Document) A complete document. This is the root element of any structure tree containing multiple parts or multiple articles.
(Part) A large-scale division of a document. This type of element is appropriate for grouping articles or sections.
(Article) A relatively self-contained body of text constituting a single narrative or exposition. Articles should be disjoint;
that is, they should not contain other articles as constituent elements.
(Article) A relatively self-contained body of text constituting a single narrative or exposition. Articles should be disjoint;
that is, they should not contain other articles as constituent elements.
(Section) A container for grouping related content elements.
For example, a section might contain a heading, several introductory paragraphs,
and two or more other sections nested within it as subsections.
(Section) A container for grouping related content elements.
For example, a section might contain a heading, several introductory paragraphs,
and two or more other sections nested within it as subsections.
(Division) A generic block-level element or group of elements.
(Division) A generic block-level element or group of elements.
(Block quotation) A portion of text consisting of one or more paragraphs attributed to someone other than the author of the
surrounding text.
(Block quotation) A portion of text consisting of one or more paragraphs attributed to someone other than the author of the
surrounding text.
(Caption) A brief portion of text describing a table or figure.
(Table of contents) A list made up of table of contents item entries (structure type TableOfContentsItem; see below)
and/or other nested table of contents entries (TableOfContents).
A TableOfContents entry that includes only TableOfContentsItem entries represents a flat hierarchy.
A TableOfContents entry that includes other nested TableOfContents entries (and possibly TableOfContentsItem entries)
represents a more complex hierarchy. Ideally, the hierarchy of a top level TableOfContents entry reflects the
structure of the main body of the document.
Note: Lists of figures and tables, as well as bibliographies, can be treated as tables of contents for purposes of the
standard structure types.
(Table of contents) A list made up of table of contents item entries (structure type TableOfContentsItem; see below)
and/or other nested table of contents entries (TableOfContents).
A TableOfContents entry that includes only TableOfContentsItem entries represents a flat hierarchy.
A TableOfContents entry that includes other nested TableOfContents entries (and possibly TableOfContentsItem entries)
represents a more complex hierarchy. Ideally, the hierarchy of a top level TableOfContents entry reflects the
structure of the main body of the document.
Note: Lists of figures and tables, as well as bibliographies, can be treated as tables of contents for purposes of the
standard structure types.
(Table of contents item) An individual member of a table of contents. This entry’s children can be any of the following structure types:
Label A label.
Reference A reference to the title and the page number.
NonstructuralElement Non-structure elements for wrapping a leader artifact.
Paragraph Descriptive text.
TableOfContents Table of content elements for hierarchical tables of content, as described for the TableOfContents entry.
(Table of contents item) An individual member of a table of contents. This entry’s children can be any of the following structure types:
Label A label.
Reference A reference to the title and the page number.
NonstructuralElement Non-structure elements for wrapping a leader artifact.
Paragraph Descriptive text.
TableOfContents Table of content elements for hierarchical tables of content, as described for the TableOfContents entry.
(Index) A sequence of entries containing identifying text accompanied by reference elements (structure type Reference) that point out
occurrences of the specified text in the main body of a document.
(Nonstructural element) A grouping element having no inherent structural significance; it serves solely for grouping purposes.
This type of element differs from a division (structure type Division; see above) in that it is not interpreted or exported to other
document formats; however, its descendants are to be processed normally.
(Nonstructural element) A grouping element having no inherent structural significance; it serves solely for grouping purposes.
This type of element differs from a division (structure type Division; see above) in that it is not interpreted or exported to other
document formats; however, its descendants are to be processed normally.
(Private element) A grouping element containing private content belonging to the application producing it. The structural significance
of this type of element is unspecified and is determined entirely by the producer application. Neither the Private element nor any of
its descendants are to be interpreted or exported to other document formats.
(Private element) A grouping element containing private content belonging to the application producing it. The structural significance
of this type of element is unspecified and is determined entirely by the producer application. Neither the Private element nor any of
its descendants are to be interpreted or exported to other document formats.
PDF Illustration Element tags for Universal Accessibility.
(Figure) An item of graphical content. Its placement may be specified with the Placementlayout attribute.
(Formula) A mathematical formula.
(Form) A widget annotation representing an interactive form field.
If the element contains a Role attribute, it may contain content items that represent
the value of the (non-interactive) form field. If the element omits a Role attribute,
its only child is an object reference identifying the widget annotation.
The annotations’ appearance stream defines the rendering of the form element.
PDF Inline Level Element tags for Universal Accessibility.
(Span) A generic inline portion of text having no particular inherent characteristics.
It can be used, for example, to delimit a range of text with a given set of styling attributes.
(Quotation) An inline portion of text attributed to someone other than the author of the surrounding text.
(Quotation) An inline portion of text attributed to someone other than the author of the surrounding text.
(Note) An item of explanatory text, such as a footnote or an endnote, that is referred to from within the
body of the document. It may have a label (structure type Lbl) as a child. The note may be included as a
child of the structure element in the body text that refers to it, or it may be included elsewhere
(such as in an endnotes section) and accessed by means of a reference (structure type Reference).
(Reference) A citation to content elsewhere in the document.
(Bibliography entry) A reference identifying the external source of some cited content.
It may contain a label (structure type Lbl) as a child.
(Bibliography entry) A reference identifying the external source of some cited content.
It may contain a label (structure type Lbl) as a child.
(Code) A fragment of computer program text.
(Link) An association between a portion of the ILSE’s content and a corresponding link annotation or annotations.
Its children are one or more content items or child ILSEs and one or more object references identifying the
associated link annotations.
(Annotation; PDF 1.5) An association between a portion of the ILSE’s content and a corresponding PDF annotation.
Annotation is used for all PDF annotations except link annotations and widget annotations.
(Annotation; PDF 1.5) An association between a portion of the ILSE’s content and a corresponding PDF annotation.
Annot is used for all PDF annotations except link annotations and widget annotations.
(Ruby; PDF 1.5) A side-note (annotation) written in a smaller text size and placed adjacent to the base text to
which it refers. It is used in Japanese and Chinese to describe the pronunciation of unusual words or to describe
such items as abbreviations and logos. A Rubyelement may also contain the RB, RT, and RP elements.
(Warichu; PDF 1.5) A comment or annotation in a smaller text size and formatted onto two smaller lines within the
height of the containing text line and placed following (inline) the base text to which it refers. It is used in
Japanese for descriptive comments and for ruby annotation text that is too long to be aesthetically formatted as
a ruby. A Warichu element may also contain the WT and WP elements.
Helper class containing methods that are called on XGraphics object’s XGraphicsPdfRenderer.
Activate Text mode for Universal Accessibility.
Activate Graphic mode for Universal Accessibility.
Determine if renderer is in Text mode or Graphic mode.
Helper class that adds structure to PDF documents.
Starts a grouping element.
The structure type to be created.
Starts a grouping element.
Starts a block-level element.
The structure type to be created.
Starts a block-level element.
Starts an inline-level element.
The structure type to be created.
Starts an inline-level element.
Starts an illustration element.
The structure type to be created.
The alternative text for this illustration.
The element’s bounding box.
Starts an illustration element.
Starts an artifact.
Starts a link element.
The PdfLinkAnnotation this link is using.
The alternative text for this link.
Ends the current element.
Gets the current structure element.
Sets the content of the "/Alt" (alternative text) key. Used e.g. for illustrations.
The alternative text.
Sets the content of the "/E" (expanded text) key. Used for abbreviations.
The expanded text representation of the abbreviation.
Sets the content of the "/Lang" (language) key. The chosen language is used for all children of the current structure element until a child has a new language defined.
The language of the structure element and its children.
Sets the rowspan of a table cell.
The number of spanning cells.
Sets the colspan of a table cell.
The number of spanning cells.
Starts the marked content. Used for every marked content with an MCID.
The StructureElementItem to create a marked content for.
Ends all open marked contents that have a marked content with ID.
The next marked content with ID to be assigned.
Creates a new indirect structure element dictionary of the specified structure type.
Adds the marked content with the given MCID on the current page to the given structure element.
The structure element.
The MCID.
Creates a new parent element array for the current page and adds it to the ParentTree, if not yet existing.
Adds the structure element to the index of mcid to the parent element array .
Sets the page’s "/StructParents" key to the index of the parent element array in the ParentTree.
The structure element to be added to the parent tree.
The MCID of the current marked content (this is equal to the index of the entry in the parent tree node).
Adds the structure element to the ParentTree.
Sets the annotation’s "/StructParent" key to the index of the structure element in the ParentTree.
The structure element to be added to the parent tree.
The annotation to be added.
Adds a PdfObjectReference referencing annotation and the current page to the given structure element.
The structure element.
The annotation.
Called when AddPage was issued.
Called when DrawString was issued.
Called when e.g. DrawEllipse was issued.
Used to write text directly to the content stream.
Constructor.
Writes text to the content stream.
The text to write to the content stream.
Base class of items of the structure stack.
True if a user function call issued the creation of this item.
Called when DrawString is executed on the current XGraphics object.
Called when a draw method is executed on the current XGraphics object.
Base class of marked content items of the structure stack.
True if content stream was in text mode (BT) when marked content sequence starts;
false otherwise (ET). Used to balance BT and ET before issuing EMC.
Represents a marked content stream with MCID.
The nearest structure element item on the stack.
Represents marked content identifying an artifact.
Base class of structure element items of the structure stack.
The current structure element.
The category of the current structure element.
Represents all grouping elements.
Represents all block-level elements.
Represents all inline-level elements.
Represents all illustration elements.
The alternate text.
The bounding box.
The UAManager of the document this stack belongs to.
The StructureItem stack.
This is just a scratch.
Initializes a new instance of the class.
The PDF document.
Root of the structure tree.
Structure element of the document.
Gets the Universal Accessibility Manager for the document.
Gets the structure builder.
Gets the owning document for this UAManager.
Gets the current page.
Gets the current XGraphics object.
Sets the language of the document.
Sets the text mode.
Sets the graphic mode.
Determine if renderer is in Text mode or Graphic mode.