# Adobe PDF Library 21 .NET Framework API Reference APDFL21.0.0PlusP1e > The Adobe PDF Library .NET Framework API provides comprehensive PDF document creation and manipulation capabilities. Browse classes, enumerations, and interfaces organized by functional area. - Product: Adobe PDF Library 21 - Language: .NET Framework - Version: APDFL21.0.0PlusP1e - HTML page: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e - Version index: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/llms.txt The Adobe PDF Library .NET Framework API provides comprehensive PDF document creation and manipulation capabilities. Browse classes, enumerations, and interfaces organized by functional area. ## Instantiating the Library The Library object must be instantiated on each thread before any of the PDFL objects are used. If the Library object is instantiated on any thread, it must also at least be instantiated on the main thread. In addition, for cleanup purposes, the Dispose method **must** be called on the Library object before the thread is terminated. A simple way to accomplish this is a **using** statement: ```csharp using (Library lib = new Library()) // your application code that uses PDFL goes here... ``` The Library object can be instantiated without specifying flags or a list of Resource locations. User resources will be placed first in the search list. ## Activating a License-Managed version To use an activation key, the *LibraryKey* member of the *Library* class can be set to a valid activation key **prior** to instantiating the library. ```csharp Library.LicenseKey = "xxxx-xxxx-xxxx-xxxx"; Library lib = new Library(); ``` --- # AcroFormExportType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AcroFormExportType **Namespace:** `Datalogics::PDFL` ## Values - `XFDF = 1`: XFDF (XML Forms Data Format) representing form field data. - `FDF = 2`: FDF (Forms Data Format) representing form field data. - `XML = 3`: XML (Extensible Markup Language) representing form field data. --- # AcroFormImportType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AcroFormImportType **Namespace:** `Datalogics::PDFL` ## Values - `XFDF = 1`: XFDF (XML Forms Data Format) representing form field data. - `FDF = 2`: FDF (Forms Data Format) representing form field data. - `XML = 3`: XML (Extensible Markup Language) representing form field data. --- # Action Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Action ```csharp class Action : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` **Derived classes:** [`GoToAction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GoToAction.md), [`LaunchAction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LaunchAction.md), [`RemoteGoToAction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RemoteGoToAction.md), [`URIAction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/URIAction.md) ## Description When a user clicks a link or bookmark in a PDF, an action occurs, moving the reader to a new location. An action can involve moving the reader to a new page in the file, for example. Also, with a PDF Viewer a PDF file can have an Action that runs automatically when a user opens the file, or reaches a specific page. Applications can support Actions in custom annotation types they add. Only GoTo and URI Actions are supported; you can only use an Action with the interface to move from one part of a file to another or open an external web page. **Referenced by:** [`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md), [`LinkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LinkAnnotation.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md) ## Constructors ### Action ```csharp Datalogics.PDFL.Action.Action(Document doc, string type) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document in which the action is created. - `type` (`string`): The string corresponding to the action's subtype. Creates a new action object. ## Properties ### PDFDict ```csharp PDFDict Datalogics.PDFL.Action.PDFDict { get; } ``` Retrieve the PDFObject representation of this object. ### Subtype ```csharp string Datalogics.PDFL.Action.Subtype { get; } ``` The action's subtype. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Action.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Action.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.Action.ToString() ``` **Returns:** `override string` A string describing this Action. Returns a string representation of this Action. The string includes the action's subtype. --- # AddPageFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AddPageFlags **Namespace:** `Datalogics::PDFL` ## Description Flags that control how annotations are handled when adding a page to a Content object. ## Values - `AllAnnotations = 1`: Add all annotations when adding the page. --- # AFRelationship Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AFRelationship **Namespace:** `Datalogics::PDFL` ## Description Represents the relationship between the component of the PDF document that refers to this attachment and the file denoted by the attachment ## Values - `Source = 0`: Original source material. - `Data = 1`: Information used to derive a visual presentation, e.g. table or graph. - `Alternative = 2`: Alternative representation of content, e.g. audio. - `Supplement = 3`: Supplemental representation of the original source or data that may be more easily consumable. - `EncryptedPayload = 4`: Encrypted payload document that should be displayed if the Processor has the cryptographic filter needed to decrypt it. - `FormData = 5`: Data associated with the AcroForm. - `Schema = 6`: Schema definition for the associated object. - `Unspecified = 7`: Relationship is not known or can't be described using of the other values. --- # Annotation Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation ```csharp class Annotation : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` **Derived classes:** [`CircleAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CircleAnnotation.md), [`FreeTextAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FreeTextAnnotation.md), [`InkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/InkAnnotation.md), [`LineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LineAnnotation.md), [`LinkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LinkAnnotation.md), [`PolyLineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolyLineAnnotation.md), [`PolygonAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolygonAnnotation.md), [`Redaction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Redaction.md), [`SquareAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SquareAnnotation.md), [`TextMarkupAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextMarkupAnnotation.md) ## Description Associates an object with its location on a page of a PDF document. An annotation associates an object such as a note, sound, or movie with a location on a page of a PDF document, or provides a way to interact with the user by means of the mouse and keyboard. **Referenced by:** [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md) **Uses types:** [`AnnotationFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AnnotationFlags.md), [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### Annotation ```csharp Datalogics.PDFL.Annotation.Annotation(Page page, string subtype, Rect initialRect) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the annotation is added. - `subtype` (`string`): The type of the annotation. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the annotation's bounds, specified in user space coordinates. Create a new Annotation at the end of a page's annotation array. To create an annotation and place it elsewhere in the page's annotation array, use the version of the constructor that takes an array position. ### Annotation ```csharp Datalogics.PDFL.Annotation.Annotation(Page page, string subtype, Rect initialRect, int addAfter) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the annotation is added. - `subtype` (`string`): The type of the annotation. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the annotation's bounds, specified in user space coordinates. - `addAfter` (`int`): Where to add the annotation in the page's annotation array. Create a new Annotation at a specific index in the page's annotation array. ## Properties ### AnnotationFeatureLevel ```csharp double Datalogics.PDFL.Annotation.AnnotationFeatureLevel { get; set; } ``` The minimum PDF version necessary to support the features used in this annotation. ### Color ```csharp Color Datalogics.PDFL.Annotation.Color { get; set; } ``` The color of the annotation. ### Contents ```csharp string Datalogics.PDFL.Annotation.Contents { get; set; } ``` The text contents of the annotation. 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. ### Flags ```csharp AnnotationFlags Datalogics.PDFL.Annotation.Flags { get; set; } ``` The flags for the annotation. ### InteriorColor ```csharp Color Datalogics.PDFL.Annotation.InteriorColor { get; set; } ``` The interior color with which to fill the annotation's rectangle or circle. The color of the border itself can be retrieved from Annotation.Color. ### NormalAppearance ```csharp Form Datalogics.PDFL.Annotation.NormalAppearance { get; set; } ``` The normal appearance of the annotation, represented as a Form XObject. ### Opacity ```csharp double Datalogics.PDFL.Annotation.Opacity { get; set; } ``` The constant opacity value used in painting a Markup annotation. Opacity is a range from 0.0 (fully transparent) to 1.0 (fully opaque). ### OptionalContentMembershipDict ```csharp OptionalContentMembershipDict Datalogics.PDFL.Annotation.OptionalContentMembershipDict { get; set; } ``` The OptionalContentMembershipDict property for this Annotation. Setting this property will attach the Annotation to an OptionalContentMembershipDict; it will then be associated with the OptionalContentGroups and be subject to the VisibilityPolicy and VisibilityExpression of that MembershipDict. By setting this property to null, the Annotation is detached from any OptionalContentMembershipDict. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Annotation.PDFDict { get; } ``` The underlying PDF dictionary for this annotation. Retrieves the PDFDict representation of this annotation object. ### Rect ```csharp Rect Datalogics.PDFL.Annotation.Rect { get; set; } ``` The size and location of the annotation on its page. ### Subtype ```csharp string Datalogics.PDFL.Annotation.Subtype { get; } ``` The annotation's subtype. ### Title ```csharp string Datalogics.PDFL.Annotation.Title { get; set; } ``` The title of the annotation. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Annotation.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Annotation.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### GenerateAppearance ```csharp virtual Form Datalogics.PDFL.Annotation.GenerateAppearance() ``` **Returns:** [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md) A Form representing the visual appearance, or null if the appearance could not be generated. Generate a new appearance stream with the current annotation properties. The resulting Form can then be used to set the annotation's appearance, such as by calling SetNormalAppearance. ### HasRichTextData ```csharp bool Datalogics.PDFL.Annotation.HasRichTextData() ``` **Returns:** `bool` true if the annotation contains Rich Text String content. Checks the annotation for Rich Text String content (PDFReference 1.7 Section 8.6.2). Annotations that contain Rich Text String content and do not have a normal appearance set will not be visible when rendering the page. ### IsCurrentlyVisible ```csharp bool Datalogics.PDFL.Annotation.IsCurrentlyVisible(OptionalContentContext occ) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which to check visibility. **Returns:** `bool` true if the annotation is currently visible. Tests whether an annotation is visible in a given optional content context, considering the current ON-OFF states of the optional-content groups in the optional-content dictionary (OCMD) and the dictionary's visibility policy. If the annotation occurs more than once within the content, this method only checks the visibility of the first occurrence of the annotation. This method determines visibility without considering the visbility of the Content object that the annotation belongs to. To determine the visibility of an annotation while taking the Content's visibility into consideration, use the alternate version of this method. ### ToString ```csharp override string Datalogics.PDFL.Annotation.ToString() ``` **Returns:** `override string` A string describing this annotation, including its type and rectangle. Returns a string representation of this annotation. --- # AnnotationFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AnnotationFlags **Namespace:** `Datalogics::PDFL` ## Description Bitfield flags that control the display and behavior of annotations. These flags are defined in the PDF specification (Table 165) and can be combined to control annotation visibility, printing, rotation, and interactivity. ## Values - `Invisible = 0x01`: If there is no annotation handler, the annotation is invisible. - `Hidden = 0x02`: The annotation is not visible and does not print. - `Print = 0x04`: The annotation prints. - `NoZoom = 0x08`: The annotation does not zoom with the view. - `NoRotate = 0x10`: The annotation does not rotate with the page. - `NoView = 0x20`: The annotation does not view but can print. - `ReadOnly = 0x40`: The annotation does not interact with the user. - `Lock = 0x80`: The annotation does not move or resize with the view. Only form fields respect this flag. If the annotation is locked, the user cannot delete, move or change its associated form field's properties. - `ToggleNoView = 0x100`: A mouse-over or selection causes the noView bit to toggle. - `LockContents = 0x200`: If the annotation is content-locked, the user can not change its content key. --- # AxialShadingPattern Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/AxialShadingPattern ```csharp class AxialShadingPattern : ShadingPattern ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`ShadingPattern`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ShadingPattern.md) ## Description A color blend that varies along an axis. An axial shading specifies a color blend that varies along a linear axis between two endpoints, and indefinitely perpendicular to that axis. **Uses types:** [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### AxialShadingPattern ```csharp Datalogics.PDFL.AxialShadingPattern.AxialShadingPattern(ColorSpace colorSpace, System.Collections.Generic.IList< Point > coords, System.Collections.Generic.IList< Function > function) ``` *constructor* **Parameters** - `colorSpace` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The color space for the pattern. - `coords` ([`System.Collections.Generic.IList< Point >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): The coordinates of the two endpoints of the axial shading. - `function` ([`System.Collections.Generic.IList< Function >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): One 1-in n-out function, or an array of n 1-in 1-out functions that determine the values of the color channels. Create an AxialShadingPattern. ## Properties ### AntiAlias ```csharp bool Datalogics.PDFL.ShadingPattern.AntiAlias { get; set; } ``` Gets whether anti-aliasing is enabled for the shading. When enabled, the shading function is filtered to prevent aliasing artifacts. ### BackgroundColor ```csharp Color Datalogics.PDFL.ShadingPattern.BackgroundColor { get; set; } ``` Gets the background color of the shading pattern. This color must be in the color space of the shading pattern. If present, it is used to fill the areas that are outside the bounds of the shading object. May be NULL. ### BoundingBox ```csharp Rect Datalogics.PDFL.ShadingPattern.BoundingBox { get; set; } ``` Gets the bounding box of the shading. The coordinates are interpreted in the target coordinate space. If present, provides an additional, temporary clipping boundary to the shading. ### ColorSpace ```csharp ColorSpace Datalogics.PDFL.ShadingPattern.ColorSpace { get; set; } ``` Gets the color space of a shading pattern. This space is restricted to be any space except a Pattern space. ### Coords ```csharp System.Collections.Generic.IList Datalogics.PDFL.AxialShadingPattern.Coords { get; set; } ``` The coordinates of the two endpoints of the axial shading. ### Domain ```csharp System.Collections.Generic.IList Datalogics.PDFL.AxialShadingPattern.Domain { get; set; } ``` The domain of the parametric variable t for the axial shading. An array of two numbers that specify the limiting values of the parametric variable t. This variable t varies linearly between these two values as the gradient varies between the starting and ending points of the axis. Defaults to [0, 1]. May be NULL. ### Extend ```csharp System.Collections.Generic.IList Datalogics.PDFL.AxialShadingPattern.Extend { get; set; } ``` Whether the shading extends beyond the start and end points of the axis. An array of two boolean values indicating whether to extend the shading beyond the starting and ending points of the axis, respectively. Default value: [false, false]. May be NULL. ### Function ```csharp System.Collections.Generic.IList Datalogics.PDFL.AxialShadingPattern.Function { get; set; } ``` The function(s) that determine the color channel values for the shading. One 1-in n-out function, or an array of n 1-in 1-out functions that determine the values of the color channels, where n is the number of color components in the shading's color space. The functions are called with a parametric variable t which varies across the Domain. ### PDFObject ```csharp PDFObject Datalogics.PDFL.Pattern.PDFObject { get; } ``` Gets the underlying PDF object for this pattern. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Pattern.Dispose() ``` **Returns:** `void` ### ToString ```csharp override string Datalogics.PDFL.AxialShadingPattern.ToString() ``` **Returns:** `override string` A formatted string describing this AxialShadingPattern. Return a string representation of the AxialShadingPattern. The string includes the color space, background color, bounding box, anti-alias flag, coordinates, function, domain, and extend values. --- # BlendMode Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/BlendMode **Namespace:** `Datalogics::PDFL` ## Description The blend mode used for painting objects. ## Values - `Compatible = 0`: No longer needed but still recognized; equivalent to the Normal blend mode. - `Normal = 1`: Selects the source color, or the color in the graphics object, and ignores the backdrop. - `Multiply = 2`: Multiplies the source color and the backdrop color. This means that the color will always be at least as dark as the constituent colors. If either the source object or the backdrop is black, the color will be black. - `Screen = 3`: Multiplies the complements of the source color and the backdrop, and then complements the result. The result is always as light as either of the constituent colors. - `Difference = 4`: Subtracts the darker of the two constituent colors from the lighter color. - `Darken = 5`: Selects the darker of the backdrop or source colors. - `Lighten = 6`: Selects the lighter of the backdrop or source colors. - `ColorDodge = 7`: Brighten the backdrop color to reflect the source color. - `ColorBurn = 8`: Darken the backdrop color to reflect the source color. - `Exclusion = 9`: Similar to the Difference mode, but lower in contrast. - `HardLight = 10`: Multiplies or screens the colors, depending on the source color value. - `Overlay = 11`: Multiplies or screens the colors, depending on the backdrop color value. Source colors overlay the backdrop while preserving highlights and shadows. The backdrop color is mixed with the source color to reflect the lightness or darkness of the backdrop. - `SoftLight = 12`: Darkens or lightens the colors, depending on the source color value. - `Luminosity = 13`: Creates a color with the luminosity of the source color and the hue and saturation of the backdrop color. - `Hue = 14`: Creates a color with the hue of the source color and the saturation and luminosity of the background color. - `Saturation = 15`: Creates a color with the saturation of the source color and the hue and luminosity of the backdrop color. - `Color = 16`: Creates a color with the hue and saturation of the source color and the luminosity of the backdrop color. - `Unknown = 17`: The blend mode is not recognized or could not be determined. --- # Bookmark Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark ```csharp class Bookmark : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A bookmark on a page of a PDF document. Each bookmark has a title that appears on screen, and an action that specifies what happens when a user clicks on the bookmark. The typical action for a user-created bookmark is to move to another location in the current document, although any action (see Action) can be specified. **Referenced by:** [`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) **Uses types:** [`Action`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Action.md), [`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md), [`BookmarkFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/BookmarkFlags.md), [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`ViewDestination`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ViewDestination.md) ## Properties ### Action ```csharp Action Datalogics.PDFL.Bookmark.Action { get; set; } ``` Get the Action for a bookmark. ### Color ```csharp Color Datalogics.PDFL.Bookmark.Color { get; set; } ``` Get the color of the bookmark. ### Count ```csharp int Datalogics.PDFL.Bookmark.Count { get; } ``` Get the number of open bookmarks in the subtree under this bookmark. ### FirstChild ```csharp Bookmark Datalogics.PDFL.Bookmark.FirstChild { get; } ``` Gets a bookmark's first child. ### Flags ```csharp BookmarkFlags Datalogics.PDFL.Bookmark.Flags { get; set; } ``` Get the flags for the bookmark. ### Indent ```csharp int Datalogics.PDFL.Bookmark.Indent { get; } ``` Get the indentation level of a bookmark in its containing tree. ### LastChild ```csharp Bookmark Datalogics.PDFL.Bookmark.LastChild { get; } ``` Gets a bookmark's last child. ### Next ```csharp Bookmark Datalogics.PDFL.Bookmark.Next { get; } ``` Gets a bookmark's next (right) sibling. ### Open ```csharp bool Datalogics.PDFL.Bookmark.Open { get; set; } ``` Is the bookmark open? ### PDFDict ```csharp PDFDict Datalogics.PDFL.Bookmark.PDFDict { get; } ``` Get the dictionary associated with the bookmark. ### Parent ```csharp Bookmark Datalogics.PDFL.Bookmark.Parent { get; } ``` Gets a bookmark's parent. ### Previous ```csharp Bookmark Datalogics.PDFL.Bookmark.Previous { get; } ``` Gets a bookmark's previous (left) sibling. ### Title ```csharp string Datalogics.PDFL.Bookmark.Title { get; set; } ``` The title of the bookmark. ### ViewDestination ```csharp ViewDestination Datalogics.PDFL.Bookmark.ViewDestination { get; } ``` If this bookmark has a GoTo action, then return the destination of the action, else return null. ## Methods ### AddChild ```csharp void Datalogics.PDFL.Bookmark.AddChild(Bookmark child) ``` **Parameters** - `child` ([`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md)): the bookmark being added. **Returns:** `void` Add an existing bookmark to be the child bookmark of a parent. ### AddNextSibling ```csharp void Datalogics.PDFL.Bookmark.AddNextSibling(Bookmark NewRightSibling) ``` **Parameters** - `NewRightSibling` ([`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md)): The bookmark to become the new right sibling. **Returns:** `void` Add a bookmark to a tree as the next (right) sibling. ### AddPreviousSibling ```csharp void Datalogics.PDFL.Bookmark.AddPreviousSibling(Bookmark NewLeftSibling) ``` **Parameters** - `NewLeftSibling` ([`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md)): The bookmark to become the new left sibling. **Returns:** `void` Add a bookmark to a tree as the previous (left) sibling. ### AddSubtree ```csharp void Datalogics.PDFL.Bookmark.AddSubtree(Bookmark subtree, string title) ``` **Parameters** - `subtree` ([`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md)): The bookmark subtree to add. - `title` (`string`): the title of the newly added subtree. **Returns:** `void` Add a copy of a subtree as the new last child of a parent bookmark, and gives the subtree an initial title. ### CreateNewChild ```csharp Bookmark Datalogics.PDFL.Bookmark.CreateNewChild(Page page, string title) ``` **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The PDF page of the new child bookmark. - `title` (`string`): The initial title of the new child bookmark. **Returns:** [`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md) The newly created child bookmark. (Deprecated, function may be removed in the future, use single-parameter CreateNewChild() method instead) Create a bookmark and add to a parent as the last child bookmark, and give the new bookmark an initial title. ### CreateNewChild ```csharp Bookmark Datalogics.PDFL.Bookmark.CreateNewChild(string title) ``` **Parameters** - `title` (`string`): The initial text of the new child bookmark. **Returns:** [`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md) The newly created child bookmark. Create a new bookmark and add to a parent as the last child bookmark, using supplied string as the initial text. ### CreateNewSibling ```csharp Bookmark Datalogics.PDFL.Bookmark.CreateNewSibling(string title) ``` **Parameters** - `title` (`string`): The initial text for the new right sibling. **Returns:** [`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md) The newly created sibling bookmark. Create a new bookmark in a tree as the next (right) sibling, using supplied string as the initial text. ### Destroy ```csharp void Datalogics.PDFL.Bookmark.Destroy() ``` **Returns:** `void` Removes a bookmark subtree from the bookmark tree containing it. ### Dispose ```csharp void Datalogics.PDFL.Bookmark.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Bookmark.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### FindDescendentBookmark ```csharp Bookmark Datalogics.PDFL.Bookmark.FindDescendentBookmark(string title) ``` **Parameters** - `title` (`string`): The title of the bookmark for which to search. **Returns:** [`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md) The bookmark within this bookmark's tree that has the supplied title. Returns NULL if there is no bookmark with the supplied title. Find bookmark by its title within the subtree of which this bookmark is the root, searching within the entire subtree. ### FindDescendentBookmark ```csharp Bookmark Datalogics.PDFL.Bookmark.FindDescendentBookmark(string title, int maxDepth) ``` **Parameters** - `title` (`string`): The title of the bookmark for which to search. - `maxDepth` (`int`): If supplied, declares the number of levels below this bookmark to search. (If omitted, the entire subtree is searched.) **Returns:** [`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md) The bookmark within this bookmark's tree that has the supplied title. Returns NULL if there is no bookmark with the supplied title. Find bookmark by its title within the subtree of which this bookmark is the root, searching within the subtree to a depth determined by maxDepth (e.g., 0 = this bookmark only and not any of its children, 1 = search one level below this bookmark level, etc.) ### HasChildren ```csharp bool Datalogics.PDFL.Bookmark.HasChildren() ``` **Returns:** `bool` true if the bookmark has children. Does the bookmark have children? ### IsOpen ```csharp bool Datalogics.PDFL.Bookmark.IsOpen() ``` **Returns:** `bool` true if the bookmark is open. Is the bookmark open? ### ToString ```csharp override string Datalogics.PDFL.Bookmark.ToString() ``` **Returns:** `override string` A string describing this Bookmark and its properties. Returns a string representation of this Bookmark. The string includes the title, color, flags, count, indent level, open state, and view destination if available. ### Unlink ```csharp void Datalogics.PDFL.Bookmark.Unlink() ``` **Returns:** `void` Unlinks the bookmark from the bookmark tree that contains it and adjusts the tree appropriately. --- # BookmarkFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/BookmarkFlags **Namespace:** `Datalogics::PDFL` ## Description Flags describing the visual style of a bookmark's title text. ## Values - `Bold = 2`: The bookmark title is displayed in bold. - `Italic = 1`: The bookmark title is displayed in italic. --- # CalGrayColorSpace Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CalGrayColorSpace ```csharp class CalGrayColorSpace : ColorSpace ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md) ## Description A calibrated gray color space. A CalGray color space is a special case of a single-component CIE-based color space, known as a CIE-based A color space. This type of space is the one-dimensional (and usually achromatic) analog of CIE-based ABC spaces. **Uses types:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Constructors ### CalGrayColorSpace ```csharp Datalogics.PDFL.CalGrayColorSpace.CalGrayColorSpace(System.Collections.Generic.IList< System.Double > whitePoint) ``` *constructor* **Parameters** - `whitePoint` (`System.Collections.Generic.IList< System.Double >`): An array of three numbers specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse white point. The numbers X and Z must be positive, and Y must be equal to 1.0. Create a CalGray color space. The blackPoint defaults to [0.0, 0.0, 0.0]. The gamma defaults to 1 ### CalGrayColorSpace ```csharp Datalogics.PDFL.CalGrayColorSpace.CalGrayColorSpace(System.Collections.Generic.IList< System.Double > whitePoint, System.Collections.Generic.IList< System.Double > blackPoint, double gamma) ``` *constructor* **Parameters** - `whitePoint` (`System.Collections.Generic.IList< System.Double >`): An array of three numbers specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse white point. The numbers X and Z must be positive, and Y must be equal to 1.0. - `blackPoint` (`System.Collections.Generic.IList< System.Double >`): An array of three numbers specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse black point. All three of these numbers must be non-negative. - `gamma` (`double`): A number G defining the gamma for the gray component. G must be positive and is generally greater than or equal to 1. Create a CalGray color space. ## Properties ### BlackPoint ```csharp System.Collections.Generic.IList Datalogics.PDFL.CalGrayColorSpace.BlackPoint { get; } ``` An array of three numbers specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse black point. All three of these numbers must be non-negative. ### DeviceCMYK ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceCMYK { get; } ``` *static* The DeviceCMYK color space, representing cyan, magenta, yellow, and black components. ### DeviceGray ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceGray { get; } ``` *static* The DeviceGray color space, representing a single grayscale component. ### DeviceRGB ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceRGB { get; } ``` *static* The DeviceRGB color space, representing red, green, and blue components. ### DeviceRGBA ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceRGBA { get; } ``` *static* The DeviceRGBA color space, representing red, green, blue, and alpha components. ### Gamma ```csharp double Datalogics.PDFL.CalGrayColorSpace.Gamma { get; } ``` A number G defining the gamma for the gray component. G must be positive and is generally greater than or equal to 1. ### Lab ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.Lab { get; } ``` *static* The CIE-based L*a*b* color space. ### LabA ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.LabA { get; } ``` *static* The CIE-based L*a*b* color space with an alpha component. ### Name ```csharp string Datalogics.PDFL.ColorSpace.Name { get; } ``` The name of the color space. A named color space may be named something like DeviceRGB. More complicated color spaces may have a name like Indexed or ICCBased. ### NumComponents ```csharp int Datalogics.PDFL.ColorSpace.NumComponents { get; } ``` The number of components in the color space. For example, DeviceGray has 1 component, DeviceRGB has 3, and DeviceCMYK has 4. ### PDFObject ```csharp PDFObject Datalogics.PDFL.ColorSpace.PDFObject { get; } ``` Get the PDFObject associated with the color space. This may be a PDFName, PDFDict, PDFStream, or PDFArray. ### WhitePoint ```csharp System.Collections.Generic.IList Datalogics.PDFL.CalGrayColorSpace.WhitePoint { get; } ``` An array of three numbers specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse white point. The numbers X and Z must be positive, and Y must be equal to 1.0. ## Methods ### Dispose ```csharp void Datalogics.PDFL.ColorSpace.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.ColorSpace.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.ColorSpace.ToString() ``` **Returns:** `override string` A string describing this ColorSpace. Convert a ColorSpace to a string representation. ### operator!= ```csharp static bool Datalogics.PDFL.ColorSpace.operator!=(ColorSpace a, ColorSpace b) ``` *static* **Parameters** - `a` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The first ColorSpace to compare. - `b` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The second ColorSpace to compare. **Returns:** `bool` true if the two ColorSpace objects are not equal; false otherwise. Test two ColorSpace objects for inequality. ### operator== ```csharp static bool Datalogics.PDFL.ColorSpace.operator==(ColorSpace a, ColorSpace b) ``` *static* **Parameters** - `a` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The first ColorSpace to compare. - `b` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The second ColorSpace to compare. **Returns:** `bool` true if the two ColorSpace objects are equal; false otherwise. Test two ColorSpace objects for equality. --- # CalRGBColorSpace Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CalRGBColorSpace ```csharp class CalRGBColorSpace : ColorSpace ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md) ## Description A calibrated RGB color space. A CalRGB color space (Red, Green, Blue) is a CIE-based ABC color space with only one transformation stage instead of two. In this type of space, A, B, and C represent calibrated red, green, and blue color values. These three color components must be in the range 0.0 to 1.0; component values falling outside that range are adjusted to the nearest valid value without error indication. **Uses types:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Constructors ### CalRGBColorSpace ```csharp Datalogics.PDFL.CalRGBColorSpace.CalRGBColorSpace(System.Collections.Generic.IList< System.Double > whitePoint) ``` *constructor* **Parameters** - `whitePoint` (`System.Collections.Generic.IList< System.Double >`): An array of three numbers specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse white point. The numbers X and Z must be positive, and Y must be equal to 1.0. Create a CalRGB color space. The blackPoint defaults to [0.0, 0.0, 0.0]. The gamma defaults to [1.0, 1.0, 1.0]. The matrix defaults to [1 0 0 0 1 0 0 0 1] ### CalRGBColorSpace ```csharp Datalogics.PDFL.CalRGBColorSpace.CalRGBColorSpace(System.Collections.Generic.IList< System.Double > whitePoint, System.Collections.Generic.IList< System.Double > blackPoint, System.Collections.Generic.IList< System.Double > gamma, System.Collections.Generic.IList< System.Double > matrix) ``` *constructor* **Parameters** - `whitePoint` (`System.Collections.Generic.IList< System.Double >`): An array of three numbers specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse white point. The numbers X and Z must be positive, and Y must be equal to 1.0. - `blackPoint` (`System.Collections.Generic.IList< System.Double >`): An array of three numbers specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse black point. All three of these numbers must be non-negative. - `gamma` (`System.Collections.Generic.IList< System.Double >`): An array of three numbers [ GR GG GB ] specifying the gamma for the red, green, and blue (A, B, and C) components of the color space. - `matrix` (`System.Collections.Generic.IList< System.Double >`): An array of nine numbers [ XA YA ZA XB YB ZB XC YC ZC ] specifying the linear interpretation of the decoded A, B, and C components of the color space with respect to the final XYZ representation. Create a CalRGB color space. ## Properties ### BlackPoint ```csharp System.Collections.Generic.IList Datalogics.PDFL.CalRGBColorSpace.BlackPoint { get; } ``` An array of three numbers specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse black point. All three of these numbers must be non-negative. ### DeviceCMYK ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceCMYK { get; } ``` *static* The DeviceCMYK color space, representing cyan, magenta, yellow, and black components. ### DeviceGray ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceGray { get; } ``` *static* The DeviceGray color space, representing a single grayscale component. ### DeviceRGB ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceRGB { get; } ``` *static* The DeviceRGB color space, representing red, green, and blue components. ### DeviceRGBA ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceRGBA { get; } ``` *static* The DeviceRGBA color space, representing red, green, blue, and alpha components. ### Gamma ```csharp System.Collections.Generic.IList Datalogics.PDFL.CalRGBColorSpace.Gamma { get; } ``` A number G defining the gamma for the gray component. G must be positive and is generally greater than or equal to 1. ### Lab ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.Lab { get; } ``` *static* The CIE-based L*a*b* color space. ### LabA ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.LabA { get; } ``` *static* The CIE-based L*a*b* color space with an alpha component. ### Matrix ```csharp System.Collections.Generic.IList Datalogics.PDFL.CalRGBColorSpace.Matrix { get; } ``` An array of nine numbers [ XA YA ZA XB YB ZB XC YC ZC ] specifying the linear interpretation of the decoded A, B, and C components of the color space with respect to the final XYZ representation. ### Name ```csharp string Datalogics.PDFL.ColorSpace.Name { get; } ``` The name of the color space. A named color space may be named something like DeviceRGB. More complicated color spaces may have a name like Indexed or ICCBased. ### NumComponents ```csharp int Datalogics.PDFL.ColorSpace.NumComponents { get; } ``` The number of components in the color space. For example, DeviceGray has 1 component, DeviceRGB has 3, and DeviceCMYK has 4. ### PDFObject ```csharp PDFObject Datalogics.PDFL.ColorSpace.PDFObject { get; } ``` Get the PDFObject associated with the color space. This may be a PDFName, PDFDict, PDFStream, or PDFArray. ### WhitePoint ```csharp System.Collections.Generic.IList Datalogics.PDFL.CalRGBColorSpace.WhitePoint { get; } ``` An array of three numbers specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse white point. The numbers X and Z must be positive, and Y must be equal to 1.0. ## Methods ### Dispose ```csharp void Datalogics.PDFL.ColorSpace.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.ColorSpace.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.ColorSpace.ToString() ``` **Returns:** `override string` A string describing this ColorSpace. Convert a ColorSpace to a string representation. ### operator!= ```csharp static bool Datalogics.PDFL.ColorSpace.operator!=(ColorSpace a, ColorSpace b) ``` *static* **Parameters** - `a` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The first ColorSpace to compare. - `b` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The second ColorSpace to compare. **Returns:** `bool` true if the two ColorSpace objects are not equal; false otherwise. Test two ColorSpace objects for inequality. ### operator== ```csharp static bool Datalogics.PDFL.ColorSpace.operator==(ColorSpace a, ColorSpace b) ``` *static* **Parameters** - `a` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The first ColorSpace to compare. - `b` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The second ColorSpace to compare. **Returns:** `bool` true if the two ColorSpace objects are equal; false otherwise. Test two ColorSpace objects for equality. --- # CancelProc Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CancelProc ```csharp class CancelProc : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A callback function used to abort an operation. A CancelProc() value is typically passed to a method that uses it to determine if an asynchronous operation should be ended. At periodic intervals, the method calls the CancelProc. If the CancelProc returns a "true" boolean value, the method cancels the operation. If CancelProc returns false, the method allows the operation to continue. For example, CancelProc could be used to allow a user to click a Cancel button to end a function. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md), [`PDFOptimizer`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFOptimizer.md), [`SignDoc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SignDoc.md) ## Constructors ### CancelProc ```csharp Datalogics.PDFL.CancelProc.CancelProc() ``` *constructor* A callback function used to abort an operation. A CancelProc() value is typically passed to a method that uses it to determine if an asynchronous operation should be ended. At periodic intervals, the method calls the CancelProc. If the CancelProc returns a "true" boolean value, the method cancels the operation. If CancelProc returns false, the method allows the operation to continue. For example, CancelProc could be used to allow a user to click a Cancel button to end a function. ## Methods ### Call ```csharp virtual bool Datalogics.PDFL.CancelProc.Call() ``` **Returns:** `bool` ### Dispose ```csharp void Datalogics.PDFL.CancelProc.Dispose() ``` **Returns:** `void` --- # CircleAnnotation Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CircleAnnotation ```csharp class CircleAnnotation : Annotation ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md) ## Description A circle annotation is an annotation surrounded by a curved and possibly elliptical border. The circle is inscribed within the annotation rectangle. Despite the circle name, the width and height of the annotation rectangle need not be equal. So the circle can actually be an ellipse. **Uses types:** [`AnnotationFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AnnotationFlags.md), [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### CircleAnnotation ```csharp Datalogics.PDFL.CircleAnnotation.CircleAnnotation(Page page, Rect initialRect) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the CircleAnnotation is added. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the annotation's bounds, specified in user space coordinates. Create a new CircleAnnotation at the end of a page's annotation array. To create a CircleAnnotation and place it elsewhere in the page's annotation array, use the version of the constructor that takes an array position. ### CircleAnnotation ```csharp Datalogics.PDFL.CircleAnnotation.CircleAnnotation(Page page, Rect initialRect, int addAfter) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the annotation is added. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the annotation's bounds, specified in user space coordinates. - `addAfter` (`int`): Where to add the annotation in the page's annotation array. Create a new CircleAnnotation at a specific index in the page's annotation array. ## Properties ### AnnotationFeatureLevel ```csharp double Datalogics.PDFL.Annotation.AnnotationFeatureLevel { get; set; } ``` The minimum PDF version necessary to support the features used in this annotation. ### BorderStyle ```csharp string Datalogics.PDFL.CircleAnnotation.BorderStyle { get; set; } ``` The border style. Can be one of: • S - Solid • D - Dashed. The dash pattern is specified as an array (see DashPattern) • B - Beveled • I - Inset • U - Underline Other border styles may be defined in the future. Default is "S" ### BorderStyleDashPattern ```csharp System.Collections.Generic.IList Datalogics.PDFL.CircleAnnotation.BorderStyleDashPattern { get; set; } ``` An array defining a pattern of dashes and gaps to be used in drawing a dashed border (border style D). The dash array is a series of numbers that specify the lengths of alternating dashes and gaps. Lengths must be nonnegative, and are expressed in user space units. Default value is [3] ### BorderStyleWidth ```csharp double Datalogics.PDFL.CircleAnnotation.BorderStyleWidth { get; set; } ``` The border width in points. If this value is 0, no border is drawn. The default is 1.0. ### Color ```csharp Color Datalogics.PDFL.Annotation.Color { get; set; } ``` The color of the annotation. ### Contents ```csharp string Datalogics.PDFL.Annotation.Contents { get; set; } ``` The text contents of the annotation. 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. ### Flags ```csharp AnnotationFlags Datalogics.PDFL.Annotation.Flags { get; set; } ``` The flags for the annotation. ### InteriorColor ```csharp Color Datalogics.PDFL.Annotation.InteriorColor { get; set; } ``` The interior color with which to fill the annotation's rectangle or circle. The color of the border itself can be retrieved from Annotation.Color. ### NormalAppearance ```csharp Form Datalogics.PDFL.Annotation.NormalAppearance { get; set; } ``` The normal appearance of the annotation, represented as a Form XObject. ### Opacity ```csharp double Datalogics.PDFL.Annotation.Opacity { get; set; } ``` The constant opacity value used in painting a Markup annotation. Opacity is a range from 0.0 (fully transparent) to 1.0 (fully opaque). ### OptionalContentMembershipDict ```csharp OptionalContentMembershipDict Datalogics.PDFL.Annotation.OptionalContentMembershipDict { get; set; } ``` The OptionalContentMembershipDict property for this Annotation. Setting this property will attach the Annotation to an OptionalContentMembershipDict; it will then be associated with the OptionalContentGroups and be subject to the VisibilityPolicy and VisibilityExpression of that MembershipDict. By setting this property to null, the Annotation is detached from any OptionalContentMembershipDict. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Annotation.PDFDict { get; } ``` The underlying PDF dictionary for this annotation. Retrieves the PDFDict representation of this annotation object. ### Rect ```csharp Rect Datalogics.PDFL.Annotation.Rect { get; set; } ``` The size and location of the annotation on its page. ### Subtype ```csharp string Datalogics.PDFL.Annotation.Subtype { get; } ``` The annotation's subtype. ### Title ```csharp string Datalogics.PDFL.Annotation.Title { get; set; } ``` The title of the annotation. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Annotation.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Annotation.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### GenerateAppearance ```csharp override Form Datalogics.PDFL.CircleAnnotation.GenerateAppearance() ``` **Returns:** `override Form` A Form representing the visual appearance of this annotation, or null if the appearance could not be generated (e.g. due to an invalid border style). Generate a new appearance stream for this circle annotation. Creates an appearance based on the current annotation properties, including color, interior color, border style, and bounding rectangle. The circle (or ellipse) is inscribed within the annotation rectangle. ### HasRichTextData ```csharp bool Datalogics.PDFL.Annotation.HasRichTextData() ``` **Returns:** `bool` true if the annotation contains Rich Text String content. Checks the annotation for Rich Text String content (PDFReference 1.7 Section 8.6.2). Annotations that contain Rich Text String content and do not have a normal appearance set will not be visible when rendering the page. ### IsCurrentlyVisible ```csharp bool Datalogics.PDFL.Annotation.IsCurrentlyVisible(OptionalContentContext occ) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which to check visibility. **Returns:** `bool` true if the annotation is currently visible. Tests whether an annotation is visible in a given optional content context, considering the current ON-OFF states of the optional-content groups in the optional-content dictionary (OCMD) and the dictionary's visibility policy. If the annotation occurs more than once within the content, this method only checks the visibility of the first occurrence of the annotation. This method determines visibility without considering the visbility of the Content object that the annotation belongs to. To determine the visibility of an annotation while taking the Content's visibility into consideration, use the alternate version of this method. ### ToString ```csharp override string Datalogics.PDFL.Annotation.ToString() ``` **Returns:** `override string` A string describing this annotation, including its type and rectangle. Returns a string representation of this annotation. --- # Clip Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Clip ```csharp class Clip : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A clipping path is used to mark an area within a page to be highlighted or removed. The clipping path clips out part of the design. A clip can also be used with text. The clipping path defines an area within a page (text or graphic) that will be highlighted or removed. For example, a clipping path could be used to remove the background in a photograph, to highlight a person or object in front, or to super-impose text over an image. Only part of the image appears through a shape created with the clipping path. The Clip class is made up of a list of path and text elements. Any element can have a clip associated with it, and clip objects can hold arbitrary levels of nested container and group objects. If a group object is inside a clip object, and the clip object also contains at least one text object and no path objects, the group object has a special meaning. All text objects contained in a group object like this are considered to be part of the same BT/ET block. This means that the union of these text objects makes up a single clipping path. The text objects do not intersect. **Referenced by:** [`Clip`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Clip.md), [`Container`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Container.md), [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`Group`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Group.md), [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md), [`Path`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Path.md), [`PostScript`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PostScript.md), [`Shading`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Shading.md), [`Text`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Text.md), [`TextRun`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextRun.md) **Uses types:** [`Clip`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Clip.md), [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) ## Constructors ### Clip ```csharp Datalogics.PDFL.Clip.Clip() ``` *constructor* Creates an empty Clip object. This represents a clipping object that has no effect on elements that refer to it. ## Methods ### AddElement ```csharp void Datalogics.PDFL.Clip.AddElement(Element element) ``` **Parameters** - `element` ([`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md)): The Element to add to the Clip. **Returns:** `void` Adds an Element to a Clip path as the first indexed Element. ### AddElement ```csharp void Datalogics.PDFL.Clip.AddElement(Element element, int addAfterIndex) ``` **Parameters** - `element` ([`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md)): The Element to add to the Clip. - `addAfterIndex` (`int`): The index after which this Element will be added to the Clip's list of Elements. If omitted, it will be added as index 0, i.e., the first Element. **Returns:** `void` Adds an Element to a Clip path, after the Element index specified. ### Clone ```csharp Clip Datalogics.PDFL.Clip.Clone() ``` **Returns:** [`Clip`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Clip.md) A new clip object deep copy Makes a new deep copy of this Clip object in memory. ### Dispose ```csharp void Datalogics.PDFL.Clip.Dispose() ``` **Returns:** `void` ### GetElement ```csharp Element Datalogics.PDFL.Clip.GetElement(int index) ``` **Parameters** - `index` (`int`): The index of the desired Element. **Returns:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) - The Element found at the supplied index in the Clip's Element list. Gets an Element from a Clip path. ### NumElements ```csharp int Datalogics.PDFL.Clip.NumElements() ``` **Returns:** `int` - The number of top-level Elements in the Clip. Gets the number of top-level Elements in a Clip object. ### RemoveElements ```csharp void Datalogics.PDFL.Clip.RemoveElements(int index) ``` **Parameters** - `index` (`int`): The index of the Element to remove. **Returns:** `void` Removes an Element from a Clip object. ### RemoveElements ```csharp void Datalogics.PDFL.Clip.RemoveElements(int index, int count) ``` **Parameters** - `index` (`int`): The index of the first Element to remove. - `count` (`int`): The number of Elements to remove, starting with the index Element. **Returns:** `void` Removes one or more Elements from a Clip object. ### ToString ```csharp override string Datalogics.PDFL.Clip.ToString() ``` **Returns:** `override string` --- # ClosePath Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ClosePath ```csharp class ClosePath : Segment ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Segment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Segment.md) ## Description An operator that completes a vector shape, drawing a line from the first point to the last point. A path is a series of commands that define the boundary of a vector shape. The ClosePath command draws a line from the current location back to its starting point, effectively closing a box or parabolic shape on a page. ## Constructors ### ClosePath ```csharp Datalogics.PDFL.ClosePath.ClosePath() ``` *constructor* Close the current subpath by appending a straight line segment from the current point to the starting point of the subpath. If the current subpath is already closed, ClosePath does nothing. This segment terminates the current subpath. Appending another segment to the current path begins a new subpath, even if the new segment begins at the endpoint reached by the ClosePath operation. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Segment.Dispose() ``` **Returns:** `void` ### ToString ```csharp override string Datalogics.PDFL.ClosePath.ToString() ``` **Returns:** `override string` --- # Collection Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Collection ```csharp class Collection : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Allows for manipulation of PDF collections, or portfolios. The class illustrates how to process a collection's schema. It also describes sorting of a portfolio. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) **Uses types:** [`CollectionSchema`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CollectionSchema.md), [`CollectionSortItem`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CollectionSortItem.md), [`CollectionSplitType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CollectionSplitType.md), [`CollectionViewType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CollectionViewType.md) ## Properties ### Schema ```csharp CollectionSchema Datalogics.PDFL.Collection.Schema { get; } ``` GetSchema allows to obtain Schema object for current Collection. The Schema object does not have constructor. Only Collection is able to create Schema. ### Sort ```csharp System.Collections.Generic.IList Datalogics.PDFL.Collection.Sort { get; set; } ``` GetSort gets sort parameters for the Collection. ## Methods ### ChangeCollectionViewMode ```csharp void Datalogics.PDFL.Collection.ChangeCollectionViewMode(CollectionViewType view, CollectionSplitType split) ``` **Parameters** - `view` ([`CollectionViewType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CollectionViewType.md)): one of the members of CollectionViewMode enum. - `split` ([`CollectionSplitType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CollectionSplitType.md)): enum of split mode (selector) **Returns:** `void` SetCollectionView sets view mode value to the Collection. ### Dispose ```csharp void Datalogics.PDFL.Collection.Dispose() ``` **Returns:** `void` --- # CollectionSchema Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CollectionSchema ```csharp class CollectionSchema : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Provides for adding/removing/retrieving schema fields in a collection. **Referenced by:** [`Collection`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Collection.md) **Uses types:** [`CollectionSchemaField`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CollectionSchemaField.md) ## Properties ### FieldsNumber ```csharp int Datalogics.PDFL.CollectionSchema.FieldsNumber { get; } ``` GetFieldsNumber allows to obtain fields number in the schema. ## Methods ### AddField ```csharp void Datalogics.PDFL.CollectionSchema.AddField(CollectionSchemaField field) ``` **Parameters** - `field` ([`CollectionSchemaField`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CollectionSchemaField.md)): CollectionSchemaField object which will be added to the schema. **Returns:** `void` AddField allows to set new field to the CollectionSchema object. If the target field exists, it is overwritten. The schema fields contain all information required to organize Collection in a certain way. ### Dispose ```csharp void Datalogics.PDFL.CollectionSchema.Dispose() ``` **Returns:** `void` ### GetField ```csharp CollectionSchemaField Datalogics.PDFL.CollectionSchema.GetField(int idx) ``` **Parameters** - `idx` (`int`): index of the object to find. **Returns:** [`CollectionSchemaField`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CollectionSchemaField.md) CollectionSchemaField object if found or NULL otherwise. GetField allows to obtain CollectionSchemaField object by its index. ### GetField ```csharp CollectionSchemaField Datalogics.PDFL.CollectionSchema.GetField(string name) ``` **Parameters** - `name` (`string`): textual field name. **Returns:** [`CollectionSchemaField`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CollectionSchemaField.md) CollectionSchemaField object if found or NULL otherwise. GetField allows to obtain CollectionSchemaField by name. ### RemoveField ```csharp void Datalogics.PDFL.CollectionSchema.RemoveField(CollectionSchemaField field) ``` **Parameters** - `field` ([`CollectionSchemaField`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CollectionSchemaField.md)): CollectionSchemaField which will be removed from the schema. **Returns:** `void` RemoveField allows to remove specified field from the schema. NOTE: to distinguish whether specified object belongs to the schema this uses CollectionSchemaField's name. --- # CollectionSchemaField Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CollectionSchemaField ```csharp class CollectionSchemaField : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Allows for the creation of collection schema field objects. Parameters that are part of a schema's field may be set. **Referenced by:** [`CollectionSchema`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CollectionSchema.md), [`FileAttachment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FileAttachment.md) **Uses types:** [`SchemaFieldSubtype`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SchemaFieldSubtype.md) ## Constructors ### CollectionSchemaField ```csharp Datalogics.PDFL.CollectionSchemaField.CollectionSchemaField(string fieldID, SchemaFieldSubtype subtype) ``` *constructor* **Parameters** - `fieldID` (`string`): the schema field ID. The ID is used during creation and extraction of the schema field. It is the unique identifier of the schema field. - `subtype` ([`SchemaFieldSubtype`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SchemaFieldSubtype.md)): the schema field subtype. The subtypes are predefined. The value of this parameter must correspond to the one of the SchemaFieldSubtype enum values. CCollectionSchemaField allows to create CollectionSchemaField object. The constructor accepts identifier value and subtype required by the schema field. ## Properties ### Editable ```csharp bool Datalogics.PDFL.CollectionSchemaField.Editable { get; set; } ``` GetEditable allows to obtain information about edit mode of the current field. ### ID ```csharp string Datalogics.PDFL.CollectionSchemaField.ID { get; } ``` GetID allows to obtain the unique id with which schema field has been created. ### Index ```csharp int Datalogics.PDFL.CollectionSchemaField.Index { get; set; } ``` GetIndex allows to obtain field index. ### Name ```csharp string Datalogics.PDFL.CollectionSchemaField.Name { get; set; } ``` GetName allows to obtain field name. ### Subtype ```csharp SchemaFieldSubtype Datalogics.PDFL.CollectionSchemaField.Subtype { get; } ``` GetSubtype allows to obtain the field subtype. ### Visible ```csharp bool Datalogics.PDFL.CollectionSchemaField.Visible { get; set; } ``` GetVisible allows to obtain information about filed visibility. ## Methods ### Dispose ```csharp void Datalogics.PDFL.CollectionSchemaField.Dispose() ``` **Returns:** `void` --- # CollectionSortItem Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CollectionSortItem ```csharp class CollectionSortItem : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Stores data about fields that viewers use for sorting collection items. Collections are aslo known as portfolios. **Referenced by:** [`Collection`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Collection.md) ## Constructors ### CollectionSortItem ```csharp Datalogics.PDFL.CollectionSortItem.CollectionSortItem(string fieldID, bool order) ``` *constructor* **Parameters** - `fieldID` (`string`): the schema field's id. - `order` (`bool`): true for ascending, false for descending CCollectionSortItem allows to construct sort item which will be used for collection sorting. ## Properties ### Ascending ```csharp bool Datalogics.PDFL.CollectionSortItem.Ascending { get; } ``` Gets whether the sort order is ascending. ### Name ```csharp string Datalogics.PDFL.CollectionSortItem.Name { get; } ``` Gets the field name used for sorting. This is the schema field identifier that determines which collection field is used as the sort key. ## Methods ### Dispose ```csharp void Datalogics.PDFL.CollectionSortItem.Dispose() ``` **Returns:** `void` --- # CollectionSplitType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CollectionSplitType **Namespace:** `Datalogics::PDFL` ## Description Specifies the split orientation for a PDF collection (portfolio) view. Controls how the navigator and preview panes are arranged when displaying a PDF collection. ## Values - `SplitDefault = 8192`: Default split based on view. - `SplitHorizontal = 8193`: Split vertical. - `SplitVertical = 8194`: Split horizontal. - `SplitNone = 8195`: No split; show the navigator. - `SplitPreview = 8196`: No split; show the preview. --- # CollectionViewType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CollectionViewType **Namespace:** `Datalogics::PDFL` ## Description Specifies the type of navigator view used to display a PDF collection (portfolio). ## Values - `Tile = 4096`: Tile navigator. - `Detail = 4097`: Details navigator. - `Custom = 4098`: Custom navigator. --- # Color Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color ```csharp class Color : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A color specified by values appropriate for its color space. The values that are offered range from 0 to 1.0 for red, green, and blue (RGB) or cyan, magenta, yellow, and black (CYMK). **Referenced by:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md), [`AxialShadingPattern`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/AxialShadingPattern.md), [`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md), [`CircleAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CircleAnnotation.md), [`FreeTextAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FreeTextAnnotation.md), [`GraphicState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GraphicState.md), [`HighlightAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/HighlightAnnotation.md), [`InkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/InkAnnotation.md), [`LineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LineAnnotation.md), [`LinkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LinkAnnotation.md), [`PolyLineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolyLineAnnotation.md), [`PolygonAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolygonAnnotation.md), [`Redaction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Redaction.md), [`ShadingPattern`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ShadingPattern.md), [`SquareAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SquareAnnotation.md), [`Style`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Style.md), [`TextMarkupAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextMarkupAnnotation.md), [`UnderlineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/UnderlineAnnotation.md), [`WatermarkTextParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WatermarkTextParams.md) **Uses types:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`Pattern`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Pattern.md) ## Constructors ### Color ```csharp Datalogics.PDFL.Color.Color(ColorSpace colorSpace, System.Collections.Generic.IList< System.Double > values) ``` *constructor* **Parameters** - `colorSpace` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): the color space in which to create the color - `values` (`System.Collections.Generic.IList< System.Double >`): the values to place into the color Create a new color in an arbitrary color space. The number of values passed must match the number of values in the color space. ### Color ```csharp Datalogics.PDFL.Color.Color(double c, double m, double y, double k) ``` *constructor* **Parameters** - `c` (`double`): the cyan color value for the new color (0.0 - 1.0) - `m` (`double`): the magenta color value for the new color (0.0 - 1.0) - `y` (`double`): the yellow color value for the new color (0.0 - 1.0) - `k` (`double`): the black color value for the new color (0.0 - 1.0) Create a new color in the DeviceCMYK colorspace with the specified value. ### Color ```csharp Datalogics.PDFL.Color.Color(double grey) ``` *constructor* **Parameters** - `grey` (`double`): the grayscale color value for the new color (0.0 - 1.0) Create a new color in the DeviceGray colorspace with the specified value. ### Color ```csharp Datalogics.PDFL.Color.Color(double r, double g, double b) ``` *constructor* **Parameters** - `r` (`double`): the red color value for the new color (0.0 - 1.0) - `g` (`double`): the green color value for the new color (0.0 - 1.0) - `b` (`double`): the blue color value for the new color (0.0 - 1.0) Create a new color in the DeviceRGB colorspace with the specified value. ### Color ```csharp Datalogics.PDFL.Color.Color(Pattern pattern) ``` *constructor* **Parameters** - `pattern` ([`Pattern`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Pattern.md)): The pattern to turn into a color Create a new color in the pattern color space. ## Properties ### Pattern ```csharp Pattern Datalogics.PDFL.Color.Pattern { get; } ``` The pattern of the color. Only valid for pattern-based colors. ### Space ```csharp ColorSpace Datalogics.PDFL.Color.Space { get; } ``` The color space of the color. ### Value ```csharp System.Collections.Generic.IList Datalogics.PDFL.Color.Value { get; } ``` The values of the color. Not valid for pattern-based colors. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Color.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Color.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.Color.ToString() ``` **Returns:** `override string` A string describing the color, including its color space and component values. Returns a string representation of this Color. --- # ColorConvertActions Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorConvertActions ```csharp class ColorConvertActions : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Class that defines color conversion actions for an object described by certain attributes. **Referenced by:** [`ColorConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorConvertParams.md) **Uses types:** [`ColorConvertActionType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorConvertActionType.md), [`ColorConvertCSpaceType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorConvertCSpaceType.md), [`ColorConvertObjAttrs`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorConvertObjAttrs.md), [`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md), [`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md) ## Constructors ### ColorConvertActions ```csharp Datalogics.PDFL.ColorConvertActions.ColorConvertActions() ``` *constructor* Default constructor for the ColorConvertActions class. Sets default values to the members. ## Properties ### Action ```csharp ColorConvertActionType Datalogics.PDFL.ColorConvertActions.Action { get; set; } ``` Gets / sets the action, specifying what to do when an object matches this Settings record. ### ColorantName ```csharp string Datalogics.PDFL.ColorConvertActions.ColorantName { get; set; } ``` For ink actions (which describe a single colorant, whether used in Separation or DeviceN, and which are not matched using the above matching fields) this describes the colorant of the ink. ### ConvertIntent ```csharp RenderIntent Datalogics.PDFL.ColorConvertActions.ConvertIntent { get; set; } ``` Gets / sets the intent that overrides the object's original render intent when performing color conversion. UseProfileIntent means that the intent of the object must not be overridden. ### ConvertProfile ```csharp ColorProfile Datalogics.PDFL.ColorConvertActions.ConvertProfile { get; set; } ``` Gets / sets the target ColorProfile for the conversion. If the output intent is embedded, this should be the output intent profile. ### ConvertProfilePath ```csharp string Datalogics.PDFL.ColorConvertActions.ConvertProfilePath { get; set; } ``` Gets / sets the target ColorProfile for the conversion using the profile found at the path provided. If the output intent is embedded, this should be the output intent profile. NOTE: If specifying a path, ConvertProfile must be set to Null_ColorProfile. ### EmbedColorProfile ```csharp bool Datalogics.PDFL.ColorConvertActions.EmbedColorProfile { get; set; } ``` If true, embed the target profile. If false, the resulting color is Device, if possible. ### InkAlias ```csharp string Datalogics.PDFL.ColorConvertActions.InkAlias { get; set; } ``` Gets / sets the ink alias, this only applies to ink actions. ### IntentToMatch ```csharp RenderIntent Datalogics.PDFL.ColorConvertActions.IntentToMatch { get; set; } ``` Gets / sets the rendering intent of the object. If this is UseProfileIntent this action applies to any intent. ### IsInkAction ```csharp bool Datalogics.PDFL.ColorConvertActions.IsInkAction { get; set; } ``` Marks this Action to be applied to inks. ### IsProcessColor ```csharp bool Datalogics.PDFL.ColorConvertActions.IsProcessColor { get; set; } ``` True if this ink is a process ink. ### MaxFontSizeMatch ```csharp double Datalogics.PDFL.ColorConvertActions.MaxFontSizeMatch { get; set; } ``` Gets / sets the maximum font size to match for text objects. ### MinFontSizeMatch ```csharp double Datalogics.PDFL.ColorConvertActions.MinFontSizeMatch { get; set; } ``` Gets / sets the minimum font size to match for text objects. ### MustMatchAllAttrs ```csharp ColorConvertObjAttrs Datalogics.PDFL.ColorConvertActions.MustMatchAllAttrs { get; set; } ``` A bit field that gets / sets the attributes an element must match to be color converted. The element must match ALL these attributes to be color converted. ### MustMatchAllCSAttrs ```csharp ColorConvertCSpaceType Datalogics.PDFL.ColorConvertActions.MustMatchAllCSAttrs { get; set; } ``` A bit field that gets / sets the Color Space attributes an object must match to be color converted. The element must match ALL these Color Space attributes to be color converted. ### MustMatchAnyAttrs ```csharp ColorConvertObjAttrs Datalogics.PDFL.ColorConvertActions.MustMatchAnyAttrs { get; set; } ``` A bit field that gets / sets the attributes an element must match to be color converted. The element can match ONE OR MORE of these attributes to be color converted. ### MustMatchAnyCSAttrs ```csharp ColorConvertCSpaceType Datalogics.PDFL.ColorConvertActions.MustMatchAnyCSAttrs { get; set; } ``` A bit field that gets / sets the Color Space attributes an object must match to be color converted. The element can match ONE OR MORE Color Space attributes to be color converted. ### PreserveBlack ```csharp bool Datalogics.PDFL.ColorConvertActions.PreserveBlack { get; set; } ``` If true, perform a black-preserving transform when converting. ### PreserveCMYKPrimaries ```csharp bool Datalogics.PDFL.ColorConvertActions.PreserveCMYKPrimaries { get; set; } ``` If true, use a primary-preserving CMYK to CMYK transform. ### PromoteGrayToCMYK ```csharp bool Datalogics.PDFL.ColorConvertActions.PromoteGrayToCMYK { get; set; } ``` If true, promote DeviceGray objects to DeviceCMYK with k = 1.0 - gray value. ### UseBlackPointCompensation ```csharp bool Datalogics.PDFL.ColorConvertActions.UseBlackPointCompensation { get; set; } ``` If true, turn on black point compensation for color conversions. ## Methods ### Dispose ```csharp void Datalogics.PDFL.ColorConvertActions.Dispose() ``` **Returns:** `void` --- # ColorConvertActionType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorConvertActionType **Namespace:** `Datalogics::PDFL` ## Values - `PreserveColor = 0`: Do nothing but handle ink aliases. - `ConvertColor = 1`: Convert to target space. - `DecalibrateColor = 2`: Convert calibrated space to device space. - `DownCovertColor = 3`: Convert NChannel space to DeviceN space. --- # ColorConvertCSpaceType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorConvertCSpaceType **Namespace:** `Datalogics::PDFL` ## Values - `ColorConvDeviceSpace = 1`: Device color space. - `ColorConvCalibratedSpace = 2`: Calibrated color space. - `ColorConvAlternateSpace = 8`: Alternate color space. - `ColorConvBaseSpace = 16`: Base of an indexed space. - `ColorConvIndexedSpace = 32`: Indexed color space. - `ColorConvSeparationSpace = 64`: Separation color space. - `ColorConvDeviceNSpace = 128`: DeviceN color space. - `ColorConvNChannelSpace = 256`: NChannel color space. - `ColorConvRGBSpace = 512`: RGB color space. This should only be set if either Device space (unless Lab) or Calibrated space is set. - `ColorConvCMYKSpace = 1024`: CMYK color space. This should only be set if either Device space (unless Lab) or Calibrated space is set. - `ColorConvGraySpace = 2048`: Gray color space. This should only be set if either Device space (unless Lab) or Calibrated space is set. - `ColorConvLabSpace = 4096`: Lab color space. - `ColorConvAnySpace = 8191`: Any color space. --- # ColorConvertObjAttrs Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorConvertObjAttrs **Namespace:** `Datalogics::PDFL` ## Values - `ColorConvImage = 1`: Object is an image. - `ColorConvJPEG = 2`: Object is a JPEG image. - `ColorConvJPEG2000 = 4`: Object is a JPEG2000 image. - `ColorConvLossy = 8`: Image is in a lossy space. - `ColorConvLossless = 16`: Image is in a non-lossy space. - `ColorConvText = 32`: Object is text. - `ColorConvLineArt = 64`: Object is line-art (fill, stroke). - `ColorConvShade = 128`: Object is a smooth shade. - `ColorConvTransparent = 256`: Object is not opaque. - `ColorConvOverprinting = 512`: Object overprints. - `ColorConvOverprintMode = 1024`: Overprint mode (OPM) is set to 1. - `ColorConvAnyObject = 225`: Any object. --- # ColorConvertParams Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorConvertParams ```csharp class ColorConvertParams : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Holds parameters to be passed to a color convert method. This includes the actions to take in case of a match. Each object is compared against the selection criteria for each of the actions, in order, until a matching action is found. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md) **Uses types:** [`ColorConvertActions`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorConvertActions.md), [`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md), [`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md) ## Constructors ### ColorConvertParams ```csharp Datalogics.PDFL.ColorConvertParams.ColorConvertParams(System.Collections.Generic.IList< ColorConvertActions > convActions) ``` *constructor* **Parameters** - `convActions` ([`System.Collections.Generic.IList< ColorConvertActions >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorConvertActions.md)): The list of ColorConvertActions to apply during color conversion. Constructs a ColorConvertParams with the specified color conversion actions. Initializes AllowLossyCompression to false, all default color profiles to null, and all render intents to Perceptual. ## Properties ### AllowLossyCompression ```csharp bool Datalogics.PDFL.ColorConvertParams.AllowLossyCompression { get; set; } ``` If true, DCT or JPX encoding will be used resulting in a smaller PDF. If false, FlateDecoding will be used instead. ### ColorConvActions ```csharp System.Collections.Generic.IList Datalogics.PDFL.ColorConvertParams.ColorConvActions { get; set; } ``` The list of ColorConvertActions to apply during color conversion. Each object in the document is compared against the selection criteria for each action, in order, until a matching action is found. ### DefaultCMYK ```csharp ColorProfile Datalogics.PDFL.ColorConvertParams.DefaultCMYK { get; set; } ``` The default CMYK ColorProfile used when a document object has no embedded CMYK profile. Initially set to the null color profile. ### DefaultGray ```csharp ColorProfile Datalogics.PDFL.ColorConvertParams.DefaultGray { get; set; } ``` The default Gray ColorProfile used when a document object has no embedded Gray profile. Initially set to the null color profile. ### DefaultRGB ```csharp ColorProfile Datalogics.PDFL.ColorConvertParams.DefaultRGB { get; set; } ``` The default RGB ColorProfile used when a document object has no embedded RGB profile. Initially set to the null color profile. ### IntentCMYK ```csharp RenderIntent Datalogics.PDFL.ColorConvertParams.IntentCMYK { get; set; } ``` The RenderIntent used for CMYK color conversion. Initially set to Perceptual. ### IntentGray ```csharp RenderIntent Datalogics.PDFL.ColorConvertParams.IntentGray { get; set; } ``` The RenderIntent used for Gray color conversion. Initially set to Perceptual. ### IntentRGB ```csharp RenderIntent Datalogics.PDFL.ColorConvertParams.IntentRGB { get; set; } ``` The RenderIntent used for RGB color conversion. Initially set to Perceptual. ## Methods ### Dispose ```csharp void Datalogics.PDFL.ColorConvertParams.Dispose() ``` **Returns:** `void` --- # ColorProfile Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile **Namespace:** `Datalogics::PDFL` ## Values - `Null_ColorProfile = 0`: A NULL result, indication that a profile is not a built-in profile. - `Lab_D50 = 1`: Adobe's standard Lab profile. It has a white point of D50, and exactly matches the ICC's Lab PCS space. - `PCS_XYZ = 2`: An XYZ profile that exactly matches the ICC's XYZ PCS space. - `FLAT_XYZ = 3`: An XYZ profile with a flat white point encoding (X = Y = Z = 1.0). Photoshop uses this as an intermediate space in its display loop. - `SRGB = 4`: HP's sRGB profile. The default Windows monitor profile. - `AppleRGB = 5`: Default RGB space using by Photoshop 4.0 and earlier. The default Mac OS monitor profile. - `AdobeRGB1998 = 6`: A wider gamut RGB space recommended by Adobe. - `ColorMatchRGB = 7`: A simplified version of Radius' ColorMatch RGB space, without Radius' non-zero black point. - `Gamma18 = 8`: Grayscale display profile with a gamma of 1.8. - `Gamma22 = 9`: Grayscale display profile with a gamma of 2.2. - `DotGain10 = 10`: Grayscale printer profile with a dot gain of 10. - `DotGain15 = 11`: Grayscale printer profile with a dot gain of 15. - `DotGain20 = 12`: Grayscale printer profile with a dot gain of 20. - `DotGain25 = 13`: Grayscale printer profile with a dot gain of 25. - `DotGain30 = 14`: Grayscale printer profile with a dot gain of 30 - `MonitorRGB = 15`: The system "Monitor RGB" profile. - `SystemRGB = 16`: The macOS ColorSync system default profile for RGB color space. - `SystemCMYK = 17`: The macOS ColorSync system default profiles for CMYK color space. - `SystemGray = 18`: The macOS ColorSync system default profiles for Gray color space. - `SystemInput = 19`: The macOS ColorSync system default profiles for input device type. - `SystemOutput = 20`: The macOS ColorSync system default profiles for output device type. - `SystemProofer = 21`: The macOS ColorSync system default profiles for proofer device type. - `WorkingRGB = 22`: The application working (RGB) color space profile. - `WorkingCMYK = 23`: The application working (CMYK) color space profile.) - `WorkingGray = 24`: The application working (Gray) color space profile. - `Acrobat5_CMYK = 25`: Acrobat 5 CMYK - `Acrobat9_CMYK = 26`: Acrobat 9 CMYK --- # ColorSpace Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace ```csharp class ColorSpace : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` **Derived classes:** [`CalGrayColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CalGrayColorSpace.md), [`CalRGBColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CalRGBColorSpace.md), [`DeviceNColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DeviceNColorSpace.md), [`ICCBasedColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ICCBasedColorSpace.md), [`IndexedColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/IndexedColorSpace.md), [`LabColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LabColorSpace.md), [`NamedColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NamedColorSpace.md), [`SeparationColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md) ## Description Base class for all color spaces. **Referenced by:** [`AxialShadingPattern`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/AxialShadingPattern.md), [`CalGrayColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CalGrayColorSpace.md), [`CalRGBColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CalRGBColorSpace.md), [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md), [`DeviceNColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DeviceNColorSpace.md), [`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md), [`ICCBasedColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ICCBasedColorSpace.md), [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md), [`IndexedColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/IndexedColorSpace.md), [`LabColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LabColorSpace.md), [`NamedColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NamedColorSpace.md), [`PageImageParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageImageParams.md), [`SeparationColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md), [`Shading`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Shading.md), [`ShadingPattern`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ShadingPattern.md) **Uses types:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Properties ### DeviceCMYK ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceCMYK { get; } ``` *static* The DeviceCMYK color space, representing cyan, magenta, yellow, and black components. ### DeviceGray ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceGray { get; } ``` *static* The DeviceGray color space, representing a single grayscale component. ### DeviceRGB ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceRGB { get; } ``` *static* The DeviceRGB color space, representing red, green, and blue components. ### DeviceRGBA ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceRGBA { get; } ``` *static* The DeviceRGBA color space, representing red, green, blue, and alpha components. ### Lab ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.Lab { get; } ``` *static* The CIE-based L*a*b* color space. ### LabA ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.LabA { get; } ``` *static* The CIE-based L*a*b* color space with an alpha component. ### Name ```csharp string Datalogics.PDFL.ColorSpace.Name { get; } ``` The name of the color space. A named color space may be named something like DeviceRGB. More complicated color spaces may have a name like Indexed or ICCBased. ### NumComponents ```csharp int Datalogics.PDFL.ColorSpace.NumComponents { get; } ``` The number of components in the color space. For example, DeviceGray has 1 component, DeviceRGB has 3, and DeviceCMYK has 4. ### PDFObject ```csharp PDFObject Datalogics.PDFL.ColorSpace.PDFObject { get; } ``` Get the PDFObject associated with the color space. This may be a PDFName, PDFDict, PDFStream, or PDFArray. ## Methods ### Dispose ```csharp void Datalogics.PDFL.ColorSpace.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.ColorSpace.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.ColorSpace.ToString() ``` **Returns:** `override string` A string describing this ColorSpace. Convert a ColorSpace to a string representation. ### operator!= ```csharp static bool Datalogics.PDFL.ColorSpace.operator!=(ColorSpace a, ColorSpace b) ``` *static* **Parameters** - `a` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The first ColorSpace to compare. - `b` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The second ColorSpace to compare. **Returns:** `bool` true if the two ColorSpace objects are not equal; false otherwise. Test two ColorSpace objects for inequality. ### operator== ```csharp static bool Datalogics.PDFL.ColorSpace.operator==(ColorSpace a, ColorSpace b) ``` *static* **Parameters** - `a` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The first ColorSpace to compare. - `b` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The second ColorSpace to compare. **Returns:** `bool` true if the two ColorSpace objects are equal; false otherwise. Test two ColorSpace objects for equality. --- # ColorValueConverter Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorValueConverter ```csharp class ColorValueConverter : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description This class contains methods used to convert sets of values from one Colorspace to another. **Uses types:** [`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md), [`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md) ## Constructors ### ColorValueConverter ```csharp Datalogics.PDFL.ColorValueConverter.ColorValueConverter() ``` *constructor* This class contains methods used to convert sets of values from one Colorspace to another. ## Methods ### ConvertValues ```csharp System.Byte[] Datalogics.PDFL.ColorValueConverter.ConvertValues(ColorProfile sourceColorProfile, ColorProfile destinationColorProfile, RenderIntent intent, uint numberOfInputValueSets, System.Byte[] inputValueSets) ``` **Parameters** - `sourceColorProfile` ([`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md)): The Color Profile to be used for input values. - `destinationColorProfile` ([`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md)): The Color Profile to be used for output values. - `intent` ([`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md)): The Render Intent used during the conversion. - `numberOfInputValueSets` (`uint`): The number of sets of input values to be converted. - `inputValueSets` (`System.Byte[]`): The input values to be converted which are divided into sets, e.g., would represent 2 sets of CMYK colors: [255 140 0 0] and [120 0 60 0] and numberOfInputValueSets should be 2. **Returns:** `System.Byte[]` A list of converted color values in the destination colorspace. Converts sets of values from a Source ColorSpace to a Destination colorspace using a specified Render Intent. ### ConvertValues ```csharp System.Byte[] Datalogics.PDFL.ColorValueConverter.ConvertValues(ColorProfile sourceColorProfile, string destinationColorProfilePath, RenderIntent intent, uint numberOfInputValueSets, System.Byte[] inputValueSets) ``` **Parameters** - `sourceColorProfile` ([`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md)): The Color Profile to be used for input values. - `destinationColorProfilePath` (`string`): The Color Profile to be used for output values, loaded from a path on disk. - `intent` ([`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md)): The Render Intent used during the conversion. - `numberOfInputValueSets` (`uint`): The number of sets of input values to be converted. - `inputValueSets` (`System.Byte[]`): The input values to be converted which are divided into sets, e.g., would represent 2 sets of CMYK colors: [255 140 0 0] and [120 0 60 0] and numberOfInputValueSets should be 2. **Returns:** `System.Byte[]` A list of converted color values in the destination colorspace. Converts sets of values from a Source ColorSpace to a Destination colorspace using a specified Render Intent. ### ConvertValues ```csharp System.Byte[] Datalogics.PDFL.ColorValueConverter.ConvertValues(string sourceColorProfilePath, ColorProfile destinationColorProfile, RenderIntent intent, uint numberOfInputValueSets, System.Byte[] inputValueSets) ``` **Parameters** - `sourceColorProfilePath` (`string`): The Color Profile to be used for input values, loaded from a path on disk. - `destinationColorProfile` ([`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md)): The Color Profile to be used for output values. - `intent` ([`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md)): The Render Intent used during the conversion. - `numberOfInputValueSets` (`uint`): The number of sets of input values to be converted. - `inputValueSets` (`System.Byte[]`): The input values to be converted which are divided into sets, e.g., would represent 2 sets of CMYK colors: [255 140 0 0] and [120 0 60 0] and numberOfInputValueSets should be 2. **Returns:** `System.Byte[]` A list of converted color values in the destination colorspace. Converts sets of values from a Source ColorSpace to a Destination colorspace using a specified Render Intent. ### ConvertValues ```csharp System.Byte[] Datalogics.PDFL.ColorValueConverter.ConvertValues(string sourceColorProfilePath, string destinationColorProfilePath, RenderIntent intent, uint numberOfInputValueSets, System.Byte[] inputValueSets) ``` **Parameters** - `sourceColorProfilePath` (`string`): The Color Profile to be used for input values, loaded from a path on disk. - `destinationColorProfilePath` (`string`): The Color Profile to be used for output values, loaded from a path on disk. - `intent` ([`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md)): The Render Intent used during the conversion. - `numberOfInputValueSets` (`uint`): The number of sets of input values to be converted. - `inputValueSets` (`System.Byte[]`): The input values to be converted which are divided into sets, e.g. < 255 140 0 0 120 0 60 0 > would represent 2 sets of CMYK colors: [255 140 0 0] and [120 0 60 0] and numberOfInputValueSets should be 2. **Returns:** `System.Byte[]` A list of converted color values in the destination colorspace. Converts sets of values from a Source ColorSpace to a Destination colorspace using a specified Render Intent. ### Dispose ```csharp void Datalogics.PDFL.ColorValueConverter.Dispose() ``` **Returns:** `void` --- # CompressImageType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType **Namespace:** `Datalogics::PDFL` ## Description Enumerator to allow the selection of image type to Set the values for resampling and recompression. ## Values - `Color = 1`: Set the values for conversion of Color images. - `Gray = 2`: Set the value for conversion of Grayscale images. - `BW = 3`: Set the value for conversion of Black and White (Monochrome) images. --- # CompressionCode Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressionCode **Namespace:** `Datalogics::PDFL` ## Description Compression values for generating graphics files from PDF pages. A compression value must be provided for JPG or GIF images. ## Values - `Default = 0`: Use the default for the output image type. - `NONE = 1`: Use no image compression. Valid for BMP, PNG and TIFF outputs only. - `FLATE = 2`: Deflate algorithm (PNG only). An open source standard widely used for creating zip files and with PDF. - `LZW = 3`: Lempel-Ziv-Welch, valid for TIFF output. Valid for GIF and TIFF. A lossless algorithm, resulting files are larger but retain original quality. - `G3 = 4`: CCITT Group3 compression. Valid for TIFF, requires colorModel gray. A lossless algorithm for black and white images that efficiently compresses whitespace. - `G4 = 5`: CCITT Group4 compression. Valid for TIFF, requires colorModel gray. A lossless algorithm for black and white images based on G3. - `DCT = 6`: Discrete Cosine Transform. Lossy algorithm, valid for JPEG. Best when used with continuous tone (such as photographs). --- # CompressionType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressionType **Namespace:** `Datalogics::PDFL` ## Description Enumerator used to select type of compression used when images are recompressed. For color or grayscale images: Flate, JPEG or JPEG2000 may be selected. For black and white images: Flate, JBIG2, CCITTG3, or CCITTG4 may be selected. ## Values - `NoCompression = 0`: Do not replace compression type. - `SameCompression = 1`: Recompress with the same compression. - `FlateCompression = 2`: Recompress with Flate compression. - `JPEGCompression = 3`: Recompress with JPEG. JPEG quality is set with compression quality. - `JPEG2000Compression = 4`: Recompress using JPEG2000. JPEG2000 Quality is set with compression quality. - `JBIG2Compression = 5`: Recompress with JBIG2. JBIG2 Quality is set with compression quality. - `CCITTG4Compression = 6`: Recompress with CCITTG4. - `CCITTG3Compression = 7`: Recompress with CCITTG3. - `FlateJpegCompression = 8`: Recompress with FlateJpeg. --- # CompressQuality Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressQuality **Namespace:** `Datalogics::PDFL` ## Description Establish the compression quality to be used in compression schemas that allow variable quality. (JPEG, JPEG2000, JBIG2). Unset should be selected for compression schemes that are inherently lossless (Flate, CCITTG3, or CCITTG4). JBIG2 may select any value. JPEG and JPEG2000 can select any value between Minimum and Maximum, but should not select Unset or Lossless. ## Values - `Unset = 0`: No Quality is selected. This is appropriate for Flate, JBIG2, CCITTG3, or CCITTG4 compression. - `Minimum = 1`: For JPEG, this will equate to a QFactor of 1.3. For JPEG2000, this will equate to Quality of 0. For JBIG2, this will equate to a JB2Quality of 4. - `Low = 2`: For JPEG, this will equate to a QFactor of 0.75. For JPEG2000, this will equate to Quality of 25. For JBIG2, this will equate to a JB2Quality of 5. - `Medium = 3`: For JPEG, this will equate to a QFactor of 0.5. For JPEG2000, this will equate to Quality of 50. For JBIG2, this will equate to a JB2Quality of 7. - `High = 4`: For JPEG, this will equate to a QFactor of 0.25. For JPEG2000, this will equate to Quality of 75. For JBIG2, this will equate to a JB2Quality of 9. - `Maximum = 5`: For JPEG, this will equate to a QFactor of 0.15. For JPEG2000, this will equate to Quality of 100. For JBIG2, this will equate to a JB2Quality of 10. - `Lossless = 6`: This may ONLY be selected for Flate, CCITTG3, CCITTG4, and JBIG2 --- # Container Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Container ```csharp class Container : Element ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) ## Description A container class represents a group of elements on a page in a PDF file. In the PDF file, every container has a set of Marked Content tags, starting with Begin Marked Content (BMC or BDC) and ending with End Marked Content (EMC), so each container has a BMC/EMC or BDC/EMC pair of tags. These tags can be used to define the beginning and end of metadata around objects, providing information about the text and shapes within a PDF file. Containers can be nested within other containers. **Referenced by:** [`Container`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Container.md), [`StructElement`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructElement.md) **Uses types:** [`Clip`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Clip.md), [`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md), [`Container`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Container.md), [`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md), [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md), [`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md) ## Constructors ### Container ```csharp Datalogics.PDFL.Container.Container() ``` *constructor* Create a new Container. The new Container has no tag and is not associated with a dictionary. ### Container ```csharp Datalogics.PDFL.Container.Container(string mcTag) ``` *constructor* **Parameters** - `mcTag` (`string`): The tag name for the Container. Create a new Container with a given Marked Content Tag. The new Container has a Marked Content tag but is not associated with a dictionary. ### Container ```csharp Datalogics.PDFL.Container.Container(string mcTag, PDFDict propertyList, bool isInline) ``` *constructor* **Parameters** - `mcTag` (`string`): The tag name for the Container. - `propertyList` ([`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md)): The dictionary representing the Property List to associate with the Container. - `isInline` (`bool`): If true, it's part of content stream. If false, its emitted outside of the content stream and referenced by name. Create a new Container with a given Marked Content Tag and Property list. The new Container has a Marked Content tag and is associated with a dictionary. ## Properties ### BoundingBox ```csharp Rect Datalogics.PDFL.Element.BoundingBox { get; } ``` The bounding box for this element. The bounding box is a rectangle that is guaranteed to encompass the element, but it is not guaranteed to be the smallest box that could contain the element. For example, if the element is a Path that contains an arc, the bounding box encompasses the bezier control points, and not just the curve itself. ### Clip ```csharp Clip Datalogics.PDFL.Element.Clip { get; set; } ``` Gets the current Clip for an Element. ### Content ```csharp Content Datalogics.PDFL.Container.Content { get; set; } ``` Obtain the content of a container. ### MarkedContentTag ```csharp string Datalogics.PDFL.Container.MarkedContentTag { get; set; } ``` The container's Marked Content Tag. ### Matrix ```csharp Matrix Datalogics.PDFL.Element.Matrix { get; set; } ``` The transformation matrix for the element. ### OptionalContentMembershipDict ```csharp OptionalContentMembershipDict Datalogics.PDFL.Container.OptionalContentMembershipDict { get; set; } ``` The OptionalContentMembershipDict property for this Container. Setting this property will attach the Container to an OptionalContentMembershipDict; it will then be associated with the OptionalContentGroups and be subject to the VisibilityPolicy and VisibilityExpression of that MembershipDict. By setting this property to null, the Container is detached from any OptionalContentMembershipDict. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Container.PDFDict { get; } ``` Retrieve the PDFObject representation of this object ## Methods ### Clone ```csharp new Container Datalogics.PDFL.Container.Clone() ``` **Returns:** `new Container` The copied container. Makes a copy of the container. Make a copy of an container to obtain a new container that has a distinct set of attributes. ### Clone ```csharp new Container Datalogics.PDFL.Container.Clone(ElementCloneFlags cloneFlags) ``` **Parameters** - `cloneFlags` ([`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md)): Flags that modify the cloning operation. **Returns:** `new Container` The copied container. Makes a copy of the container. Make a copy of an container to obtain a new container that has a distinct set of attributes. ### ColorConvert ```csharp Container Datalogics.PDFL.Container.ColorConvert(Document document, ColorProfile prof, RenderIntent intent, bool embed) ``` **Parameters** - `document` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document the element belongs to. - `prof` ([`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md)): The ICC ColorProfile to be applied. - `intent` ([`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md)): The ICC Rendering Intent for the ColorProfile - `embed` (`bool`): If true, embed the color space and make the objects calibrated. If it is false and the target profile is CMYK, RGB, or Gray, the colors space of the resulting objects, after conversion, will be DeviceCMYK, DeviceRGB, or DeviceGray, respectively. **Returns:** [`Container`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Container.md) A new Container with the applied ICC ColorProfile. Applies the specified ICC ColorProfile to the objects in the Container ### Dispose ```csharp void Datalogics.PDFL.Element.Dispose() ``` **Returns:** `void` ### IsCurrentlyVisible ```csharp bool Datalogics.PDFL.Container.IsCurrentlyVisible(OptionalContentContext occ) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context to check visibility against. **Returns:** `bool` true if the container is currently visible. Tests whether a container is visible in a given optional content context, considering the current ON-OFF states of the optional-content groups in the optional-content dictionary (OCMD) and the dictionary's visibility policy. If the container occurs more than once within the content, this method only checks the visibility of the first occurrence of the container. This method determines visibility without considering the visbility of the Content object that the container belongs to. To determine the visibility of a container while taking the Content's visibility into consideration, use the alternate version of this method. ### IsCurrentlyVisible ```csharp bool Datalogics.PDFL.Container.IsCurrentlyVisible(OptionalContentContext occ, Content content) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context to check visibility against. - `content` ([`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md)): The Content containing the container, used to determine container visibility within the content hierarchy. **Returns:** `bool` true if the container is currently visible. Tests whether a container is visible in a given optional content context and content. If the container occurs more than once within the content, this method only checks the visibility of the first occurrence of the container. ### MakeVisible ```csharp bool Datalogics.PDFL.Container.MakeVisible(OptionalContentContext occ, Content content) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which the container is made visible. - `content` ([`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md)): The content containing the container. **Returns:** `bool` true if the container is successfully made visible in the given context and content, false otherwise Makes a container visible in a given optional content context and content by manipulating the ON-OFF states of the optional content groups. ### Rotate ```csharp void Datalogics.PDFL.Element.Rotate(double theta) ``` **Parameters** - `theta` (`double`): The rotation angle in degrees. **Returns:** `void` Rotate an element by theta degrees counterclockwise using the matrix [ cos T sin T -sin T cos T 0 0 ]. ### Scale ```csharp void Datalogics.PDFL.Element.Scale(double sx, double sy) ``` **Parameters** - `sx` (`double`): The horizontal scale factor. - `sy` (`double`): The vertical scale factor. **Returns:** `void` Scale an element by (sx,sy) units using the matrix [ sx 0 0 sy 0 0 ]. ### Translate ```csharp void Datalogics.PDFL.Element.Translate(double tx, double ty) ``` **Parameters** - `tx` (`double`): The horizontal translation distance in user space units. - `ty` (`double`): The vertical translation distance in user space units. **Returns:** `void` Translate an element by (tx,ty) units using the matrix [ 1 0 0 1 tx ty ]. --- # Content Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content ```csharp class Content : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Class that represents the collection of elements on a PDF page. A content object represents a collection of elements that make up a page in a PDF file. A content object is more convenient to use than directly parsing or working with a page content stream. This is because a page can include a large collection of individual stream objects. Working with a content object, you can avoid focusing on this level of detail. The content converts individual stream items to a structured form, making it unnecessary to parse the individual syntax for each one. A content object can be associated with a large amount of unmanaged memory in APDFL and should be deleted when the object is no longer in use. The index associated with Content is 0-based, so 0 is the first element. **Referenced by:** [`Container`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Container.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`Group`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Group.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md) **Uses types:** [`AddPageFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AddPageFlags.md), [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md), [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### Content ```csharp Datalogics.PDFL.Content.Content() ``` *constructor* Create content ### Content ```csharp Datalogics.PDFL.Content.Content(Element firstElem) ``` *constructor* **Parameters** - `firstElem` ([`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md)): The Element which is to be added to the beginning of the new Content object. Create content with a first Element. ## Properties ### BoundingBox ```csharp Rect Datalogics.PDFL.Content.BoundingBox { get; } ``` The bounding box for this content. The bounding box is a rectangle that is at least large enough to contain the bounding boxes for all the elements in the Content. ### NumElements ```csharp int Datalogics.PDFL.Content.NumElements { get; } ``` The number of elements in the Content object. ## Fields ### BeforeFirst ```csharp static const int Datalogics.PDFL.Content.BeforeFirst ``` *static* Position for inserting an element before the first element. ## Methods ### AddElement ```csharp void Datalogics.PDFL.Content.AddElement(Element NewElem) ``` **Parameters** - `NewElem` ([`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md)): The Element which is to be added to the end of the existing Content object. **Returns:** `void` Adds an existing Element at the end of the content object. ### AddElement ```csharp void Datalogics.PDFL.Content.AddElement(Element NewElem, int addAfterIndex) ``` **Parameters** - `NewElem` ([`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md)): The Element which is to be added to the end of the existing Content object. - `addAfterIndex` (`int`): The position after which to insert the new Element, the index is 0-based so 0 is the first element. To insert a new element as the first element use the Content.BeforeFirst constant. **Returns:** `void` Adds an existing Element at the given index of the content object. ### AddPage ```csharp void Datalogics.PDFL.Content.AddPage(int insertAfterIndex, Document containerDoc, Page srcPage, Matrix dstMatrix, System.Collections.Generic.IList< System.String > annotTypes, AddPageFlags flags, Rect bbox) ``` **Parameters** - `insertAfterIndex` (`int`): The index indicates the location after which the specified element is to be added. The index should be BeforeFirst to add to the beginning of the display list. - `containerDoc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The Document in which the page is contained. - `srcPage` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page that will be inserted at insertAfterIndex in theContent. - `dstMatrix` ([`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md)): (May be NULL) The matrix applied to the default matrix of the Page that is inserted into the Document. - `annotTypes` (`System.Collections.Generic.IList< System.String >`): If the page contains annotations, the annotTypes list is used to determine which annotation types are pumped into the page contents of the CosDoc. - `flags` ([`AddPageFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AddPageFlags.md)): (May be 0) AllAnnotations specifies all annotation types. If this is not set, then the annotTypes list will be consulted. - `bbox` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): (May be NULL) specifies the destination BBox for the page being inserted. If it is NULL, the new page's media box is used. **Returns:** `void` Adds the specfied Page to the Content as a Form. It adds a reference to the Xobject form at the indicated index in the Content; the index may be less than 0, which indicates the object is to be appended to the content. ### Dispose ```csharp void Datalogics.PDFL.Content.Dispose() ``` **Returns:** `void` ### FlattenOptionalContent ```csharp bool Datalogics.PDFL.Content.FlattenOptionalContent(OptionalContentContext occ) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which content is checked for visibility. **Returns:** `bool` true if the content was successfully flattened, false otherwise. Flattens optional content within this Content object. Removes elements that are not visible in the given optional content context and removes optional content information from any visible elements. The optional content information formerly associated with this Content object will NOT be deleted from the document, as it is possible that content elsewhere in the document may be using the information. ### GetDefaultColorSpace ```csharp ColorSpace Datalogics.PDFL.Content.GetDefaultColorSpace(string name) ``` **Parameters** - `name` (`string`): The name of the color space to get. It must be one of DefaultRGB, DefaultCMYK, or DefaultGray. **Returns:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md) The color space used as the default. May return null if no default is set. Get a default color space from a Content object. ### GetElement ```csharp Element Datalogics.PDFL.Content.GetElement(int index) ``` **Parameters** - `index` (`int`): The zero-based index of the element to retrieve. **Returns:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) The Element at the specified index. Get the element specified by index. ### RemoveElement ```csharp void Datalogics.PDFL.Content.RemoveElement(int index) ``` **Parameters** - `index` (`int`): The position at which to remove the Element **Returns:** `void` Removes the Element at the specified index. ### SetDefaultColorSpace ```csharp void Datalogics.PDFL.Content.SetDefaultColorSpace(string name, ColorSpace colorSpace) ``` **Parameters** - `name` (`string`): The name of the color space to set. It must be one of DefaultRGB, DefaultCMYK, or DefaultGray. - `colorSpace` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The color space to set. It may not be a Lab, Indexed or Pattern color space. **Returns:** `void` Set a default color space from a Content object. ### ToString ```csharp override string Datalogics.PDFL.Content.ToString() ``` **Returns:** `override string` A string describing this Content object. Returns a string representation of this Content object. The string includes the number of elements in the Content. --- # CredentialDataFmt Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CredentialDataFmt **Namespace:** `Datalogics::PDFL` ## Description Enumeration to specify credential encoding format as either Non-PFX (PEM/DER) or PFX (PKCS#12). ## Values - `NonPFX = 0`: Base64-encoded or Binary DER (ASN.1 Distinguished Encoding Rules) format. - `PFX = 1`: PKCS#12 format. --- # CredentialStorageFmt Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CredentialStorageFmt **Namespace:** `Datalogics::PDFL` ## Description Enumeration to specify credential is required to be retrieved from disk (OnDisk) or is cached in memory (InMemory). ## Values - `OnDisk = 0`: Credential resides on-disk. - `InMemory = 1`: Credential is cached in memory. --- # CurveTo Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CurveTo ```csharp class CurveTo : Segment ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Segment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Segment.md) ## Description The curveto operator is used to draw a Bezier curve. The curved segment is appended to a path. The curveto operator calculates the curve between two endpoints, the current (beginning) point and the final (end) point, and in relation to two matching control points. The control points define the nature of the curve between the two endpoints. These values are represented by a series of x and y coordinates. **Uses types:** [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md) ## Constructors ### CurveTo ```csharp Datalogics.PDFL.CurveTo.CurveTo(double x1, double y1, double x2, double y2, double x3, double y3) ``` *constructor* **Parameters** - `x1` (`double`): The x-coordinate of the first control point. - `y1` (`double`): The y-coordinate of the first control point. - `x2` (`double`): The x-coordinate of the second control point. - `y2` (`double`): The y-coordinate of the second control point. - `x3` (`double`): The x-coordinate of the new current point. - `y3` (`double`): The y-coordinate of the new current point. Append a cubic Bézier curve to the current path. The curve extends from the current point to the point (x3, y3), using (x1, y1) and (x2, y2) as the Bézier control points. The new current point is (x3 , y3). ### CurveTo ```csharp Datalogics.PDFL.CurveTo.CurveTo(Point point1, Point point2, Point point3) ``` *constructor* **Parameters** - `point1` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the first control point. - `point2` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the second control point. - `point3` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the new current point. Append a cubic Bézier curve to the current path. The curve extends from the current point to point3, using point1 and point2 as the Bézier control points. The new current point is point3. ## Properties ### Point1 ```csharp Point Datalogics.PDFL.CurveTo.Point1 { get; set; } ``` The first control point. ### Point2 ```csharp Point Datalogics.PDFL.CurveTo.Point2 { get; set; } ``` The second control point. ### Point3 ```csharp Point Datalogics.PDFL.CurveTo.Point3 { get; set; } ``` The new current point. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Segment.Dispose() ``` **Returns:** `void` ### ToString ```csharp override string Datalogics.PDFL.CurveTo.ToString() ``` **Returns:** `override string` --- # CurveToV Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CurveToV ```csharp class CurveToV : Segment ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Segment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Segment.md) ## Description A curveto operator where the first control point matches the beginning. The current point is the beginning point in the curve. The name CurveToV is drawn from the "V" path construction operator. **Uses types:** [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md) ## Constructors ### CurveToV ```csharp Datalogics.PDFL.CurveToV.CurveToV(double x2, double y2, double x3, double y3) ``` *constructor* **Parameters** - `x2` (`double`): The x-coordinate of the second control point. - `y2` (`double`): The y-coordinate of the second control point. - `x3` (`double`): The x-coordinate of the new current point. - `y3` (`double`): The y-coordinate of the new current point. Append a cubic Bézier curve to the current path. The curve extends from the current point to the point (x3, y3), using the current point and (x2, y2) as the Bézier control points. The new current point is (x3 ,y3). ### CurveToV ```csharp Datalogics.PDFL.CurveToV.CurveToV(Point point2, Point point3) ``` *constructor* **Parameters** - `point2` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the append a cubic Bézier curve to the current path. The curve extends from the current point to point3, using the c... - `point3` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the append a cubic Bézier curve to the current path. The curve extends from the current point to point3, using the c... Append a cubic Bézier curve to the current path. The curve extends from the current point to point3, using the current point and point2 as the Bézier control points. The new current point is point3. ## Properties ### Point2 ```csharp Point Datalogics.PDFL.CurveToV.Point2 { get; set; } ``` The second control point. ### Point3 ```csharp Point Datalogics.PDFL.CurveToV.Point3 { get; set; } ``` The new current point. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Segment.Dispose() ``` **Returns:** `void` ### ToString ```csharp override string Datalogics.PDFL.CurveToV.ToString() ``` **Returns:** `override string` --- # CurveToY Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CurveToY ```csharp class CurveToY : Segment ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Segment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Segment.md) ## Description A curveto operator where the second control point matches the end point. Here the new current point is the end point in the curve. The name CurveToY is drawn from the "Y" path construction operator. **Uses types:** [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md) ## Constructors ### CurveToY ```csharp Datalogics.PDFL.CurveToY.CurveToY(double x1, double y1, double x3, double y3) ``` *constructor* **Parameters** - `x1` (`double`): The x-coordinate of the first control point. - `y1` (`double`): The y-coordinate of the first control point. - `x3` (`double`): The x-coordinate of the new current point. - `y3` (`double`): The y-coordinate of the new current point. Append a cubic Bézier curve to the current path. The curve extends from the current point to the point (x3, y3), using (x1, y1) and (x3, y3) as the Bézier control points. The new current point is (x3 ,y3). ### CurveToY ```csharp Datalogics.PDFL.CurveToY.CurveToY(Point point1, Point point3) ``` *constructor* **Parameters** - `point1` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the first control point. - `point3` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the new current point. Append a cubic Bézier curve to the current path. The curve extends from the current point to point3, using point1 and point3 as the Bézier control points. The new current point is point3. ## Properties ### Point1 ```csharp Point Datalogics.PDFL.CurveToY.Point1 { get; set; } ``` The first control point. ### Point3 ```csharp Point Datalogics.PDFL.CurveToY.Point3 { get; set; } ``` The new current point. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Segment.Dispose() ``` **Returns:** `void` ### ToString ```csharp override string Datalogics.PDFL.CurveToY.ToString() ``` **Returns:** `override string` --- # DeviceNColorSpace Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DeviceNColorSpace ```csharp class DeviceNColorSpace : ColorSpace ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md) ## Description Represents a color space with an arbitrary number of color components. DeviceN color spaces were designed to represent color spaces containing multiple color components that correspond to the colorants of some target device. They provide greater flexibility than is possible with standard device color spaces such as DeviceCMYK or with individual Separation color spaces. For example, it is possible to create a DeviceN color space consisting of only the cyan, magenta, and yellow color components, with the black component excluded. **Uses types:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Constructors ### DeviceNColorSpace ```csharp Datalogics.PDFL.DeviceNColorSpace.DeviceNColorSpace(System.Collections.Generic.IList< System.String > names, ColorSpace alternate, Function tintTransform) ``` *constructor* **Parameters** - `names` (`System.Collections.Generic.IList< System.String >`): the names of the colorants that the DeviceN space is intended to represent, among which may be All, or None - `alternate` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): the alternate color space, which can be any device or CIE-based color space but not another special color space (Pattern, Indexed, Separation, or DeviceN). - `tintTransform` ([`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): function, called with the tint value and returning the corresponding color component values. That is, the number of components and the interpretation of their values depend on the alternate color space. Create a DeviceN color space. ## Properties ### Alternate ```csharp ColorSpace Datalogics.PDFL.DeviceNColorSpace.Alternate { get; } ``` the alternate color space, which can be any device or CIE-based color space but not another special color space (Pattern, Indexed, Separation, or DeviceN). ### Attributes ```csharp PDFDict Datalogics.PDFL.DeviceNColorSpace.Attributes { get; } ``` The dictionary of extended attributes associated with the color space. ### DeviceCMYK ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceCMYK { get; } ``` *static* The DeviceCMYK color space, representing cyan, magenta, yellow, and black components. ### DeviceGray ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceGray { get; } ``` *static* The DeviceGray color space, representing a single grayscale component. ### DeviceRGB ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceRGB { get; } ``` *static* The DeviceRGB color space, representing red, green, and blue components. ### DeviceRGBA ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceRGBA { get; } ``` *static* The DeviceRGBA color space, representing red, green, blue, and alpha components. ### Function ```csharp Function Datalogics.PDFL.DeviceNColorSpace.Function { get; } ``` A function, called with the tint value and returning the corresponding color component values. That is, the number of components and the interpretation of their values depend on the alternate color space. ### Lab ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.Lab { get; } ``` *static* The CIE-based L*a*b* color space. ### LabA ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.LabA { get; } ``` *static* The CIE-based L*a*b* color space with an alpha component. ### Name ```csharp string Datalogics.PDFL.ColorSpace.Name { get; } ``` The name of the color space. A named color space may be named something like DeviceRGB. More complicated color spaces may have a name like Indexed or ICCBased. ### Names ```csharp System.Collections.Generic.IList Datalogics.PDFL.DeviceNColorSpace.Names { get; } ``` the names of the colorant that the DeviceN space is intended to represent, some of which may be All or None ### NumComponents ```csharp int Datalogics.PDFL.ColorSpace.NumComponents { get; } ``` The number of components in the color space. For example, DeviceGray has 1 component, DeviceRGB has 3, and DeviceCMYK has 4. ### PDFObject ```csharp PDFObject Datalogics.PDFL.ColorSpace.PDFObject { get; } ``` Get the PDFObject associated with the color space. This may be a PDFName, PDFDict, PDFStream, or PDFArray. ## Methods ### Dispose ```csharp void Datalogics.PDFL.ColorSpace.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.ColorSpace.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.ColorSpace.ToString() ``` **Returns:** `override string` A string describing this ColorSpace. Convert a ColorSpace to a string representation. ### operator!= ```csharp static bool Datalogics.PDFL.ColorSpace.operator!=(ColorSpace a, ColorSpace b) ``` *static* **Parameters** - `a` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The first ColorSpace to compare. - `b` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The second ColorSpace to compare. **Returns:** `bool` true if the two ColorSpace objects are not equal; false otherwise. Test two ColorSpace objects for inequality. ### operator== ```csharp static bool Datalogics.PDFL.ColorSpace.operator==(ColorSpace a, ColorSpace b) ``` *static* **Parameters** - `a` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The first ColorSpace to compare. - `b` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The second ColorSpace to compare. **Returns:** `bool` true if the two ColorSpace objects are equal; false otherwise. Test two ColorSpace objects for equality. --- # DigestCategory Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/DigestCategory **Namespace:** `Datalogics::PDFL` ## Description Enumeration to specify cryptographic hash functions that generate variable-length message digests required for digital signature creation. ## Values - `Sha1 = 0`: SHA-1 message digest comprised of a 160-bit hash value. - `Sha224 = 1`: SHA-2 message digest comprised of a 224-bit hash value. - `Sha256 = 2`: SHA-2 message digest comprised of a 256-bit hash value. - `Sha384 = 3`: SHA-2 message digest comprised of a 384-bit hash value. - `Sha512 = 4`: SHA-2 message digest comprised of a 512-bit hash value. --- # DisplayTraits Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/DisplayTraits **Namespace:** `Datalogics::PDFL` ## Description Enumeration to specify fields to display as part of signature appearance. ## Values - `KDisplayNone = 0x0`: Do not display text labels or logo image. Note that specifying this option results in an empty signature appearance. - `KDisplayAll = 0x1`: Display all available text labels and logo image. Note that the application expects valid data to be supplied for each available label that will be displayed as a result of this option being selected. - `KDisplayName = 0x2`: Display the Name label. - `KDisplayReason = 0x4`: Display the Reason label. - `KDisplayLocation = 0x8`: Display the Location label. - `KDisplayDate = 0x10`: Display the Date label. - `KDisplayContactInfo = 0x20`: Display the ContactInfo label. - `KDisplayDN = 0x40`: Display the Signer Certificate's Distinguished Name label. - `KDisplayLogo = 0x80`: Display logo image. --- # DocTextFinder Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DocTextFinder ```csharp class DocTextFinder : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A class used to extract words from a document using a regular expression. **Uses types:** [`DocTextFinderConfig`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DocTextFinderConfig.md), [`DocTextFinderMatch`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DocTextFinderMatch.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`WordFinderConfig`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WordFinderConfig.md) ## Constructors ### DocTextFinder ```csharp Datalogics.PDFL.DocTextFinder.DocTextFinder(Document doc, WordFinderConfig wbConfig) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): document to search - `wbConfig` ([`WordFinderConfig`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WordFinderConfig.md)): WordFinder configuration to use Create a DocTextFinder ### DocTextFinder ```csharp Datalogics.PDFL.DocTextFinder.DocTextFinder(Document doc, WordFinderConfig wbConfig, DocTextFinderConfig dtfConfig) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): document to search - `wbConfig` ([`WordFinderConfig`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WordFinderConfig.md)): WordFinder configuration to use - `dtfConfig` ([`DocTextFinderConfig`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DocTextFinderConfig.md)): DocTextFinder configuration to use Create a DocTextFinder with a DocTextFinderConfig ## Methods ### Dispose ```csharp void Datalogics.PDFL.DocTextFinder.Dispose() ``` **Returns:** `void` ### GetMatchList ```csharp System.Collections.Generic.IList< DocTextFinderMatch > Datalogics.PDFL.DocTextFinder.GetMatchList(int beginPageNumber, int endPageNumber, string regexstr) ``` **Parameters** - `beginPageNumber` (`int`): the beginning page number included in the search. - `endPageNumber` (`int`): the ending page number included in the search. - `regexstr` (`string`): the regular expression to use for the search. **Returns:** [`System.Collections.Generic.IList< DocTextFinderMatch >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DocTextFinderMatch.md) a structure containing matching phrases along with its quads. Finds all matching strings for a given regular expression for the specified page range. It returns a vector containing words along with the page and matching phrase that was found. --- # DocTextFinderConfig Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DocTextFinderConfig ```csharp class DocTextFinderConfig : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A document text finder configuration that customizes the way the extracted text is processed. In the default configuration, all options are false. Structure representing configuration options for DocTextFinder. . **Referenced by:** [`DocTextFinder`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DocTextFinder.md) ## Constructors ### DocTextFinderConfig ```csharp Datalogics.PDFL.DocTextFinderConfig.DocTextFinderConfig() ``` *constructor* A document text finder configuration that customizes the way the extracted text is processed. In the default configuration, all options are false. Structure representing configuration options for DocTextFinder. . ## Properties ### PreserveLineBreaks ```csharp bool Datalogics.PDFL.DocTextFinderConfig.PreserveLineBreaks { get; set; } ``` If true, inserts chars instead of spaces wherever ends of lines are detected within extracted text. ## Methods ### Dispose ```csharp void Datalogics.PDFL.DocTextFinderConfig.Dispose() ``` **Returns:** `void` --- # DocTextFinderMatch Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DocTextFinderMatch ```csharp class DocTextFinderMatch : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A phrase in the document that matched the supplied regular expression along with its associated quad bounding box(es). **Referenced by:** [`DocTextFinder`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DocTextFinder.md) **Uses types:** [`DocTextFinderQuadInfo`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DocTextFinderQuadInfo.md) ## Properties ### MatchString ```csharp string Datalogics.PDFL.DocTextFinderMatch.MatchString { get; } ``` Gets the text string that matched the regular expression. ### QuadInfo ```csharp System.Collections.Generic.IList Datalogics.PDFL.DocTextFinderMatch.QuadInfo { get; } ``` Gets the quad info and page numbers for the matched text. Each DocTextFinderQuadInfo in the returned list contains the page number and bounding box quads for a portion of the matched text. ## Methods ### Dispose ```csharp void Datalogics.PDFL.DocTextFinderMatch.Dispose() ``` **Returns:** `void` --- # DocTextFinderQuadInfo Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DocTextFinderQuadInfo ```csharp class DocTextFinderQuadInfo : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A bounding box quad of a character in a PDF file that was part of a string that matched a given regular expression. **Referenced by:** [`DocTextFinderMatch`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DocTextFinderMatch.md) **Uses types:** [`Quad`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md) ## Constructors ### DocTextFinderQuadInfo ```csharp Datalogics.PDFL.DocTextFinderQuadInfo.DocTextFinderQuadInfo() ``` *constructor* A bounding box quad of a character in a PDF file that was part of a string that matched a given regular expression. ## Properties ### PageNum ```csharp int Datalogics.PDFL.DocTextFinderQuadInfo.PageNum { get; } ``` Gets the page number that the quad was found on. ### Quads ```csharp System.Collections.Generic.IList Datalogics.PDFL.DocTextFinderQuadInfo.Quads { get; } ``` Gets the list of bounding box quads for the matched text on this page. ## Methods ### Dispose ```csharp void Datalogics.PDFL.DocTextFinderQuadInfo.Dispose() ``` **Returns:** `void` --- # Document Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document ```csharp class Document : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description The underlying PDF representation of a document. Use document objects to perform most of the functions related to pages in a PDF file, such as deleting pages, inserting blank pages, copying watermarks, creating bookmarks and thumbnails, and so on. **Referenced by:** [`Action`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Action.md), [`Container`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Container.md), [`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md), [`DocTextFinder`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DocTextFinder.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`FileAttachment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FileAttachment.md), [`FileSpecification`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FileSpecification.md), [`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`GoToAction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GoToAction.md), [`Group`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Group.md), [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md), [`ImageCollection`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ImageCollection.md), [`NameTree`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NameTree.md), [`NumberTree`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NumberTree.md), [`OCREngine`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OCREngine.md), [`OptionalContentConfig`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentConfig.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentGroup`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentGroup.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict.md), [`OptionalContentOrderArray`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentOrderArray.md), [`PDFAConvertResult`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFAConvertResult.md), [`PDFArray`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFArray.md), [`PDFBoolean`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFBoolean.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`PDFInteger`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFInteger.md), [`PDFName`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFName.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`PDFOptimizer`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFOptimizer.md), [`PDFReal`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFReal.md), [`PDFStream`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFStream.md), [`PDFString`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFString.md), [`PDFXConvertResult`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFXConvertResult.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`Path`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Path.md), [`PrintUserParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintUserParams.md), [`RemoteDestination`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RemoteDestination.md), [`SignDoc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SignDoc.md), [`StructElement`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructElement.md), [`StructTreeRoot`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructTreeRoot.md), [`Text`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Text.md), [`ViewDestination`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ViewDestination.md), [`WordFinder`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WordFinder.md) **Uses types:** [`AcroFormExportType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AcroFormExportType.md), [`AcroFormImportType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AcroFormImportType.md), [`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md), [`CancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CancelProc.md), [`Collection`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Collection.md), [`ColorConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorConvertParams.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`EmbedFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/EmbedFlags.md), [`EncryptionType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/EncryptionType.md), [`FileAttachment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FileAttachment.md), [`FlattenTransparencyParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FlattenTransparencyParams.md), [`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md), [`NameTree`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NameTree.md), [`NumberTree`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NumberTree.md), [`OptionalContentConfig`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentConfig.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentGroup`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentGroup.md), [`PDDocFormsType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDDocFormsType.md), [`PDFAConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFAConvertParams.md), [`PDFAConvertResult`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFAConvertResult.md), [`PDFAConvertType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFAConvertType.md), [`PDFArray`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFArray.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md), [`PDFXConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFXConvertParams.md), [`PDFXConvertResult`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFXConvertResult.md), [`PDFXConvertType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFXConvertType.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`PageDeleteFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageDeleteFlags.md), [`PageInsertFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageInsertFlags.md), [`PageLabel`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageLabel.md), [`PageMode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageMode.md), [`PermissionFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PermissionFlags.md), [`PermissionRequestOperation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PermissionRequestOperation.md), [`PrintCancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintCancelProc.md), [`PrintProgressProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintProgressProc.md), [`PrintUserParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintUserParams.md), [`ProgressMonitor`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ProgressMonitor.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md), [`Redaction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Redaction.md), [`ReportProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ReportProc.md), [`ResourceType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ResourceType.md), [`RolledBackDocument`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RolledBackDocument.md), [`SaveFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SaveFlags.md), [`StructTreeRoot`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructTreeRoot.md), [`WatermarkParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WatermarkParams.md), [`WatermarkTextParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WatermarkTextParams.md), [`WebConvertInfo`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WebConvertInfo.md), [`WebToPDFConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WebToPDFConvertParams.md), [`XFAFormExportType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/XFAFormExportType.md), [`XPSConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/XPSConvertParams.md) ## Constructors ### Document ```csharp Datalogics.PDFL.Document.Document() ``` *constructor* Creates a new document. The only Cos object in the document will be a Catalog. After the document is created, at least one page must be added using CreatePage or InsertPages before the PDF Viewer can display or save the document. ### Document ```csharp Datalogics.PDFL.Document.Document(string fileName) ``` *constructor* **Parameters** - `fileName` (`string`): A path name to the file, specified in whatever format is correct for fileSys. Opens the specified document. If the call fails and the exception is pdErrNeedRebuild, then call again with doRepair set to true. This allows the application to decide whether to perform the time-consuming repair operation. **Exceptions** - `pdErrNeedPassword`: or other errors are raised if the file is encrypted and authProc is NULL or returns false. - `pdErrNotEnoughMemoryToOpenDoc`: or genErrNoMemory is raised if there is insufficient memory to open the document. - `pdErrNeedRebuild`: is raised if the document needs to be rebuilt and doRepair is false. - `pdErrBadOutlineObj`: is raised if the Outlines object appears to be invalid (if the value of the Outlines key in the Catalog is not a NULL or dictionary object). - `pdErrBadRootObj`: is raised if the Catalog object (as returned by CosDocGetRoot()) is not a dictionary. - `pdErrBadBaseObj`: is raised if the Pages tree appears to be invalid (if the value of the Pages key in the Catalog is not a NULL or dictionary object). - `pdErrTooManyPagesForOpen`: is raised if the document contains too many pages. - `cosSynErrNoHeader`: is raised if the document's header appears to be bad. - `cosSynErrNoStartXRef`: is raised if no end-of-file line can be located. - `cosErrRebuildFailed`: is raised if doRepair is true and rebuild failed. ### Document ```csharp Datalogics.PDFL.Document.Document(string fileName, string password, PermissionRequestOperation perms, bool doRepair) ``` *constructor* **Parameters** - `fileName` (`string`): A path name to the file. - `password` (`string`): The password to use to attempt to open the document. - `perms` ([`PermissionRequestOperation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PermissionRequestOperation.md)): The permissions being requested. It must be an OR of the PermissionRequestOperation values. - `doRepair` (`bool`): If true, attempt to repair the file if it is damaged. If false, do not attempt to repair the file if it is damaged. Opens the specified document. If the document is already open, it returns a reference to the already opened Document. You must call Close() once for every successful open. If the call fails and the exception is pdErrNeedRebuild, then call again with doRepair equal to true. This allows the application to decide whether to perform the time-consuming repair operation. **Exceptions** - `pdErrNeedPassword`: is raised if the file is encrypted and the password is incorrect. - `pdErrNotEnoughMemoryToOpenDoc`: or genErrNoMemory is raised if there is insufficient memory to open the document. - `pdErrNeedRebuild`: is raised if the document needs to be rebuilt and doRepair is false. - `pdErrBadOutlineObj`: is raised if the Outlines object appears to be invalid (if the value of the Outlines key in the Catalog is not a NULL or dictionary object). - `pdErrBadRootObj`: is raised if the Catalog object (as returned by CosDocGetRoot()) is not a dictionary. - `pdErrBadBaseObj`: is raised if the Pages tree appears to be invalid (if the value of the Pages key in the Catalog is not a NULL or dictionary object). - `pdErrTooManyPagesForOpen`: is raised if the document contains too many pages. - `cosSynErrNoHeader`: is raised if the document's header appears to be bad. - `cosSynErrNoStartXRef`: is raised if no end-of-file line can be located. - `cosErrRebuildFailed`: is raised if doRepair is true and rebuild failed. ### Document ```csharp Datalogics.PDFL.Document.Document(string XPSFilename, XPSConvertParams ConversionParams) ``` *constructor* **Parameters** - `XPSFilename` (`string`): The path to the XPS file to convert. - `ConversionParams` ([`XPSConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/XPSConvertParams.md)): Additional parameters for XPS conversion. Create a Document from an XPS file. Documents are converted one at a time. In multi-threaded applications, threads that are making simultaneous calls to this method will block and execute the method sequentially. NOTE: This method is only available on Windows or Linux. ### Document ```csharp Datalogics.PDFL.Document.Document(System.IO.Stream stream) ``` *constructor* **Parameters** - `stream` (`System.IO.Stream`): The Stream from which to read the Document. Open a Document from a Stream. This allows a document to be read from a Stream object. The Stream must be seekable. Suitable examples are FileStream and MemoryStream. Once passed to the Document constructor, ownership of the stream is passed to the Document. The Stream must remain open while the Document itself is open, as data will only be read as needed. **Exceptions** - `pdErrNeedPassword`: or other errors are raised if the file is encrypted and authProc is NULL or returns false. - `pdErrNotEnoughMemoryToOpenDoc`: or genErrNoMemory is raised if there is insufficient memory to open the document. - `pdErrNeedRebuild`: is raised if the document needs to be rebuilt and doRepair is false. - `pdErrBadOutlineObj`: is raised if the Outlines object appears to be invalid (if the value of the Outlines key in the Catalog is not a NULL or dictionary object). - `pdErrBadRootObj`: is raised if the Catalog object (as returned by CosDocGetRoot()) is not a dictionary. - `pdErrBadBaseObj`: is raised if the Pages tree appears to be invalid (if the value of the Pages key in the Catalog is not a NULL or dictionary object). - `pdErrTooManyPagesForOpen`: is raised if the document contains too many pages. - `cosSynErrNoHeader`: is raised if the document's header appears to be bad. - `cosSynErrNoStartXRef`: is raised if no end-of-file line can be located. ### Document ```csharp Datalogics.PDFL.Document.Document(System.IO.Stream stream, string password, PermissionRequestOperation perms, bool doRepair) ``` *constructor* **Parameters** - `stream` (`System.IO.Stream`): The Stream from which to read the Document. - `password` (`string`): The password to use to attempt to open the document. - `perms` ([`PermissionRequestOperation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PermissionRequestOperation.md)): The permissions being requested. It must be an OR of the PermissionRequestOperation values. - `doRepair` (`bool`): If true, attempt to repair the file if it is damaged. If false, do not attempt to repair the file if it is damaged. Open a Document from a Stream. This allows a document to be read from a Stream object. The Stream must be seekable. Suitable examples are FileStream and MemoryStream. Once passed to the Document constructor, ownership of the stream is passed to the Document. The Stream must remain open while the Document itself is open, as data will only be read as needed. **Exceptions** - `pdErrNeedPassword`: or other errors are raised if the file is encrypted and authProc is NULL or returns false. - `pdErrNotEnoughMemoryToOpenDoc`: or genErrNoMemory is raised if there is insufficient memory to open the document. - `pdErrNeedRebuild`: is raised if the document needs to be rebuilt and doRepair is false. - `pdErrBadOutlineObj`: is raised if the Outlines object appears to be invalid (if the value of the Outlines key in the Catalog is not a NULL or dictionary object). - `pdErrBadRootObj`: is raised if the Catalog object (as returned by CosDocGetRoot()) is not a dictionary. - `pdErrBadBaseObj`: is raised if the Pages tree appears to be invalid (if the value of the Pages key in the Catalog is not a NULL or dictionary object). - `pdErrTooManyPagesForOpen`: is raised if the document contains too many pages. - `cosSynErrNoHeader`: is raised if the document's header appears to be bad. - `cosSynErrNoStartXRef`: is raised if no end-of-file line can be located. ## Properties ### Attachments ```csharp System.Collections.Generic.IList Datalogics.PDFL.Document.Attachments { get; } ``` Gets all attached files from the PDF document. ### Author ```csharp string Datalogics.PDFL.Document.Author { get; set; } ``` The author of the PDF document. ### BaseURI ```csharp string Datalogics.PDFL.Document.BaseURI { get; set; } ``` The Base URI of the PDF document. ### BookmarkRoot ```csharp Bookmark Datalogics.PDFL.Document.BookmarkRoot { get; } ``` Gets the root of the document's bookmark tree. The return value is valid even if the document's bookmark tree is empty (meaning that there is no Outlines key in the underlying PDF file). ### Collection ```csharp Collection Datalogics.PDFL.Document.Collection { get; } ``` GetCollection allows to retrieve collection from the PDF document. ### CompressionLevel ```csharp int Datalogics.PDFL.Document.CompressionLevel { get; } ``` The compression level of the document. The compression level can be one of three values returned by this property: • 0 - No compression. All objects are available without inflation. • 1 - Partial compression. Objects related to logical structure are stored in object streams and must be inflated. • 2 - Full compression. All objects are compressed and must be inflated. ### Creator ```csharp string Datalogics.PDFL.Document.Creator { get; set; } ``` The creator of the PDF file. ### DefaultOptionalContentConfig ```csharp OptionalContentConfig Datalogics.PDFL.Document.DefaultOptionalContentConfig { get; } ``` Gets the default OptionalContentConfig for the document. The OptionalContentConfig determines default settings for optional content, such as the order in which layers (i.e. OptionalContentGroup) appear in the Layers control panel. These settings are used when the document is first opened. ### DeleteOnClose ```csharp bool Datalogics.PDFL.Document.DeleteOnClose { get; set; } ``` The document is based on a temporary file that must be deleted when the document is closed or saved. ### FileName ```csharp string Datalogics.PDFL.Document.FileName { get; } ``` Get the filename associated with this Document, if it has a representation on disk. ### FormsType ```csharp PDDocFormsType Datalogics.PDFL.Document.FormsType { get; } ``` Returns the document's Forms Type. This property is more versatile than the related IsDynamicXFA() andIsStaticXFA() methods. [https://www.datalogics.com/pdf-form-functions](https://www.datalogics.com/pdf-form-functions). ### HasSignature ```csharp bool Datalogics.PDFL.Document.HasSignature { get; } ``` The document contains a Digital Signature. ### InfoDict ```csharp PDFDict Datalogics.PDFL.Document.InfoDict { get; } ``` The Info dictionary of the document as a PDFObject. ### InstanceID ```csharp System.Byte [] Datalogics.PDFL.Document.InstanceID { get; } ``` Get the instance ID for this document. ### IsEmbedded ```csharp bool Datalogics.PDFL.Document.IsEmbedded { get; set; } ``` The document is embedded in a compound document (OLE, OpenDoc). ### IsLinearized ```csharp bool Datalogics.PDFL.Document.IsLinearized { get; } ``` The document is linearized (optimized) for page-served remote (network) access. This flag is get only. ### IsModified ```csharp bool Datalogics.PDFL.Document.IsModified { get; } ``` The document has been modified slightly (for example, bookmarks or text annotations have been opened or closed), but not in a way that warrants saving. This flag is get only. ### IsOptimized ```csharp bool Datalogics.PDFL.Document.IsOptimized { get; set; } ``` The document is optimized. If this flag is cleared, the Adobe PDF Library does not save the file optimized. You can, therefore, linearize a PDF file without optimizing it. Optimizing without linearizing is not allowed, however. This flag can only be set, never cleared. ### IsPxDF ```csharp bool Datalogics.PDFL.Document.IsPxDF { get; } ``` The underlying file is PxDF. This flag is get only. ### Keywords ```csharp string Datalogics.PDFL.Document.Keywords { get; set; } ``` The keywords of the PDF file. ### LoadedFonts ```csharp System.Collections.Generic.IList Datalogics.PDFL.Document.LoadedFonts { get; } ``` Enumerates all the fonts that have been encountered so far. A font is loaded when a page that uses it is processed. This typically happens when a page is drawn or its thumbnail image is created. ### MajorVersion ```csharp short Datalogics.PDFL.Document.MajorVersion { get; set; } ``` The major PDF version number of the document. The PDF version is specified in the header of a PDF file in the string "%PDF-xx. yy" where xx is the major version and yy is the minor version. ### MajorVersionIsNewerThanCurrentLibrary ```csharp bool Datalogics.PDFL.Document.MajorVersionIsNewerThanCurrentLibrary { get; } ``` The document's major version is newer than the current library version. This flag is get only. ### MergedXMPKeywords ```csharp string Datalogics.PDFL.Document.MergedXMPKeywords { get; } ``` A string containing a semicolon-separated list of merged XMP keyword fields. The first such field is the entire contents of the pdf:Keywords property of the document XMP; the remaining fields are the contents of successive items in the xmp:Keywords bag of keyword items. ### MinorVersion ```csharp short Datalogics.PDFL.Document.MinorVersion { get; set; } ``` The minor PDF version number of the document. The PDF version is specified in the header of a PDF file in the string "%PDF-xx. yy" where xx is the major version and yy is the minor version. Please note: Setting the minor version on a document only changes the version number in the document's file header. It willNOT actually change the PDF's contents and it willNOT alter the PDF to conform to the standard of the new minor version. The new minor version number will appear in the file header once the document is saved. ### MinorVersionIsNewerThanCurrentLibrary ```csharp bool Datalogics.PDFL.Document.MinorVersionIsNewerThanCurrentLibrary { get; } ``` The document's minor version is newer than the current library version. This flag is get only. ### NeedsSave ```csharp bool Datalogics.PDFL.Document.NeedsSave { get; set; } ``` The document has been modified and needs to be saved. ### NumPages ```csharp int Datalogics.PDFL.Document.NumPages { get; } ``` Gets the number of pages in a document. ### OptionalContentConfigs ```csharp System.Collections.Generic.IList Datalogics.PDFL.Document.OptionalContentConfigs { get; } ``` Gets all OptionalContentConfigs stored in this document. The first will be the default OptionalContentConfig (the same value returned by DefaultOptionalContentConfig); subsequent values will be additional Configs stored in the document. Any of these can be made the default by setting it via the DefaultOptionalContentConfig property. Any OptionalContentConfigs created via the OptionalContentConfig constructor will appear in this list. ### OptionalContentContext ```csharp OptionalContentContext Datalogics.PDFL.Document.OptionalContentContext { get; } ``` Gets the built-in default OptionalContentContext for the document. This context is used by all content drawing and enumeration calls that do not take an OptionalContentContext parameter, or for which no context is specified. ### OptionalContentGroups ```csharp System.Collections.Generic.IList Datalogics.PDFL.Document.OptionalContentGroups { get; } ``` Gets the optional-content groups for the document. The order of the groups is not guaranteed to be the creation order, and is not the same as the display order (see PDOCConfigGetOCGOrder()). ### PageLabels ```csharp System.Collections.Generic.IList Datalogics.PDFL.Document.PageLabels { get; set; } ``` The list of PageLabel objects used in the document. PageLabels are always stored in page index order; if two PageLabels start on the same page index, the last PageLabel appearing in the list will be used. **Exceptions** - `ApplicationException`: when a page label has an unknown numbering style ### PageMode ```csharp PageMode Datalogics.PDFL.Document.PageMode { get; set; } ``` The PageMode of the PDF document. ### PermanentID ```csharp System.Byte [] Datalogics.PDFL.Document.PermanentID { get; } ``` Get the permanent ID for this document. ### PermissionFlags ```csharp PermissionFlags Datalogics.PDFL.Document.PermissionFlags { get; } ``` Allows to obtain security flags for the document. ### Producer ```csharp string Datalogics.PDFL.Document.Producer { get; set; } ``` The producer of the PDF file. ### RequiresFullSave ```csharp bool Datalogics.PDFL.Document.RequiresFullSave { get; set; } ``` The document cannot be saved incrementally; when it is saved using Document.Save(), the SaveFlags.Full flag must be specified. This flag can only be set, never cleared. ### RolledBackDocuments ```csharp System.Collections.Generic.IList Datalogics.PDFL.Document.RolledBackDocuments { get; } ``` A Document that have been previously saved Incrementally means changes were written to the end of the file leaving its original contents intact. Thus an Incrementally saved file may contain multiple entire PDF documents that represent prior incarnations of the current document. This method retrieves any such previous documents found in sequential order from the beginning of the file. ### Root ```csharp PDFDict Datalogics.PDFL.Document.Root { get; } ``` The Catalog of the document as a PDFObject. ### StructTreeRoot ```csharp StructTreeRoot Datalogics.PDFL.Document.StructTreeRoot { get; } ``` Returns the StructTreeRoot if present, nullptr otherwise. ### StructureIDTree ```csharp NameTree Datalogics.PDFL.Document.StructureIDTree { get; } ``` Retrieves the IDTree from the StructureTreeRoot dictionary. ### StructureParentTree ```csharp NumberTree Datalogics.PDFL.Document.StructureParentTree { get; } ``` Retrieves the ParentTree from the StructureTreeRoot dictionary. ### Subject ```csharp string Datalogics.PDFL.Document.Subject { get; set; } ``` The subject of the PDF document. ### SuppressErrors ```csharp bool Datalogics.PDFL.Document.SuppressErrors { get; set; } ``` Do not display errors. ### Title ```csharp string Datalogics.PDFL.Document.Title { get; set; } ``` The title of the PDF document. ### VersionIsOlderThanCurrentLibrary ```csharp bool Datalogics.PDFL.Document.VersionIsOlderThanCurrentLibrary { get; } ``` The document's version is older than the current library version. This flag is get only. ### VersionString ```csharp string Datalogics.PDFL.Document.VersionString { get; } ``` The PDF version of the document, which is specified in the header of a PDF file in the string "%PDF-xx.yy" where xx is the major version and yy is the minor version. Note that this returns a string containing both the major and minor versions. For version comparisons, use MajorVersion and MinorVersion. ### WasRepaired ```csharp bool Datalogics.PDFL.Document.WasRepaired { get; } ``` The document was repaired when it was opened. This flag is get only. ### XMPMetadata ```csharp string Datalogics.PDFL.Document.XMPMetadata { get; set; } ``` The XMP metadata associated with a document. The XMP metadata returned always represents all the properties in the Document's Info dictionary, and can also contain properties not present in the Info dictionary. This call is preferred to GetInfo, which only returns properties that are in the Info dictionary (although the older function is supported for compatibility). ## Fields ### AllPages ```csharp static const int Datalogics.PDFL.Document.AllPages ``` *static* All pages. ### BeforeFirstPage ```csharp static const int Datalogics.PDFL.Document.BeforeFirstPage ``` *static* Before first page. ### LastPage ```csharp static const int Datalogics.PDFL.Document.LastPage ``` *static* Last page. ## Methods ### ApplyRedactions ```csharp bool Datalogics.PDFL.Document.ApplyRedactions() ``` **Returns:** `bool` Apply redactions to the document. ### ApplyRedactions ```csharp bool Datalogics.PDFL.Document.ApplyRedactions(Redaction redact) ``` **Parameters** - `redact` ([`Redaction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Redaction.md)): the redaction to apply, or NULL to apply all redactions in the document. **Returns:** `bool` Apply redactions to the document. ### CloneAsPDFADocument ```csharp PDFAConvertResult Datalogics.PDFL.Document.CloneAsPDFADocument(PDFAConvertType type, PDFAConvertParams parms) ``` **Parameters** - `type` ([`PDFAConvertType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFAConvertType.md)): The type of PDF/A conversion to perform - `parms` ([`PDFAConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFAConvertParams.md)): A PDFAConvertParams object specifying options for the conversion **Returns:** [`PDFAConvertResult`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFAConvertResult.md) A PDFAConvertResult object containing the Document and SaveFlags. Create a PDF/A compliant version of this Document. The returned Document will be compliant with the PDF/A standard. You can save it using any of the standard Save() methods. The PDFAConvertResult object contains both the Document and the SaveFlags you should use when saving the Document. You MUST use these exact flags to save the returned Document or it will no longer be PDF/A compliant. The returned Document will have its MajorVersion and MinorVersion set to values required for PDF/A compliance. These will not be visible until after you save the Document. If this Document could not be converted to PDF/A, the PDFADocument field in the PDFAConvertResult object will be null or a LibraryException will be thrown. A LibraryException message should be checked to see if setting a PDFAConvertParams property will allow conversion to succeed. For example, if the message is "Unembeddable font in annotation", then try setting the RemoveAllAnnotations property to true and then call CloneAsPDFADocument(). ### CloneAsPDFXDocument ```csharp PDFXConvertResult Datalogics.PDFL.Document.CloneAsPDFXDocument(PDFXConvertType type, PDFXConvertParams parms) ``` **Parameters** - `type` ([`PDFXConvertType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFXConvertType.md)): The type of PDF/X conversion to perform - `parms` ([`PDFXConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFXConvertParams.md)): A PDFXConvertParams object specifying options for the conversion **Returns:** [`PDFXConvertResult`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFXConvertResult.md) A PDFXConvertResult object containing the Document and SaveFlags. Create a PDF/X compliant version of this Document. The returned Document will be compliant with the PDF/X standard. You can save it using any of the standard Save() methods. The PDFXConvertResult object contains both the Document and the SaveFlags you should use when saving the Document. You MUST use these exact flags to save the returned Document or it will no longer be PDF/X compliant. The returned Document will have its MajorVersion and MinorVersion set to values required for PDF/X compliance. These will not be visible until after you save the Document. If this Document could not be converted to PDF/X, the PDFXDocument field in the PDFXConvertResult object will be null. ### Close ```csharp void Datalogics.PDFL.Document.Close() ``` **Returns:** `void` Closes a document and releases its resources. Changes are not saved. You must use Save to save any modifications before calling Close. **Exceptions** - `pdErrUnableToCloseDueToRefs`: is raised if there are any outstanding references to objects in the document, and the document will still be valid (its resources will not be released). - `genErrBadUnlock`: is raised if the document's open count is less than one. ### CollectNamesOfTree ```csharp void Datalogics.PDFL.Document.CollectNamesOfTree(PDFArray namesArray, System.Collections.Generic.IList< FileAttachment > attachments) ``` **Parameters** - `namesArray` ([`PDFArray`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFArray.md)) - `attachments` ([`System.Collections.Generic.IList< FileAttachment >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FileAttachment.md)) **Returns:** `void` ### ColorConvertPages ```csharp bool Datalogics.PDFL.Document.ColorConvertPages(ColorConvertParams params_) ``` **Parameters** - `params_` ([`ColorConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorConvertParams.md)) **Returns:** `bool` True if color conversion occurred. False if nothing was color converted. Convert the colors (in place) in a Document as specified by by the params block by applying an ICC profile to the objects contained in the Document. ### ConvertToExcel ```csharp static bool Datalogics.PDFL.Document.ConvertToExcel(string inputPDFFileFilePath, string outputOfficeFilePath) ``` *static* **Parameters** - `inputPDFFileFilePath` (`string`): The PDF file path to convert. - `outputOfficeFilePath` (`string`): The output Office file path. **Returns:** `bool` true if the conversion was successful, false if an error occurred. This function converts a PDF file to a Microsoft Excel Office file (.xlsx). NOTE: This method is only available on Windows 32/64-bit and Linux 64-bit. ### ConvertToPowerPoint ```csharp static bool Datalogics.PDFL.Document.ConvertToPowerPoint(string inputPDFFileFilePath, string outputOfficeFilePath) ``` *static* **Parameters** - `inputPDFFileFilePath` (`string`): The PDF file path to convert. - `outputOfficeFilePath` (`string`): The output Office file path. **Returns:** `bool` true if the conversion was successful, false if an error occurred. This function converts a PDF file to a Microsoft PowerPoint Office file (.pptx). NOTE: This method is only available on Windows 32/64-bit and Linux 64-bit. ### ConvertToWord ```csharp static bool Datalogics.PDFL.Document.ConvertToWord(string inputPDFFileFilePath, string outputOfficeFilePath) ``` *static* **Parameters** - `inputPDFFileFilePath` (`string`): The PDF file path to convert. - `outputOfficeFilePath` (`string`): The output Office file path. **Returns:** `bool` true if the conversion was successful, false if an error occurred. This function converts a PDF file to a Microsoft Word Office file (.docx). NOTE: This method is only available on Windows 32/64-bit and Linux 64-bit. ### ConvertXFAFieldsToAcroFormFields ```csharp uint Datalogics.PDFL.Document.ConvertXFAFieldsToAcroFormFields() ``` **Returns:** `uint` the number of output pages created in the converted document Convert a XFA document into a document with only AcroForms. XFA content is not widely supported by PDF processors, converting this content transforms XFA fields into AcroForm fields which are more widely suppored by PDF processors All XFA fields are removed. [https://www.datalogics.com/pdf-form-functions](https://www.datalogics.com/pdf-form-functions). ### CountXMPMetadataArrayItems ```csharp int Datalogics.PDFL.Document.CountXMPMetadataArrayItems(string namespaceName, string path) ``` **Parameters** - `namespaceName` (`string`): The XML namespace URI for the schema in which the property is to be found. - `path` (`string`): The name of the simple property . **Returns:** `int` number of array items in the property array. Returns the number of array items in a property array associated with a Document. ### CreateCollection ```csharp void Datalogics.PDFL.Document.CreateCollection() ``` **Returns:** `void` CreateCollection allows to create new collection in the PDF document. It replaces any existing collection. ### CreateNameTree ```csharp NameTree Datalogics.PDFL.Document.CreateNameTree(string nameTreeName) ``` **Parameters** - `nameTreeName` (`string`): The name of the NameTree to create. **Returns:** [`NameTree`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NameTree.md) The retrieved or newly created NameTree. Retrieves the name tree inside the Names dictionary with the specified key name, or creates it if it does not exist. ### CreatePage ```csharp Page Datalogics.PDFL.Document.CreatePage(int afterPageNum, Rect mediaBox) ``` **Parameters** - `afterPageNum` (`int`): The page number after which the new page is inserted. The first page is 0. Use Document.BeforeFirstPage to insert the new page at the beginning of a document. - `mediaBox` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the page's media box, specified in user space coordinates. **Returns:** [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md) The newly created page. Creates and acquires a new Page. The page is inserted into the document at the specified location. ### CreateStructTreeRoot ```csharp StructTreeRoot Datalogics.PDFL.Document.CreateStructTreeRoot() ``` **Returns:** [`StructTreeRoot`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructTreeRoot.md) Creates a StructTreeRoot in the catalog; throws std.logic_error if one already exists. Also sets /MarkInfo {/Marked true} in the catalog. ### DeletePages ```csharp void Datalogics.PDFL.Document.DeletePages(int firstPage, int lastPage) ``` **Parameters** - `firstPage` (`int`): The page number of the first page to delete. The first page is 0. - `lastPage` (`int`): The page number of the last page to delete. **Returns:** `void` Deletes the specified pages. ### DeletePages ```csharp void Datalogics.PDFL.Document.DeletePages(int firstPage, int lastPage, PageDeleteFlags deleteFlags) ``` **Parameters** - `firstPage` (`int`): The page number of the first page to delete. The first page is 0. - `lastPage` (`int`): The page number of the last page to delete. - `deleteFlags` ([`PageDeleteFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageDeleteFlags.md)): One of the DeleteFlags. **Returns:** `void` Deletes the specified pages with option to parse Structure Tree. ### Dispose ```csharp void Datalogics.PDFL.Document.Dispose() ``` **Returns:** `void` ### EmbedFonts ```csharp void Datalogics.PDFL.Document.EmbedFonts() ``` **Returns:** `void` Embed unembedded fonts in a document. To keep the changes the document must be saved. Fonts on the user's system that match the original font definition will be embedded. For the Times-Roman and Helvetica and corresponding styles, if displayed with a font alias, then the font alias will be embedded in the file. If the font has information that indicates the font cannot be embedded for print and preview, then the font will not be embedded in the document. With no flags, fonts marked as embedded or subsettable will be embedded. By default, the font embedding process scans the entire document for font usage information when subsetting fonts. For documents with large numbers of fonts or pages, this can take a long time. In cases where new Font objects are created and used to set text, it's not necessary to scan the entire document; instead, use the version of this call that takes a list of Font objects and a set of flags for embedding. Passing the list of new Fonts and the DontScanDocument flag will directly embed the fonts in the list without scanning the document. ### EmbedFonts ```csharp void Datalogics.PDFL.Document.EmbedFonts(EmbedFlags flags) ``` **Parameters** - `flags` ([`EmbedFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/EmbedFlags.md)): One of the EmbedFlags **Returns:** `void` Embed unembedded fonts in a document. To keep the changes the document must be saved. Fonts on the user's system that match the original font definition will be embedded. For the Times-Roman and Helvetica and corresponding styles, if displayed with a font alias, then the font alias will be embedded in the file. If the font has information that indicates the font cannot be embedded for print and preview, then the font will not be embedded in the document. By default, the font embedding process scans the entire document for font usage information when subsetting fonts. For documents with large numbers of fonts or pages, this can take a long time. In cases where new Font objects are created and used to set text, it's not necessary to scan the entire document; instead, use the version of this call that takes a list of Font objects and a set of flags for embedding. Passing the list of new Fonts and the DontScanDocument flag will directly embed the fonts in the list without scanning the document. ### EmbedFonts ```csharp void Datalogics.PDFL.Document.EmbedFonts(EmbedFlags flags, ProgressMonitor progressMonitor, CancelProc cancelProc, ReportProc reportProc) ``` **Parameters** - `flags` ([`EmbedFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/EmbedFlags.md)): One of the EmbedFlags - `progressMonitor` ([`ProgressMonitor`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ProgressMonitor.md)): a ProgressMonitor that will receive progress information, may be null - `cancelProc` ([`CancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CancelProc.md)): a CancelProc, which can return true to cancel the operation, may be null - `reportProc` ([`ReportProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ReportProc.md)): a ReportProc, which will be called with warnings about fonts that do not embed, may be null **Returns:** `void` Embed unembedded fonts in a document. To keep the changes the document must be saved. Fonts on the user's system that match the original font definition will be embedded. For the Times-Roman and Helvetica and corresponding styles, if displayed with a font alias, then the font alias will be embedded in the file. If the font has information that indicates the font cannot be embedded for print and preview, then the font will not be embedded in the document. By default, the font embedding process scans the entire document for font usage information when subsetting fonts. For documents with large numbers of fonts or pages, this can take a long time. In cases where new Font objects are created and used to set text, it's not necessary to scan the entire document; instead, use the version of this call that takes a list of Font objects and a set of flags for embedding. Passing the list of new Fonts and the DontScanDocument flag will directly embed the fonts in the list without scanning the document. ### EmbedFonts ```csharp void Datalogics.PDFL.Document.EmbedFonts(System.Collections.Generic.IList< Font > fonts) ``` **Parameters** - `fonts` ([`System.Collections.Generic.IList< Font >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): the fonts to embed in the document. **Returns:** `void` Embed specified fonts in a document. To keep the changes the document must be saved. Fonts on the user's system that match the original font definition will be embedded. For the Times-Roman and Helvetica and corresponding styles, if displayed with a font alias, then the font alias will be embedded in the file. If the font has information that indicates the font cannot be embedded for print and preview, then the font will not be embedded in the document. The fonts passed to this function must be fonts actually used in the current document. These fonts may be obtained by using the GetFonts or GetLoadedFonts functions, or obtained from a TextRun. Fonts created by name will not work in this context. By default, the font embedding process scans the entire document for font usage information when subsetting fonts. For documents with large numbers of fonts or pages, this can take a long time. In cases where new Font objects are created and used to set text, it's not necessary to scan the entire document; instead, use the version of this call that takes a list of Font objects and a set of flags for embedding. Passing the list of new Fonts and the DontScanDocument flag will directly embed the fonts in the list without scanning the document. ### EmbedFonts ```csharp void Datalogics.PDFL.Document.EmbedFonts(System.Collections.Generic.IList< Font > fonts, EmbedFlags flags) ``` **Parameters** - `fonts` ([`System.Collections.Generic.IList< Font >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): The list of fonts to embed. See restrictions above. - `flags` ([`EmbedFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/EmbedFlags.md)): One of the EmbedFlags **Returns:** `void` Embed specified fonts in a document. To keep the changes the document must be saved. Fonts on the user's system that match the original font definition will be embedded. For the Times-Roman and Helvetica and corresponding styles, if displayed with a font alias, then the font alias will be embedded in the file. If the font has information that indicates the font cannot be embedded for print and preview, then the font will not be embedded in the document. The fonts passed to this function must be fonts actually used in the current document. These fonts may be obtained by using the GetFonts or GetLoadedFonts functions, or obtained from a TextRun. Fonts created by name will not work in this context. By default, the font embedding process scans the entire document for font usage information when subsetting fonts. For documents with large numbers of fonts or pages, this can take a long time. In cases where new Font objects are created and used to set text, it's not necessary to scan the entire document; instead, pass the list of new Fonts and the DontScanDocument flag. This will directly embed the fonts in the list without scanning the document. ### EmbedFonts ```csharp void Datalogics.PDFL.Document.EmbedFonts(System.Collections.Generic.IList< Font > fonts, EmbedFlags flags, ProgressMonitor progressMonitor, CancelProc cancelProc, ReportProc reportProc) ``` **Parameters** - `fonts` ([`System.Collections.Generic.IList< Font >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): The list of fonts to embed. See restrictions above. - `flags` ([`EmbedFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/EmbedFlags.md)): One of the EmbedFlags - `progressMonitor` ([`ProgressMonitor`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ProgressMonitor.md)): a ProgressMonitor that will receive progress information, may be null - `cancelProc` ([`CancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CancelProc.md)): a CancelProc, which can return true to cancel the operation, may be null - `reportProc` ([`ReportProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ReportProc.md)): a ReportProc, which will be called with warnings about fonts that do not embed, may be null **Returns:** `void` Embed specified fonts in a document. To keep the changes the document must be saved. Fonts on the user's system that match the original font definition will be embedded. For the Times-Roman and Helvetica and corresponding styles, if displayed with a font alias, then the font alias will be embedded in the file. If the font has information that indicates the font cannot be embedded for print and preview, then the font will not be embedded in the document. The fonts passed to this function must be fonts actually used in the current document. These fonts may be obtained by using the GetFonts or GetLoadedFonts functions, or obtained from a TextRun. Fonts created by name will not work in this context. By default, the font embedding process scans the entire document for font usage information when subsetting fonts. For documents with large numbers of fonts or pages, this can take a long time. In cases where new Font objects are created and used to set text, it's not necessary to scan the entire document; instead, pass the list of new Fonts and the DontScanDocument flag. This will directly embed the fonts in the list without scanning the document. ### EmbedOCRFonts ```csharp void Datalogics.PDFL.Document.EmbedOCRFonts() ``` **Returns:** `void` Embed fonts that were used in creating OCR text. This is also done automatically when saving. ### EnumIndirectPDFObjects ```csharp bool Datalogics.PDFL.Document.EnumIndirectPDFObjects(PDFObjectEnumProc enumProc) ``` **Parameters** - `enumProc` ([`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md)): A user-supplied callback to call for each indirect object in dP. Enumeration ends when enumProc returns false or all indirect objects have been enumerated. The value parameter returned in enumProc is always null. **Returns:** `bool` true if all of the calls to enumProc returned true. It returns false as soon as a call to enumProc returns false. Enumerates all the indirect objects of this document. The objects are enumerated in no particular order. Successive enumerations of the same Document are not guaranteed to enumerate objects in the same order. This method does not enumerate invalid objects, which include objects that are defined as null, objects that are not defined at all (those having no cross-reference entry), and objects that are on the free list. This re-raises any exception that proc raises. ### EnumResources ```csharp void Datalogics.PDFL.Document.EnumResources(int startPage, int endPage, ResourceType resourceType, PDFObjectEnumProc enumProc) ``` **Parameters** - `startPage` (`int`): The first page in the range of pages. - `endPage` (`int`): The last page in the range of pages. - `resourceType` ([`ResourceType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ResourceType.md)): Resource type to enumerate. - `enumProc` ([`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md)): A user-supplied callback to call once for each resource of the specified type. NOTE: The resource is the first parameter of the callback, the second is unused. **Returns:** `void` Enumerates the specified type of Page Resource, for a specified range of Pages. This method enumerates resources in each page's Resources dictionary (ColorSpace, Font, ExtGState, etc.). ### ExportAcroFormsData ```csharp bool Datalogics.PDFL.Document.ExportAcroFormsData(string fileName, AcroFormExportType exportType) ``` **Parameters** - `fileName` (`string`): The path on disk of the file the AcroForms data is exported to. - `exportType` ([`AcroFormExportType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AcroFormExportType.md)): The format type the AcroForm data should be exported to. The supported types are XFDF, FDF, and XML. **Returns:** `bool` true indicates exporting succeeded and false indicates an error occurred Export the AcroForms data. AcroForms data is exported into a format that can later be imported into another AcroForms document. [https://www.datalogics.com/pdf-form-functions](https://www.datalogics.com/pdf-form-functions). ### ExportAsPostScript ```csharp void Datalogics.PDFL.Document.ExportAsPostScript(PrintUserParams userParams, PrintCancelProc printCancelProc, PrintProgressProc printProgressProc, string path) ``` **Parameters** - `userParams` ([`PrintUserParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintUserParams.md)): Parameters to control printing. - `printCancelProc` ([`PrintCancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintCancelProc.md)): A PrintCancelProc, which can return true to cancel printing, may be null. - `printProgressProc` ([`PrintProgressProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintProgressProc.md)): A PrintProgressProc, may be null. - `path` (`string`): The output file to be created. **Returns:** `void` Exports a PDF document or pages from a PDF document as PostScript allowing the caller to specify options such as page size, rotation, and shrink-to-fit. The output is placed in the specified file. **Exceptions** - `cosErrWriteError` - `pdErrOpNotPermitted` - `genErrBadParm` ### ExportAsPostScript ```csharp void Datalogics.PDFL.Document.ExportAsPostScript(PrintUserParams userParams, PrintCancelProc printCancelProc, string path) ``` **Parameters** - `userParams` ([`PrintUserParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintUserParams.md)): Parameters to control printing. - `printCancelProc` ([`PrintCancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintCancelProc.md)): A PrintCancelProc, which can return true to cancel printing, may be null. - `path` (`string`): The output file to be created. **Returns:** `void` Exports a PDF document or pages from a PDF document as PostScript allowing the caller to specify options such as page size, rotation, and shrink-to-fit. The output is placed in the specified file. **Exceptions** - `cosErrWriteError` - `pdErrOpNotPermitted` - `genErrBadParm` ### ExportAsPostScript ```csharp void Datalogics.PDFL.Document.ExportAsPostScript(PrintUserParams userParams, string path) ``` **Parameters** - `userParams` ([`PrintUserParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintUserParams.md)): Parameters to control printing. - `path` (`string`): The output file to be created. **Returns:** `void` Exports a PDF document or pages from a PDF document as PostScript allowing the caller to specify options such as page size, rotation, and shrink-to-fit. The output is placed in the specified file. **Exceptions** - `cosErrWriteError` - `pdErrOpNotPermitted` - `genErrBadParm` ### ExportXFAFormsData ```csharp bool Datalogics.PDFL.Document.ExportXFAFormsData(string fileName, XFAFormExportType exportType) ``` **Parameters** - `fileName` (`string`): The path on disk of the file the XFA form data is exported to. - `exportType` ([`XFAFormExportType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/XFAFormExportType.md)): The format type the XFA data should be exported to. The supported types are XDP, XML, and XFD. **Returns:** `bool` true indicates exporting succeeded and false indicates an error occurred Export the XFA Forms data. XFA forms data is exported into a format that can later be imported into another XFA document. [https://www.datalogics.com/pdf-form-functions](https://www.datalogics.com/pdf-form-functions). ### FindBookmark ```csharp Bookmark Datalogics.PDFL.Document.FindBookmark(string title) ``` **Parameters** - `title` (`string`): The title of the bookmark for which to search. **Returns:** [`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md) The bookmark within the document's bookmark tree that has the supplied title. Returns NULL if there is no bookmark with the supplied title. Find bookmark by its title, searching within the document's entire bookmark tree. ### FindBookmark ```csharp Bookmark Datalogics.PDFL.Document.FindBookmark(string title, int maxDepth) ``` **Parameters** - `title` (`string`): The title of the bookmark for which to search. - `maxDepth` (`int`): If supplied (with a value greater than or equal to 0), declares the number of levels below this bookmark to search. (If omitted, the entire subtree is searched.) **Returns:** [`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md) The bookmark within the document's bookmark tree that has the supplied title. Returns NULL if there is no bookmark with the supplied title. Find bookmark by its title, searching within the document's bookmark tree to a depth determined by maxDepth (e.g., 0 = root bookmark only and not any of its children, 1 = search one level below root bookmark level, etc. Omit to search entire bookmark tree.) ### FindLabelForPageNum ```csharp string Datalogics.PDFL.Document.FindLabelForPageNum(int pageIndex) ``` **Parameters** - `pageIndex` (`int`): Index of a page in the Document **Returns:** `string` The label string for the page Fetch the label string for a page index, using the current page labels. ### FindPDFObjectByID ```csharp PDFObject Datalogics.PDFL.Document.FindPDFObjectByID(int ID) ``` **Parameters** - `ID` (`int`): The object ID number to look up. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) The PDFObject with the specified ID, or null if no such object exists. Retrieves an indirect PDFObject by its ID number. Note that direct PDFObjects cannot be retrieved by ID. ### FindPageNumForLabel ```csharp int Datalogics.PDFL.Document.FindPageNumForLabel(string label) ``` **Parameters** - `label` (`string`): The label string to look up **Returns:** `int` The index of the corresponding page, or -1 if the label could not be matched Look up a page index based on a label string. ### FlattenAcroFormFields ```csharp void Datalogics.PDFL.Document.FlattenAcroFormFields() ``` **Returns:** `void` Flatten a AcroForms document. Interactive AcroForm fields are flattened into static PDF page content. All AcroForm fields are removed. NOTE: This method is part of the APDFL Forms Extension that is available separately from APDFL. For more information, please see [https://www.datalogics.com/pdf-form-functions](https://www.datalogics.com/pdf-form-functions). ### FlattenNonFormAnnotations ```csharp void Datalogics.PDFL.Document.FlattenNonFormAnnotations() ``` **Returns:** `void` Flatten a Non-Form (no AcroForm, no XFA) document's Annotations. Annotations are flattened into static PDF page content. NOTE: This method is part of the APDFL Forms Extension that is available separately from APDFL. For more information, please see [https://www.datalogics.com/pdf-form-functions](https://www.datalogics.com/pdf-form-functions). ### FlattenOptionalContent ```csharp bool Datalogics.PDFL.Document.FlattenOptionalContent() ``` **Returns:** `bool` true if the document was successfully flattened, false otherwise. Flattens optional content in the document. Every page in the document will be replaced with a version that has no optional content. The new version of the page will contain only what was visible on the page when the call was made. All other optional content information will be removed from the document. The document's default optional content context will be used to determine visibility of optional content. ### FlattenOptionalContent ```csharp bool Datalogics.PDFL.Document.FlattenOptionalContent(OptionalContentContext occ) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which content is checked for visibility. **Returns:** `bool` true if the document was successfully flattened, false otherwise. Flattens optional content in the document. Every page in the document will be replaced with a version that has no optional content. The new version of the page will contain only what was visible on the page when the call was made. All other optional content information will be removed from the document. ### FlattenTransparency ```csharp int Datalogics.PDFL.Document.FlattenTransparency() ``` **Returns:** `int` The number of pages that were flattened. Flattens all transparencies in the document. To flatten specific pages, see Document.FlattenTransparency(params, firstPage, lastPage) Documents are flattened one at a time. In multi-threaded applications, threads that are making simultaneous calls to this method will block and execute the method sequentially. ### FlattenTransparency ```csharp int Datalogics.PDFL.Document.FlattenTransparency(FlattenTransparencyParams params_) ``` **Parameters** - `params_` ([`FlattenTransparencyParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FlattenTransparencyParams.md)) **Returns:** `int` The number of pages that were flattened. Flattens all transparencies in the document. To flatten specific pages, see Document.FlattenTransparency(params, firstPage, lastPage) Documents are flattened one at a time. In multi-threaded applications, threads that are making simultaneous calls to this method will block and execute the method sequentially. ### FlattenTransparency ```csharp int Datalogics.PDFL.Document.FlattenTransparency(FlattenTransparencyParams params_, int firstPage, int lastPage) ``` **Parameters** - `params_` ([`FlattenTransparencyParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FlattenTransparencyParams.md)) - `firstPage` (`int`): The first page of the range of pages to flatten. - `lastPage` (`int`): The last page of the range of pages to flatten. **Returns:** `int` The number of pages that were flattened. Flattens transparencies in the document that occur on pages within the specified range. When performing flattening on multiple pages, this method is more efficient than making multiple Page.FlattenTransparency() calls. Documents are flattened one at a time. In multi-threaded applications, threads that are making simultaneous calls to this method will block and execute the method sequentially. ### FlattenXFAFormFields ```csharp uint Datalogics.PDFL.Document.FlattenXFAFormFields() ``` **Returns:** `uint` the number of output pages created in the flattened document. Flatten a XFA Document (Static or Dynamic). XFA content is not widely supported by PDF processors, flattening this content transforms into static PDF page content that is part of typical PDF files that can easily be understood by PDF processors. All XFA fields are removed. [https://www.datalogics.com/pdf-form-functions](https://www.datalogics.com/pdf-form-functions). ### FlattenXFAFormFieldsAsIfPrinted ```csharp uint Datalogics.PDFL.Document.FlattenXFAFormFieldsAsIfPrinted() ``` **Returns:** `uint` the number of output pages created in the flattened document. Flatten a XFA Document (Static or Dynamic) as if it was Printed. XFA content is not widely supported by PDF processors, flattening this content transforms into static PDF page content that is part of typical PDF files that can easily be understood by PDF processors. All XFA fields are removed. The Flattened appearance will take into consideration how the document should appear when printed. [https://www.datalogics.com/pdf-form-functions](https://www.datalogics.com/pdf-form-functions). ### FromHtmlFile ```csharp static Document Datalogics.PDFL.Document.FromHtmlFile(string path, WebToPDFConvertParams params_, WebConvertInfo info_out) ``` *static* **Parameters** - `path` (`string`) - `params_` ([`WebToPDFConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WebToPDFConvertParams.md)) - `info_out` ([`WebConvertInfo`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WebConvertInfo.md)) **Returns:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) Render a local HTML file. Forwards to FromWebUrl with a "file://" scheme prepended to `path`. Same platform-unsupported behavior and same return-shape semantics as FromWebUrl. ### FromWebUrl ```csharp static Document Datalogics.PDFL.Document.FromWebUrl(string url, WebToPDFConvertParams params_, WebConvertInfo info_out) ``` *static* **Parameters** - `url` (`string`) - `params_` ([`WebToPDFConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WebToPDFConvertParams.md)) - `info_out` ([`WebConvertInfo`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WebConvertInfo.md)) **Returns:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) Render a URL (http/https or [file://](file://)) into a Document. CallsCWebToPDFLifecycle.EnsureReady() first; rethrowsCWebConvertError on any plugin failure. info_out is populated on success. Returns a heap-allocated CDocument (same pattern as the PDF/A and PDF/X clone paths) so the Document.Impl adopting ctor can take ownership without invokingCDocument's copy ctor, which is known to error in post-terminate teardown states. The caller owns the returned pointer. The returned CDocument carries the backing temp PDF's lifetime: it is removed in CDocumentImpl.Dispose() right after the file handle closes necessary on Windows where APDFL's open handle holds an exclusive lock and preventsremove() from succeeding before the document is destroyed. On platforms where the WebToPDF plugin is not supported this throws `CWebConvertError(Category.PluginUnavailable, ...)` immediately (translated toWebConvertError(Category.PluginUnavailable) by the api layer). ### GetFonts ```csharp System.Collections.Generic.IList< Font > Datalogics.PDFL.Document.GetFonts(int firstPage, int lastPage) ``` **Parameters** - `firstPage` (`int`): The page number of the first page for which fonts are enumerated. The first page is 0. - `lastPage` (`int`): The page number of the last page for which fonts are enumerated. **Returns:** [`System.Collections.Generic.IList< Font >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md) A list of Font objects found in the specified page range. Get all the fonts in the specified page range. This may take a considerable amount of time for a large page range. ### GetInfo ```csharp string Datalogics.PDFL.Document.GetInfo(string infoname) ``` **Parameters** - `infoname` (`string`): The name of metadata which value will be obtained. **Returns:** `string` The value of the metadata obtained from the PDF file. Gets the value of metadata information in a PDF file. ### GetNameTree ```csharp NameTree Datalogics.PDFL.Document.GetNameTree(string nameTreeName) ``` **Parameters** - `nameTreeName` (`string`): The name of the NameTree to get. **Returns:** [`NameTree`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NameTree.md) The retrieved NameTree. Retrieves the name tree inside the Names dictionary with the specified key name. ### GetPage ```csharp Page Datalogics.PDFL.Document.GetPage(int pageNumber) ``` **Parameters** - `pageNumber` (`int`): The page number of the page to acquire. The first page is 0. **Returns:** [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md) The requested Page object. Gets a Page from a document. **Exceptions** - `genErrBadParm` ### GetXMPMetadataArrayItem ```csharp string Datalogics.PDFL.Document.GetXMPMetadataArrayItem(string namespaceName, string path, int index) ``` **Parameters** - `namespaceName` (`string`): The XML namespace URI for the schema in which the property is to be found. - `path` (`string`): The name of the desired simple property. - `index` (`int`): The index in the metadata property array associated with the property. **Returns:** `string` a string containing the XML text of the value of the specified property in the XMP metadata associated with the Document, or an empty string if no such property is found. Gets the value of an XMP metadata array item, associated with a document, based on an index. ### GetXMPMetadataProperty ```csharp string Datalogics.PDFL.Document.GetXMPMetadataProperty(string namespaceName, string path) ``` **Parameters** - `namespaceName` (`string`): The XML namespace URI for the schema in which the property is to be found. - `path` (`string`): The name of the desired simple property. Note that XMP properties can have an XML substructure; this method can only retrieve values from simple textual properties. **Returns:** `string` A string containing the XML text of the value of the specified property, or an empty string if no such property is found. Gets the value of an XMP metadata property associated with a document. It returns the XML text of the value of the specified property in the XMP metadata associated with the Document. The XMP metadata can represent all properties in the Document object's Info dictionary, as well as other properties. ### ImportAcroFormsData ```csharp bool Datalogics.PDFL.Document.ImportAcroFormsData(string fileName, AcroFormImportType importType) ``` **Parameters** - `fileName` (`string`): The path on disk of the AcroFormsdata file to be imported. - `importType` ([`AcroFormImportType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AcroFormImportType.md)): The format type the data type should be imported to. The supported types are XFDF, FDF, and XML. **Returns:** `bool` true indicates importing succeeded and false indicates an error occurred Import the AcroForms data. AcroForms data is imported from a supported format into the AcroForms document so its existing fields can be populated for example. [https://www.datalogics.com/pdf-form-functions](https://www.datalogics.com/pdf-form-functions). ### ImportXFAFormsData ```csharp bool Datalogics.PDFL.Document.ImportXFAFormsData(string fileName) ``` **Parameters** - `fileName` (`string`): The path on disk of the XFA form data file to be imported, the supported types of data that can be imported are XDP, XML, and XFD. **Returns:** `bool` true indicates importing succeeded and false indicates an error occurred Import the XFA Forms data. XFA forms data is imported from a supported format into the XFA document so its existing fields can be populated for example. [https://www.datalogics.com/pdf-form-functions](https://www.datalogics.com/pdf-form-functions). ### InsertPages ```csharp void Datalogics.PDFL.Document.InsertPages(int mergeAfterThisPage, Document doc2, int startPage, int numPages, PageInsertFlags insertFlags) ``` **Parameters** - `mergeAfterThisPage` (`int`): The page number in doc after which pages from doc2 are inserted. The first page is 0. If Document.BeforeFirstPage is used, the pages are inserted before the first page in doc. Use Document.LastPage to insert pages after the last page in doc. - `doc2` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document containing the pages that are inserted into doc. - `startPage` (`int`): The page number of the first page in doc2 to insert into doc. The first page is 0. - `numPages` (`int`): The number of pages in doc2 to insert into doc. Use Document.AllPages to insert all pages from doc2 into doc. - `insertFlags` ([`PageInsertFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageInsertFlags.md)): Flags that determine what additional information is copied from doc2 into doc. It is an OR of the following constants: PageInsertFlags.Bookmarks, PageInsertFlags.Threads, PageInsertFlags.All **Returns:** `void` Inserts numPages pages from doc2 into doc. All annotations, and anything else associated with the page (such as a thumbnail image) are copied from the doc2 pages to the new pages in doc. This method does not insert pages if doc equals doc2. The insertFlags parameter controls whether bookmarks and threads are inserted along with the specified pages. Setting this parameter to PageInsertFlags.All has two effects: • The parameters indicating which pages to insert are ignored: all the pages of doc2 are inserted. • In addition to inserting the pages themselves, it also merges other document data from doc2 into doc: • Named destinations from doc2 (of PDF 1.1 and later) are copied into doc. If there are named destinations in doc2 with the same name as some named destination in doc, the ones in doc retain their names and the copied named destinations are given new names based on the old ones, with distinguishing digits added. Actions and bookmarks referring to the old names are made to refer to the new names after being copied into doc. • If it is also the case that mergeAfterThisPage denotes the last page of the document, then document metadata is merged, and the optional content properties are merged in a more symmetrical manner than would otherwise be the case. Document logical structure from doc2 is copied into doc. If less than the whole of doc2 is being inserted, only those structure elements having content on the copied pages, and the ancestors of those elements, are copied into the logical structure tree of doc. The top-level children of the structure tree root of doc2 are copied as new top-level children of the structure tree root of doc; a structure tree root is created in doc if there was none before. The role maps of the two structure trees are merged, with name conflicts resolved in favor of the role mappings present in doc. Attribute objects having scalar values, or values that are arrays of scalar values, are copied. Class map information from doc2 is also merged into that for doc. **Exceptions** - `pdErrOpNotPermitted`: is raised unless doc is editable and doc2 is not encrypted or the owner opened it. - `pdErrCantUseNewVersion`: is raised if doc2 is a newer major version than PDFL understands. - `pdErrTooManyPagesForInsert`: is raised if the insertion would result in a document with too many pages. - `genErrBadParm`: is raised if mergeAfterThisPage is an invalid page number or doc has no pages. - `genErrNoMemory`: is raised if there is insufficient memory to perform the insertion. - `pdErrWhileRecoverInsertPages`: is raised if an error occurs while trying to recover from an error during inserting. ### InsertPages ```csharp void Datalogics.PDFL.Document.InsertPages(int mergeAfterThisPage, Document doc2, int startPage, int numPages, PageInsertFlags insertFlags, ProgressMonitor progressMonitor, CancelProc cancelProc) ``` **Parameters** - `mergeAfterThisPage` (`int`): The page number in doc after which pages from doc2 are inserted. The first page is 0. If Document.BeforeFirstPage is used, the pages are inserted before the first page in doc. Use Document.LastPage to insert pages after the last page in doc. - `doc2` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document containing the pages that are inserted into doc. - `startPage` (`int`): The page number of the first page in doc2 to insert into doc. The first page is 0. - `numPages` (`int`): The number of pages in doc2 to insert into doc. Use Document.AllPages to insert all pages from doc2 into doc. - `insertFlags` ([`PageInsertFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageInsertFlags.md)): Flags that determine what additional information is copied from doc2 into doc. It is an OR of the following constants: PageInsertFlags.Bookmarks, PageInsertFlags.Threads, PageInsertFlags.All - `progressMonitor` ([`ProgressMonitor`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ProgressMonitor.md)): a ProgressMonitor that will receive progress information, may be null - `cancelProc` ([`CancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CancelProc.md)): a CancelProc, which can return true to cancel the operation, may be null **Returns:** `void` Inserts numPages pages from doc2 into doc. All annotations, and anything else associated with the page (such as a thumbnail image) are copied from the doc2 pages to the new pages in doc. This method does not insert pages if doc equals doc2. The insertFlags parameter controls whether bookmarks and threads are inserted along with the specified pages. Setting this parameter to PageInsertFlags.All has two effects: • The parameters indicating which pages to insert are ignored: all the pages of doc2 are inserted. • In addition to inserting the pages themselves, it also merges other document data from doc2 into doc: • Named destinations from doc2 (of PDF 1.1 and later) are copied into doc. If there are named destinations in doc2 with the same name as some named destination in doc, the ones in doc retain their names and the copied named destinations are given new names based on the old ones, with distinguishing digits added. Actions and bookmarks referring to the old names are made to refer to the new names after being copied into doc. • If it is also the case that mergeAfterThisPage denotes the last page of the document, then document metadata is merged, and the optional content properties are merged in a more symmetrical manner than would otherwise be the case. Document logical structure from doc2 is copied into doc. If less than the whole of doc2 is being inserted, only those structure elements having content on the copied pages, and the ancestors of those elements, are copied into the logical structure tree of doc. The top-level children of the structure tree root of doc2 are copied as new top-level children of the structure tree root of doc; a structure tree root is created in doc if there was none before. The role maps of the two structure trees are merged, with name conflicts resolved in favor of the role mappings present in doc. Attribute objects having scalar values, or values that are arrays of scalar values, are copied. Class map information from doc2 is also merged into that for doc. **Exceptions** - `pdErrOpNotPermitted`: is raised unless doc is editable and doc2 is not encrypted or the owner opened it. - `pdErrCantUseNewVersion`: is raised if doc2 is a newer major version than PDFL understands. - `pdErrTooManyPagesForInsert`: is raised if the insertion would result in a document with too many pages. - `genErrBadParm`: is raised if mergeAfterThisPage is an invalid page number or doc has no pages. - `genErrNoMemory`: is raised if there is insufficient memory to perform the insertion. - `pdErrWhileRecoverInsertPages`: is raised if an error occurs while trying to recover from an error during inserting. ### IsDynamicXFA ```csharp bool Datalogics.PDFL.Document.IsDynamicXFA() ``` **Returns:** `bool` true indicates the Document is Dynamic XFA, false indicates it is not Indicates if the document is Dynamic XFA. Dynamic XFA documents can change in appearance in response to changes in the data. They don't contain a meaningful PDF representation. Such XFA content is not widely supported by PDF processors. [https://www.datalogics.com/pdf-form-functions](https://www.datalogics.com/pdf-form-functions). ### IsStaticXFA ```csharp bool Datalogics.PDFL.Document.IsStaticXFA() ``` **Returns:** `bool` true indicates the Document is Static XFA, false indicates it is not Indicates if the document is Static XFA. Static XFA documents have a fixed appearance and layout. They usually contain a meaningful PDF representation. Such XFA content is not widely supported by PDF processors. [https://www.datalogics.com/pdf-form-functions](https://www.datalogics.com/pdf-form-functions). ### LookForKidsInNameTree ```csharp void Datalogics.PDFL.Document.LookForKidsInNameTree(PDFDict nameTree, System.Collections.Generic.IList< FileAttachment > attachments) ``` **Parameters** - `nameTree` ([`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md)) - `attachments` ([`System.Collections.Generic.IList< FileAttachment >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FileAttachment.md)) **Returns:** `void` ### MergeXMPKeywords ```csharp void Datalogics.PDFL.Document.MergeXMPKeywords() ``` **Returns:** `void` Causes a string produced as by PDDocGetMergedXAPKeywords() to be stored as the new value of the pdf:Keywords property, and the former value of the pdf:Keywords property to be stored as an item in the xmp:Keywords bag of keyword items. The algorithm used to compute merged keywords lists detects the case in which the keywords lists have already been merged and makes no changes to the XMP metadata in this case. ### MovePage ```csharp void Datalogics.PDFL.Document.MovePage(int moveToAfterThisPage, int pageToMove) ``` **Parameters** - `moveToAfterThisPage` (`int`): The new location of the page to move. The first page is 0. It may either be a page number, or the constant Document.BeforeFirstPage. - `pageToMove` (`int`): The page number of the page to move. **Returns:** `void` Moves one page in a document. **Exceptions** - `genErrBadParm`: is raised if moveAfterThisPage or pageToMove is invalid. Other exceptions may be raised as well. ### PermRequest ```csharp bool Datalogics.PDFL.Document.PermRequest(PermissionRequestOperation requestedperm) ``` **Parameters** - `requestedperm` ([`PermissionRequestOperation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PermissionRequestOperation.md)): The document permission which to check **Returns:** `bool` a boolean if the permission is set in the document. Tests if a permission is set on a document ### PermRequest ```csharp bool Datalogics.PDFL.Document.PermRequest(string password, PermissionRequestOperation perms) ``` **Parameters** - `password` (`string`): The document password which authorizes the change. Note - if this argument is set to a NULL (""), then the return will be an indicator of whether or not the requested permission is already set in this document, with no changes made to the PDF document. - `perms` ([`PermissionRequestOperation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PermissionRequestOperation.md)): the permissions on the PDF file which is to be set or checked. **Returns:** `bool` a boolean if the permission change is successful or if the permission was set. Request the permissions to be changed on a PDF document. This takes effect immediately ### Print ```csharp void Datalogics.PDFL.Document.Print(PrintUserParams userParams) ``` **Parameters** - `userParams` ([`PrintUserParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintUserParams.md)): Parameters to control printing. **Returns:** `void` Prints a PDF document or pages from a PDF document allowing the caller to specify options such as page size, rotation, and shrink-to-fit. **Exceptions** - `cosErrWriteError` - `pdErrOpNotPermitted` - `genErrBadParm` ### Print ```csharp void Datalogics.PDFL.Document.Print(PrintUserParams userParams, PrintCancelProc printCancelProc) ``` **Parameters** - `userParams` ([`PrintUserParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintUserParams.md)): Parameters to control printing. - `printCancelProc` ([`PrintCancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintCancelProc.md)): A PrintCancelProc, which can return true to cancel printing, may be null. **Returns:** `void` Prints a PDF document or pages from a PDF document allowing the caller to specify options such as page size, rotation, and shrink-to-fit. **Exceptions** - `cosErrWriteError` - `pdErrOpNotPermitted` - `genErrBadParm` ### Print ```csharp void Datalogics.PDFL.Document.Print(PrintUserParams userParams, PrintCancelProc printCancelProc, PrintProgressProc printProgressProc) ``` **Parameters** - `userParams` ([`PrintUserParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintUserParams.md)): Parameters to control printing. - `printCancelProc` ([`PrintCancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintCancelProc.md)): A PrintCancelProc, which can return true to cancel printing, may be null. - `printProgressProc` ([`PrintProgressProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintProgressProc.md)): A PrintProgressProc, may be null. **Returns:** `void` Prints a PDF document or pages from a PDF document allowing the caller to specify options such as page size, rotation, and shrink-to-fit. **Exceptions** - `cosErrWriteError` - `pdErrOpNotPermitted` - `genErrBadParm` ### PrintToFile ```csharp void Datalogics.PDFL.Document.PrintToFile(PrintUserParams userParams, PrintCancelProc printCancelProc, PrintProgressProc printProgressProc, string path) ``` **Parameters** - `userParams` ([`PrintUserParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintUserParams.md)): Parameters to control printing. - `printCancelProc` ([`PrintCancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintCancelProc.md)): A PrintCancelProc, which can return true to cancel printing, may be null. - `printProgressProc` ([`PrintProgressProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintProgressProc.md)): A PrintProgressProc, may be null. - `path` (`string`): The output file to be created. **Returns:** `void` Prints a PDF document or pages from a PDF document allowing the caller to specify options such as page size, rotation, and shrink-to-fit. The output is placed in the specified file. **Exceptions** - `cosErrWriteError` - `pdErrOpNotPermitted` - `genErrBadParm` ### PrintToFile ```csharp void Datalogics.PDFL.Document.PrintToFile(PrintUserParams userParams, PrintCancelProc printCancelProc, string path) ``` **Parameters** - `userParams` ([`PrintUserParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintUserParams.md)): Parameters to control printing. - `printCancelProc` ([`PrintCancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintCancelProc.md)): A PrintCancelProc, which can return true to cancel printing, may be null. - `path` (`string`): The output file to be created. **Returns:** `void` Prints a PDF document or pages from a PDF document allowing the caller to specify options such as page size, rotation, and shrink-to-fit. The output is placed in the specified file. **Exceptions** - `cosErrWriteError` - `pdErrOpNotPermitted` - `genErrBadParm` ### PrintToFile ```csharp void Datalogics.PDFL.Document.PrintToFile(PrintUserParams userParams, string path) ``` **Parameters** - `userParams` ([`PrintUserParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintUserParams.md)): Parameters to control printing. - `path` (`string`): The output file to be created. **Returns:** `void` Prints a PDF document or pages from a PDF document allowing the caller to specify options such as page size, rotation, and shrink-to-fit. The output is placed in the specified file. **Exceptions** - `cosErrWriteError` - `pdErrOpNotPermitted` - `genErrBadParm` ### RemoveCollection ```csharp void Datalogics.PDFL.Document.RemoveCollection() ``` **Returns:** `void` RemoveCollection Removes a collection dictionary from a document. ### RemoveDuplicateOCG ```csharp void Datalogics.PDFL.Document.RemoveDuplicateOCG() ``` **Returns:** `void` Removes duplicate optional content group from the document. This does not remove any content associated with the duplicate group, ### RemoveNameTree ```csharp void Datalogics.PDFL.Document.RemoveNameTree(string nameTreeName) ``` **Parameters** - `nameTreeName` (`string`): The name of the NameTree to remove. **Returns:** `void` Removes the name tree inside the Names dictionary with the specified key name. It does nothing if no object with that name exists. ### RemoveOCG ```csharp void Datalogics.PDFL.Document.RemoveOCG(OptionalContentGroup ocg) ``` **Parameters** - `ocg` ([`OptionalContentGroup`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentGroup.md)): The optional content group to remove. **Returns:** `void` Removes the specified optional content group from the document. This does not remove any content associated with the specified group, only the group itself. ### ReplacePages ```csharp void Datalogics.PDFL.Document.ReplacePages(int startPage, Document doc2, int startPageDoc2, int numPages, bool mergeTextAnnots) ``` **Parameters** - `startPage` (`int`): The first page number in doc to replace. The first page is 0. - `doc2` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document from which pages are copied into doc. - `startPageDoc2` (`int`): The page number of the first page in doc2 to copy. The first page is 0. - `numPages` (`int`): The number of pages to replace. - `mergeTextAnnots` (`bool`): If true, text annotations from doc2 are appended if they are different than all existing annotations on the page in doc. No other types of annotations are copied. **Returns:** `void` Replaces the specified range of pages in one document with pages from another. The contents, resources, size and rotation of the pages are replaced. The bookmarks are not copied, because they are attached to the document, not to individual pages. **Exceptions** - `pdErrOpNotPermitted`: is raised unless doc is editable and doc2 is not encrypted or the owner opened it. - `pdErrCantUseNewVersion`: is raised if doc2 is a newer major version than PDFL understands. - `genErrBadParm`: is raised if an invalid startPage or numPages is specified. - `genErrNoMemory`: is raised if there is insufficient memory to perform the insertion. ### Save ```csharp void Datalogics.PDFL.Document.Save(SaveFlags flags, System.IO.Stream stream) ``` **Parameters** - `flags` ([`SaveFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SaveFlags.md)): A bit field composed of an OR of the SaveFlags values. - `stream` (`System.IO.Stream`): The Stream to which the file is saved. **Returns:** `void` Saves a Document to a Stream. The save is always performed as a full, copy save. The Document remains open with the original file. If the document was created with Document(), at least one page must be added using CreatePage() or InsertPages() before the Document can be saved. A full save with linearization optimizes the PDF file. During optimization, all objects in a PDF file are rearranged, many of them acquiring not only a new file position, but also a new Cos object number. If SaveFlags.CloseAfterSave flag has been specified the document will be closed immediately after save and it won't be valid anymore. If one needs this document outside of the stream it has been saved to, one has to reopen the document and recreate all the dependent objects such as Page, Image etc. If both SaveFlags.FULL and SaveFlags.COPY are used during saving partially or fully compressed document to the stream that SaveFlags.CLOSE_AFTER_SAVE must be specified. It is advisable to call EmbedFonts before saving a document, in case any fonts were created automatically to support Unicode text. **Exceptions** - `pdErrAfterSave`: is raised if the save was completed successfully, but there were problems cleaning up afterwards. The document is no longer consistent and cannot be changed. It must be closed and reopened. - `pdErrOpNotPermitted`: is raised if saving is not permitted. Saving is permitted if either edit or editNotes (see PermissionFlags) is allowed, or you are doing a full save and saveAs is allowed. - `pdErrAlreadyOpen`: is raised if SaveFlags.Full is used, and the file specified by newPath is already open. ### Save ```csharp void Datalogics.PDFL.Document.Save(SaveFlags flags, System.IO.Stream stream, ProgressMonitor progressMonitor, CancelProc cancelProc) ``` **Parameters** - `flags` ([`SaveFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SaveFlags.md)) - `stream` (`System.IO.Stream`) - `progressMonitor` ([`ProgressMonitor`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ProgressMonitor.md)) - `cancelProc` ([`CancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CancelProc.md)) **Returns:** `void` ### Save ```csharp void Datalogics.PDFL.Document.Save(SaveFlags saveFlags) ``` **Parameters** - `saveFlags` ([`SaveFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SaveFlags.md)): A bit field composed of an OR of the SaveFlags values. **Returns:** `void` Saves a document to disk. If a full save is requested to the original path, the file is saved to a file system-determined temporary file, the old file is deleted, and the temporary file is renamed to the save file name. A full save with linearization optimizes the PDF file. During optimization, all objects in a PDF file are rearranged, many of them acquiring not only a new file position, but also a new PDFObject number. At the end of the save operation, PDFL flushes its information of the PD layer and below to synchronize its in-memory state with the new disk file just written. If the document has a signature, it will be saved incrementally regardless of the full save flag. This is required to preserve the exact contents of the document at the time of signing. **Exceptions** - `pdErrAfterSave`: is raised if the save was completed successfully, but there were problems cleaning up afterwards. The document is no longer consistent and cannot be changed. It must be closed and reopened. - `pdErrOpNotPermitted`: is raised if saving is not permitted. Saving is permitted if either edit or editNotes (see PermissionFlags) is allowed, or you are doing a full save and saveAs is allowed. - `pdErrAlreadyOpen`: is raised if SaveFlags.Full is used, and the file is already open. ### Save ```csharp void Datalogics.PDFL.Document.Save(SaveFlags saveFlags, ProgressMonitor progressMonitor, CancelProc cancelProc) ``` **Parameters** - `saveFlags` ([`SaveFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SaveFlags.md)): A bit field composed of an OR of the SaveFlags values. - `progressMonitor` ([`ProgressMonitor`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ProgressMonitor.md)): a ProgressMonitor that will receive progress information, may be null - `cancelProc` ([`CancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CancelProc.md)): a CancelProc, which can return true to cancel the operation, may be null **Returns:** `void` Saves a document to disk. If a full save is requested to the original path, the file is saved to a file system-determined temporary file, the old file is deleted, and the temporary file is renamed to the save file name. A full save with linearization optimizes the PDF file. During optimization, all objects in a PDF file are rearranged, many of them acquiring not only a new file position, but also a new PDFObject number. At the end of the save operation, PDFL flushes its information of the PD layer and below to synchronize its in-memory state with the new disk file just written. If the document has a signature, it will be saved incrementally regardless of the full save flag. This is required to preserve the exact contents of the document at the time of signing. **Exceptions** - `pdErrAfterSave`: is raised if the save was completed successfully, but there were problems cleaning up afterwards. The document is no longer consistent and cannot be changed. It must be closed and reopened. - `pdErrOpNotPermitted`: is raised if saving is not permitted. Saving is permitted if either edit or editNotes (see PermissionFlags) is allowed, or you are doing a full save and saveAs is allowed. - `pdErrAlreadyOpen`: is raised if SaveFlags.Full is used, and the file is already open. ### Save ```csharp void Datalogics.PDFL.Document.Save(SaveFlags saveFlags, string newPath) ``` **Parameters** - `saveFlags` ([`SaveFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SaveFlags.md)): A bit field composed of an OR of the SaveFlags values. - `newPath` (`string`): The path to which the file is saved. A path must be specified when either SaveFlags.Full or SaveFlags.Copy are used for saveFlags. If SaveFlags.Incremental is specified in saveFlags, then newPath should be NULL. If SaveFlags.Full is specified and newPath is the same as the file's original path, the new file is saved to a file system-determined temporary path, then the old file is deleted and the new file is renamed to newPath. **Returns:** `void` Saves a document to disk. If a full save is requested to the original path, the file is saved to a file system-determined temporary file, the old file is deleted, and the temporary file is renamed to newPath. If the document was created with Document, at least one page must be added using CreatePage() orInsertPages() before a PDF Viewer can save the document. A full save with linearization optimizes the PDF file. During optimization, all objects in a PDF file are rearranged, many of them acquiring not only a new file position, but also a new PDFObject number. At the end of the save operation, PDFL flushes its information of the PD layer and below to synchronize its in-memory state with the new disk file just written. If the document has a signature, it will be saved incrementally regardless of the full save flag. This is required to preserve the exact contents of the document at the time of signing. **Exceptions** - `pdErrAfterSave`: is raised if the save was completed successfully, but there were problems cleaning up afterwards. The document is no longer consistent and cannot be changed. It must be closed and reopened. - `pdErrOpNotPermitted`: is raised if saving is not permitted. Saving is permitted if either edit or editNotes (see PermissionFlags) is allowed, or you are doing a full save and saveAs is allowed. - `pdErrAlreadyOpen`: is raised if SaveFlags.Full is used, and the file specified by newPath is already open. ### Save ```csharp void Datalogics.PDFL.Document.Save(SaveFlags saveFlags, string newPath, ProgressMonitor progressMonitor, CancelProc cancelProc) ``` **Parameters** - `saveFlags` ([`SaveFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SaveFlags.md)): A bit field composed of an OR of the SaveFlags values. - `newPath` (`string`): The path to which the file is saved. A path must be specified when either SaveFlags.Full or SaveFlags.Copy are used for saveFlags. If SaveFlags.Incremental is specified in saveFlags, then newPath should be NULL. If SaveFlags.Full is specified and newPath is the same as the file's original path, the new file is saved to a file system-determined temporary path, then the old file is deleted and the new file is renamed to newPath. - `progressMonitor` ([`ProgressMonitor`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ProgressMonitor.md)): a ProgressMonitor that will receive progress information, may be null - `cancelProc` ([`CancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CancelProc.md)): a CancelProc, which can return true to cancel the operation, may be null **Returns:** `void` Saves a document to disk. If a full save is requested to the original path, the file is saved to a file system-determined temporary file, the old file is deleted, and the temporary file is renamed to newPath. If the document was created with Document, at least one page must be added using CreatePage() orInsertPages() before a PDF Viewer can save the document. A full save with linearization optimizes the PDF file. During optimization, all objects in a PDF file are rearranged, many of them acquiring not only a new file position, but also a new PDFObject number. At the end of the save operation, PDFL flushes its information of the PD layer and below to synchronize its in-memory state with the new disk file just written. If the document has a signature, it will be saved incrementally regardless of the full save flag. This is required to preserve the exact contents of the document at the time of signing. **Exceptions** - `pdErrAfterSave`: is raised if the save was completed successfully, but there were problems cleaning up afterwards. The document is no longer consistent and cannot be changed. It must be closed and reopened. - `pdErrOpNotPermitted`: is raised if saving is not permitted. Saving is permitted if either edit or editNotes (see PermissionFlags) is allowed, or you are doing a full save and saveAs is allowed. - `pdErrAlreadyOpen`: is raised if SaveFlags.Full is used, and the file specified by newPath is already open. ### Secure ```csharp void Datalogics.PDFL.Document.Secure(PermissionFlags permissions, string ownerPassword, string userPassword) ``` **Parameters** - `permissions` ([`PermissionFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PermissionFlags.md)): an "OR" of the types of PDF document specified by Permissions: - `ownerPassword` (`string`): optional PDF document owner password; pass null if not used. - `userPassword` (`string`): optional PDF document user password; pass null if not used. **Returns:** `void` Secure the PDF document securely with password(s). If the document has a security handler, it is retained. If the document does not have a security handler, it is assigned the "Standard" security handler with a 16-bit encryption key length. Access permissions as well as owner and user passwords are assigned to the PDF document. This method by default encrypts PDF's content as well as its metadata. To make selective encryption use appropriate overload of Secure() method. The document must be saved for the changes to take effect. A full save is required. ### Secure ```csharp void Datalogics.PDFL.Document.Secure(PermissionFlags permissions, string ownerPassword, string userPassword, EncryptionType encryptionType) ``` **Parameters** - `permissions` ([`PermissionFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PermissionFlags.md)): an "OR" of the types of PDF document specified by Permissions: - `ownerPassword` (`string`): optional PDF document owner password; pass null if not used. - `userPassword` (`string`): optional PDF document user password; pass null if not used. - `encryptionType` ([`EncryptionType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/EncryptionType.md)): Encryption type to be used for securing the document. **Returns:** `void` Secure the PDF document securely with password(s). The security handler used for the document depends on the encryption type specified. Access permissions as well as owner and user passwords are assigned to the PDF document. This method by default encrypts PDF's content as well as its metadata. To make selective encryption use appropriate overload of Secure() method. The document must be saved for the changes to take effect. A full save is required. ### Secure ```csharp void Datalogics.PDFL.Document.Secure(PermissionFlags permissions, string ownerPassword, string userPassword, EncryptionType encryptionType, bool encryptMetadata) ``` **Parameters** - `permissions` ([`PermissionFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PermissionFlags.md)): an "OR" of the types of PDF document specified by Permissions: - `ownerPassword` (`string`): optional PDF document owner password; pass null if not used. - `userPassword` (`string`): optional PDF document user password; pass null if not used. - `encryptionType` ([`EncryptionType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/EncryptionType.md)): Encryption type to be used for securing the document. - `encryptMetadata` (`bool`): A flag that indicates whether document metadata will be encrypted. **Returns:** `void` Secure the PDF document securely with password(s). The security handler used for the document depends on the encryption type specified. Access permissions as well as owner and user passwords are assigned to the PDF document. This method allows selective encryption. Depending on encryptMetadata parameter, it may or may not encrypt PDF's metadata. The document must be saved for the changes to take effect. A full save is required. ### SetInfo ```csharp void Datalogics.PDFL.Document.SetInfo(string infoname, string infovalue) ``` **Parameters** - `infoname` (`string`): The name of metadata to be set - `infovalue` (`string`): The value for metadata which will be set **Returns:** `void` Sets metadata information in a PDF document. ### SetXMPMetadataArrayItem ```csharp void Datalogics.PDFL.Document.SetXMPMetadataArrayItem(string namespaceName, string namespacePrefix, string path, int index, string newValue) ``` **Parameters** - `namespaceName` (`string`): The XML namespace URI for the schema in which the property is to be found. - `namespacePrefix` (`string`): A brief string to be used as an abbreviation when creating the XML representation of the property. This string must not be empty. - `path` (`string`): The name of the simple property to be modified. - `index` (`int`): The index in the metadata property array associated with the property. - `newValue` (`string`): The new XML text value for the property. **Returns:** `void` Sets the value of an XMP metadata array item, associated with a document, based on an index. ### SetXMPMetadataProperty ```csharp void Datalogics.PDFL.Document.SetXMPMetadataProperty(string namespaceName, string namespacePrefix, string path, string newValue) ``` **Parameters** - `namespaceName` (`string`): The XML namespace URI for the schema in which the property is to be found. - `namespacePrefix` (`string`): A brief string to be used as an abbreviation when creating the XML representation of the property. This string must not be empty. - `path` (`string`): The name of the simple property to be modified. - `newValue` (`string`): The new XML text value for the property. **Returns:** `void` Sets the value of an XMP metadata property associated with a document. The XMP metadata represents all the properties in pdDoc object's Info dictionary, and can also contain properties that are not in the Info dictionary. ### Unsecure ```csharp void Datalogics.PDFL.Document.Unsecure() ``` **Returns:** `void` Remove security handler from the PDF document. If the document has a security handler, it is removed. If the document does not have a security handler, this method does nothing. To remove the security handler, you must hold the PermissionRequestOperation.Secure permission, which you can obtain via Document.PermRequest. This call will throw an ApplicationException if you do not hold the Secure permission. The document must be saved for the changes to take effect. A full save is required. **Exceptions** - `ApplicationException`: if you do not hold the PermissionRequestOperation.Secure permission. ### Watermark ```csharp void Datalogics.PDFL.Document.Watermark(Page page, WatermarkParams watermarkParams) ``` **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to be added as a watermark. - `watermarkParams` ([`WatermarkParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WatermarkParams.md)): Structure specifying how the watermark should be added to the document. **Returns:** `void` Adds a Page as a watermark to a page range in the given document. ### Watermark ```csharp void Datalogics.PDFL.Document.Watermark(WatermarkTextParams watermarkTextParams, WatermarkParams watermarkParams) ``` **Parameters** - `watermarkTextParams` ([`WatermarkTextParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WatermarkTextParams.md)): Structure describing the text-based watermark to be added. - `watermarkParams` ([`WatermarkParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WatermarkParams.md)): Structure specifying how the watermark should be added to the document. **Returns:** `void` Adds a text-based watermark to a page range in the given document. --- # DrawFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/DrawFlags **Namespace:** `Datalogics::PDFL` ## Values - `DoLazyErase = 1`: Erase the page while rendering only as needed. - `UseAnnotFaces = 64`: Draw annotation appearances. - `IsPrinting = 128`: The page is being printed. - `DisplayOverPrintPreview = 256`: Display overprint preview. - `UseTrapAnnots = 8192`: Use trap network annotations. - `DirectlyImposed = 16384`: Directly imposed page. - `IsPSPrinting = 32768`: PostScript printing. - `EmitPageGroup = 65536`: Emit a page group. - `UsePrinterMarkAnnots = 131072`: Use printer's mark annotations. - `PassOPItoAGMPort = 262144`: Pass open prepress interface (OPI) to AGM port. - `PassMetadatatoAGMPort = 524288`: Pass metadata to AGM port. - `PassOCtoAGMPort = 1048576`: Pass optional content to AGM port. - `DoNotDownloadFonts = 4194304`: Do not download fonts during rendering. Use this flag to prevent fonts from being downloaded/named to the output. Active when writing GDI output, such as to a metafile or printer on Windows. - `WritingToEMF = 4194304`: Indicate that the drawing is writing to an Enhanced MetaFile. This prevents fonts from being downloaded, but may advise other flags in the future. - `DoNotSubstituteWorkingSpaces = 8388608`: Do not substitute working spaces. - `SwapComponents = 16777216`: Render colors in BGR order rather than RGB. It is only valid for calls to Page.DrawContents and only when outputing to an RGB colorspace. - `SuppressRasterAlpha = 33554432`: Suppress raster alpha. - `WorkingSpacesOnlyForChange = 67108864`: If this is set, only use a working space instead of a device space if the process color model of the target device is different than that of the source. - `UseStampAnnotsOnly = 134217728`: If set, only consider Stamp annotations. This overrides UseAnnotFaces. - `ForceGDIPort = 268435456`: If set, this forces the window draw code to attempt to use GDI instructions internally instead of assuming the incoming Platform device context contains enough information to allow APDFL to make a useful determination. Only honored on Windows. Useful when drawing to a window during print preview, when the supplied hDC is for the screen and does not allow APDFL to adequately instantiate drawing bounds. - `IsPrintPreviewing = 268435456`: Same as ForceGDIPort. - `OptimizeForInteractive = 536870912`: Set this flag for interactive viewers where the same PDF page may be re-drawn multiple times for viewing. This flag will allow re-drawing a PDF page (to change the positioning, zoom level or active smoothing & antialiasing, for example) to reuse some data elements from previous drawing operations, and will invoke a separate runtime thread for page operator parsing. However, this will increase the memory used for page display if enabled. --- # DrawParams Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams ```csharp class DrawParams : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Settings for rendering PDF pages as images. This is used for rendering PDF pages to images, such as PNG or JPG files, to export to separate files or to send to a printer. **Referenced by:** [`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md) **Uses types:** [`CancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CancelProc.md), [`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md), [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`DrawFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/DrawFlags.md), [`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md), [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md), [`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md), [`RenderProgressProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RenderProgressProc.md), [`SmoothFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SmoothFlags.md) ## Constructors ### DrawParams ```csharp Datalogics.PDFL.DrawParams.DrawParams() ``` *constructor* Construct default DrawParams. Initializes with DeviceRGB color space, relative colorimetric render intent, no smoothing, no draw flags, and no cancel or progress callbacks. ### DrawParams ```csharp Datalogics.PDFL.DrawParams.DrawParams(DrawParams rhs) ``` *constructor* **Parameters** - `rhs` ([`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md)): The DrawParams to copy from. Copy constructor. ## Properties ### BypassCopyPerm ```csharp bool Datalogics.PDFL.DrawParams.BypassCopyPerm { get; set; } ``` Bypass copy permissions. Only used when drawing to a bitmap. ### CancelProc ```csharp CancelProc Datalogics.PDFL.DrawParams.CancelProc { get; set; } ``` Get the cancel callback for rendering operations. ### ColorSpace ```csharp ColorSpace Datalogics.PDFL.DrawParams.ColorSpace { get; set; } ``` The color space in which the bitmap data is represented. Must be one of DeviceGray, DeviceRGB, DeviceRGBA, DeviceCMYK, Lab, or LabA. Only used when drawing to a bitmap. ### DestRect ```csharp Rect Datalogics.PDFL.DrawParams.DestRect { get; set; } ``` The rectangle of the bitmap in device space coordinates. Only used when drawing to a bitmap. ### EnableBlackPointCompensation ```csharp bool Datalogics.PDFL.DrawParams.EnableBlackPointCompensation { get; set; } ``` Enable/disable black point compensation. ### EnableThinLineHeuristics ```csharp bool Datalogics.PDFL.DrawParams.EnableThinLineHeuristics { get; set; } ``` Enable/disable thin line adjustments when drawing rectangles ### Flags ```csharp DrawFlags Datalogics.PDFL.DrawParams.Flags { get; set; } ``` Drawing flags. ### ICCProfile ```csharp ColorProfile Datalogics.PDFL.DrawParams.ICCProfile { get; set; } ``` The ICC Profile of the colorspace to be used for rendering, from a known value. NOTE: The ICCProfileCustomPath must not be set for this property to be used. The profile must be compatible with the ColorSpace property value, which can't be set to ICCBased either. ### ICCProfileCustomPath ```csharp string Datalogics.PDFL.DrawParams.ICCProfileCustomPath { get; set; } ``` The ICC Profile of the colorspace to be used for rendering, from a custom file path. NOTE: The ICCProfile is ignored when this property is a non-empty string. The profile must be compatible with the ColorSpace property value, which can't be set to ICCBased either. ### Matrix ```csharp Matrix Datalogics.PDFL.DrawParams.Matrix { get; set; } ``` The matrix to concatenate onto the default page matrix. Useful for converting from page to window coordinates and for scaling. ### OptionalContentContext ```csharp OptionalContentContext Datalogics.PDFL.DrawParams.OptionalContentContext { get; set; } ``` Get the optional-content context used for visibility state information. ### ProgressProc ```csharp RenderProgressProc Datalogics.PDFL.DrawParams.ProgressProc { get; set; } ``` Get the progress callback for rendering operations. ### RenderIntent ```csharp RenderIntent Datalogics.PDFL.DrawParams.RenderIntent { get; set; } ``` Default rendering intent is RelColorimetric (relative colorimetric). Only used when drawing to a bitmap. ### SmoothFlags ```csharp SmoothFlags Datalogics.PDFL.DrawParams.SmoothFlags { get; set; } ``` Smoothing flags. Only used when drawing to a bitmap. ### UpdateRect ```csharp Rect Datalogics.PDFL.DrawParams.UpdateRect { get; set; } ``` The rectangle specifying the area to draw. A rectangle represented by the coordinates of its four sides. If unset (degenerate), the page's CropBox is used instead. ## Methods ### Dispose ```csharp void Datalogics.PDFL.DrawParams.Dispose() ``` **Returns:** `void` --- # Duplex Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/Duplex **Namespace:** `Datalogics::PDFL` ## Description Duplex values. ## Values - `Off = 0`: Use system printer preferences duplex setting - `TumbleShort = 1`: Tumble over short edge - `TumbleLong = 2`: Tumble over long edge - `ForceSimplex = 3`: Force simplex printing --- # Element Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element ```csharp class Element : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` **Derived classes:** [`Container`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Container.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`Group`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Group.md), [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md), [`Path`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Path.md), [`PostScript`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PostScript.md), [`Shading`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Shading.md), [`Text`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Text.md), [`TextRun`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextRun.md) ## Description The base class for elements of the content of a page. An element is a building block; everything in a PDF file is an element. An element object can be associated with a large amount of unmanaged memory in APDFL and should be deleted when the object is no longer in use. **Referenced by:** [`Clip`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Clip.md), [`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md), [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`PostScript`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PostScript.md), [`Shading`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Shading.md), [`TextRun`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextRun.md) **Uses types:** [`Clip`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Clip.md), [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md), [`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md), [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Properties ### BoundingBox ```csharp Rect Datalogics.PDFL.Element.BoundingBox { get; } ``` The bounding box for this element. The bounding box is a rectangle that is guaranteed to encompass the element, but it is not guaranteed to be the smallest box that could contain the element. For example, if the element is a Path that contains an arc, the bounding box encompasses the bezier control points, and not just the curve itself. ### Clip ```csharp Clip Datalogics.PDFL.Element.Clip { get; set; } ``` Gets the current Clip for an Element. ### Matrix ```csharp Matrix Datalogics.PDFL.Element.Matrix { get; set; } ``` The transformation matrix for the element. ## Methods ### Clone ```csharp Element Datalogics.PDFL.Element.Clone() ``` **Returns:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) The copied element. Makes a copy of the element. Make a copy of an element to obtain a new element that has a distinct set of attributes. Note: TextRun objects may not be cloned. ### Clone ```csharp Element Datalogics.PDFL.Element.Clone(ElementCloneFlags cloneFlags) ``` **Parameters** - `cloneFlags` ([`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md)): Flags that modify the cloning operation. **Returns:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) The copied element. Makes a copy of the element. Make a copy of an element to obtain a new element that has a distinct set of attributes. Note: TextRun objects may not be cloned. ### Dispose ```csharp void Datalogics.PDFL.Element.Dispose() ``` **Returns:** `void` ### Rotate ```csharp void Datalogics.PDFL.Element.Rotate(double theta) ``` **Parameters** - `theta` (`double`): The rotation angle in degrees. **Returns:** `void` Rotate an element by theta degrees counterclockwise using the matrix [ cos T sin T -sin T cos T 0 0 ]. ### Scale ```csharp void Datalogics.PDFL.Element.Scale(double sx, double sy) ``` **Parameters** - `sx` (`double`): The horizontal scale factor. - `sy` (`double`): The vertical scale factor. **Returns:** `void` Scale an element by (sx,sy) units using the matrix [ sx 0 0 sy 0 0 ]. ### Translate ```csharp void Datalogics.PDFL.Element.Translate(double tx, double ty) ``` **Parameters** - `tx` (`double`): The horizontal translation distance in user space units. - `ty` (`double`): The vertical translation distance in user space units. **Returns:** `void` Translate an element by (tx,ty) units using the matrix [ 1 0 0 1 tx ty ]. --- # ElementCloneFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags **Namespace:** `Datalogics::PDFL` ## Values - `None = 0`: Normal copying. - `NoGraphicState = 1`: The copied element does not need a GraphicState. - `CopyClipping = 2`: Acquire the clip path and put it in the copied object. NoGraphicState must not be set. --- # EmbedFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/EmbedFlags **Namespace:** `Datalogics::PDFL` ## Values - `None = 0`: Fonts marked for subsetting/embedding will be embedded. - `Subset = 1`: Fonts will be subset when embedded. Otherwise the entire font will be embedded. Full fonts should only be embedded if the information in the fonts indicates it can be used for editible embedding. Fonts that have more than 2048 characters will be subset embedded regardless of the setting of this flag. This flag implies a scan of the document text to ensure that all required characters are in the subset. - `SubsetOfEmbeddedFont = 2`: If set, fonts that have already been embedded but are not subset fonts, will be reembedded as a subset font. If clear, already embedded fonts will not be re-scanned for embedding at all. - `DontScanDocument = 0x10000`: If set, the document will not be scanned for font usage when embedding and subsetting. This flag only takes effect if a list of specific fonts to embed is given. --- # EncodingInfo Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/EncodingInfo ```csharp class EncodingInfo : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Represents a font's encoding data. Encoding is the process that transforms a set of Unicode characters into a series of bytes. With PDF files, Unicode values are used to represent individual character within a font set. Unicode assigns a symbolic value to represent every single character in a wide variety of fonts, scripts, and languages. For example, the Unicode value "U+0041" refers to the capital letter "A" in a Latin script. The EncodingInfo Class is used to provide basic information about an encoding. For example, EncodingInfo could be used to provide just the code name and description for a Unicode standard font or language encoding, like this: IBM860 (Portuguese, DOS) ibm861 (Icelandic, DOS) DOS-862 (Hebrew, DOS) IBM863 (French Canadian, DOS) IBM864 (Arabic, 864) iso-8859-9 (Turkish, ISO) iso-8859-13 (Estonian, ISO) (c)2007 Datalogics Inc. Datalogics is a registered trademark of Datalogics Incorporated. Other company and brand, product and service names are for identification purposes only and may be trademarks or registered trademarks of their respective holders. Data is subject to change without notice. **Referenced by:** [`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md) ## Properties ### CharNames ```csharp System.Collections.Generic.IList Datalogics.PDFL.EncodingInfo.CharNames { get; } ``` container for differences array/character names ### EncodingName ```csharp string Datalogics.PDFL.EncodingInfo.EncodingName { get; } ``` Return the encoding name/cmap name for the font eg: • WinAnsiEncoding • MacRomanEncoding • Identity-H ## Methods ### Dispose ```csharp void Datalogics.PDFL.EncodingInfo.Dispose() ``` **Returns:** `void` --- # EncryptionType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/EncryptionType **Namespace:** `Datalogics::PDFL` ## Values - `Standard = 0`: Reuse the document's current encryption settings, or use the standard 128-bit encryption. - `AES256 = 1`: Encrypt the document using 256-bit AES encryption for Acrobat 9 or earlier. - `AES256_AcroX = 2`: Encrypt the document using 256-bit AES encryption for Acrobat 10 or later. - `RC4_40 = 3`: Encrypt the document using 40-bit RC4 encryption for Acrobat 5 or later. - `RC4_128 = 4`: Encrypt the document using 128-bit RC4 encryption for Acrobat 5 or later. --- # ExponentialFunction Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ExponentialFunction ```csharp class ExponentialFunction : Function ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md) ## Description An interpolation between two output values as input values vary across a domain. For an Exponential Function, the curve between the two values is determined by the exponent N. **Uses types:** [`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md) ## Constructors ### ExponentialFunction ```csharp Datalogics.PDFL.ExponentialFunction.ExponentialFunction(System.Collections.Generic.IList< System.Double > domain, int nOutputs, System.Collections.Generic.IList< System.Double > C0, System.Collections.Generic.IList< System.Double > C1, double N) ``` *constructor* **Parameters** - `domain` (`System.Collections.Generic.IList< System.Double >`): the domain of the function. 2 elements. - `nOutputs` (`int`): the number of outputs of the function - `C0` (`System.Collections.Generic.IList< System.Double >`): the output value when the input value is 0 - `C1` (`System.Collections.Generic.IList< System.Double >`): the output value when the input value is 1 - `N` (`double`): the exponential factor, which alters the curve of output values as the input values vary across the domain. Create an Exponential Function, which is the exponential interpolation between two output values as the input values vary across the domain. ## Properties ### C0 ```csharp System.Collections.Generic.IList Datalogics.PDFL.ExponentialFunction.C0 { get; set; } ``` The values for the function when the input is 0.0. There must be the same number of values as the number of outputs in the function. ### C1 ```csharp System.Collections.Generic.IList Datalogics.PDFL.ExponentialFunction.C1 { get; set; } ``` The values for the function when the input is 1.0. There must be the same number of values as the number of outputs in the function. ### Default ```csharp static Function Datalogics.PDFL.Function.Default { get; } ``` *static* Gets the Default named function. A Function representing the Default named function. ### Domain ```csharp System.Collections.Generic.IList Datalogics.PDFL.Function.Domain { get; set; } ``` The domain of the function. Contains 2 * m elements, where m is the number of inputs to the function. Each successive pair of elements gives the minimum and maximum values for one of the inputs. Input values to the function are clamped to these minimum and maximum values. ### Identity ```csharp static Function Datalogics.PDFL.Function.Identity { get; } ``` *static* Gets the Identity named function. A Function representing the Identity named function, which returns its input values unchanged. ### N ```csharp double Datalogics.PDFL.ExponentialFunction.N { get; set; } ``` The exponential factor N. ### NInputs ```csharp int Datalogics.PDFL.Function.NInputs { get; } ``` The number of inputs to the function. ### NOutputs ```csharp int Datalogics.PDFL.Function.NOutputs { get; } ``` The number of outputs from the function. ### Range ```csharp System.Collections.Generic.IList Datalogics.PDFL.Function.Range { get; set; } ``` The range of the function. Contains 2 * n elements, where n is the number of outputs from the function. Each successive pair of elements gives the minimum and maximum values for one of the outputs. Output values from the function are clamped to these minimum and maximum values. ## Methods ### Apply ```csharp virtual System.Collections.Generic.IList< System.Double > Datalogics.PDFL.Function.Apply(System.Collections.Generic.IList< System.Double > args) ``` **Parameters** - `args` (`System.Collections.Generic.IList< System.Double >`): input values for the function. The number of input values must agree with the number of inputs the function takes. **Returns:** `System.Collections.Generic.IList< System.Double >` a list of the result values from the function Apply the function to supplied input values ### Dispose ```csharp void Datalogics.PDFL.Function.Dispose() ``` **Returns:** `void` ### ToString ```csharp override string Datalogics.PDFL.ExponentialFunction.ToString() ``` **Returns:** `override string` A string representation of the ExponentialFunction, including the number of inputs and outputs, domain, range, N, C0, and C1 values. A string value describing the function. ### operator!= ```csharp static bool Datalogics.PDFL.Function.operator!=(Function a, Function b) ``` *static* **Parameters** - `a` ([`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): The first Function to compare. - `b` ([`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): The second Function to compare. **Returns:** `bool` true if the two Functions are not equal; otherwise, false. Tests two Function objects for inequality. ### operator== ```csharp static bool Datalogics.PDFL.Function.operator==(Function a, Function b) ``` *static* **Parameters** - `a` ([`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): The first Function to compare. - `b` ([`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): The second Function to compare. **Returns:** `bool` true if the two Functions are equal; otherwise, false. Tests two Function objects for equality. --- # ExtendedGraphicState Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ExtendedGraphicState ```csharp class ExtendedGraphicState : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description The extended graphic state, to supplement original graphic state. The Graphics State is an internal data structure in a PDF file that holds the parameters that describe graphics within that file. These parameters define how individual graphics are presented on the page, including layers and transparencies. The Extended Graphic State was introduced to expand the original Graphics State data structure, providing space to define and store more data objects within a PDF. **Referenced by:** [`GraphicState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GraphicState.md) **Uses types:** [`BlendMode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/BlendMode.md), [`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md), [`OverprintMode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/OverprintMode.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md) ## Constructors ### ExtendedGraphicState ```csharp Datalogics.PDFL.ExtendedGraphicState.ExtendedGraphicState() ``` *constructor* Create a new default ExtendedGraphicState for the document in which this ExtendedGraphicState will be used. ## Properties ### AlphaIsShape ```csharp bool Datalogics.PDFL.ExtendedGraphicState.AlphaIsShape { get; set; } ``` Returns if the alpha is to be interpreted as a shape or opacity mask. ### ApplyAutoStroke ```csharp bool Datalogics.PDFL.ExtendedGraphicState.ApplyAutoStroke { get; set; } ``` Returns whether stroke adjustment is enabled in the graphics state. ### ApplyOverprintForOtherThanStroking ```csharp bool Datalogics.PDFL.ExtendedGraphicState.ApplyOverprintForOtherThanStroking { get; set; } ``` Returns whether overprint is enabled for operations other than stroking. ### ApplyOverprintForStroking ```csharp bool Datalogics.PDFL.ExtendedGraphicState.ApplyOverprintForStroking { get; set; } ``` Returns whether overprint is enabled for stroke operations. ### BlackGeneration ```csharp Function Datalogics.PDFL.ExtendedGraphicState.BlackGeneration { get; set; } ``` Gets the black generation function. ### BlendMode ```csharp BlendMode Datalogics.PDFL.ExtendedGraphicState.BlendMode { get; set; } ``` Returns the blend mode for the color composite for each object painted. ### OpacityForOtherThanStroking ```csharp double Datalogics.PDFL.ExtendedGraphicState.OpacityForOtherThanStroking { get; set; } ``` Gets the opacity value for other-than-stroke operations. ### OpacityForStroking ```csharp double Datalogics.PDFL.ExtendedGraphicState.OpacityForStroking { get; set; } ``` Gets the opacity value for stroke operations. ### OverprintMode ```csharp OverprintMode Datalogics.PDFL.ExtendedGraphicState.OverprintMode { get; set; } ``` Returns the overprint mode setting. Specifies whether a color component value of 0 in a DeviceCMYK color space should erase that component or leave it unchanged when overprinting. ### PDFDict ```csharp PDFDict Datalogics.PDFL.ExtendedGraphicState.PDFDict { get; } ``` Get the dictionary associated with the extended graphic state. ### SmoothnessTolerance ```csharp double Datalogics.PDFL.ExtendedGraphicState.SmoothnessTolerance { get; set; } ``` Gets the smoothness tolerance, the quality of smooth shading. ### TextKnockout ```csharp bool Datalogics.PDFL.ExtendedGraphicState.TextKnockout { get; set; } ``` Returns whether text knockout is enabled in the graphics state. ### TransferFunction ```csharp System.Collections.Generic.IList Datalogics.PDFL.ExtendedGraphicState.TransferFunction { get; set; } ``` Gets the transfer function. ### UndercolorRemoval ```csharp Function Datalogics.PDFL.ExtendedGraphicState.UndercolorRemoval { get; set; } ``` Gets the undercolor removal function. ## Methods ### Dispose ```csharp void Datalogics.PDFL.ExtendedGraphicState.Dispose() ``` **Returns:** `void` --- # FarEastFont Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/FarEastFont **Namespace:** `Datalogics::PDFL` ## Description CJK font related option for PostScript printing. ## Values - `DownloadAll = 0`: Download all CJK fonts to the printer. - `DownloadNone = 1`: Download only embedded fonts to the printer. - `PrintAsImage = 2`: GDI/QuickDraw on PS option. PS Level 1 should use this to print CJK. --- # FileAttachment Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FileAttachment ```csharp class FileAttachment : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A file attachment. Any file can be attached to the PDF document. The class allows to create attachment and manipulate by its content. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) **Uses types:** [`AFRelationship`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AFRelationship.md), [`CollectionSchemaField`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CollectionSchemaField.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) ## Constructors ### FileAttachment ```csharp Datalogics.PDFL.FileAttachment.FileAttachment(Document doc, string fileName) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The PDF document (reference). - `fileName` (`string`): The path to file which will be attached to the document. Allows to add attachment into the PDF document. ### FileAttachment ```csharp Datalogics.PDFL.FileAttachment.FileAttachment(Document doc, string fileName, string keyName) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The PDF document (reference). - `fileName` (`string`): The path to file which will be attached to the document. - `keyName` (`string`): The name of the key. Allows to add attachment into the PDF document using the specified key name. ## Properties ### AFRelationship ```csharp AFRelationship Datalogics.PDFL.FileAttachment.AFRelationship { get; set; } ``` Gets the attachment's Associated File relationship. ### FileName ```csharp string Datalogics.PDFL.FileAttachment.FileName { get; } ``` Gets the attachment's file name. ### FileSize ```csharp uint Datalogics.PDFL.FileAttachment.FileSize { get; } ``` Gets the attachment's file size. ## Methods ### Dispose ```csharp void Datalogics.PDFL.FileAttachment.Dispose() ``` **Returns:** `void` ### GetCollectionItemNumber ```csharp float Datalogics.PDFL.FileAttachment.GetCollectionItemNumber(CollectionSchemaField collectionField) ``` **Parameters** - `collectionField` ([`CollectionSchemaField`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CollectionSchemaField.md)): the field for which item value should be retrieved. **Returns:** `float` collection items value GetCollectionItemNumber allows to obtain collection item according to the specified schema field. ### GetCollectionItemString ```csharp string Datalogics.PDFL.FileAttachment.GetCollectionItemString(CollectionSchemaField collectionField) ``` **Parameters** - `collectionField` ([`CollectionSchemaField`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CollectionSchemaField.md)): the field for which item value should be retrieved. **Returns:** `string` collection items value GetCollectionItemString allows to obtain collection item value according to the specified schema field. ### SaveToFile ```csharp void Datalogics.PDFL.FileAttachment.SaveToFile(string fileName) ``` **Parameters** - `fileName` (`string`): The path where attachment will be saved. **Returns:** `void` Allows to save attachment to the specified file. ### SaveToStream ```csharp void Datalogics.PDFL.FileAttachment.SaveToStream(System.IO.Stream stream) ``` **Parameters** - `stream` (`System.IO.Stream`): The Stream to which the FileAttachment is saved. **Returns:** `void` Saves a FileAttachment to a Stream. ### SetCollectionItemNumber ```csharp void Datalogics.PDFL.FileAttachment.SetCollectionItemNumber(CollectionSchemaField collectionField, float value) ``` **Parameters** - `collectionField` ([`CollectionSchemaField`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CollectionSchemaField.md)): schema field which contains information about data type. The parameter's subtype should be a Number. - `value` (`float`): the item's value. **Returns:** `void` SetCollectionItemNumber allows to add key to the collection item dictionary. **Exceptions** - `bad`: parameter exception if CollectionSchema doesn't contain specified field. ### SetCollectionItemString ```csharp void Datalogics.PDFL.FileAttachment.SetCollectionItemString(CollectionSchemaField collectionField, string value) ``` **Parameters** - `collectionField` ([`CollectionSchemaField`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CollectionSchemaField.md)): schema field which contains information about data type. The parameter's subtype should be a Text. - `value` (`string`): the item's value. **Returns:** `void` SetCollectionItemString allows to add key to the collection item dictionary. **Exceptions** - `bad`: parameter exception if CollectionSchema doesn't contain specified field. ### UpdateFromFile ```csharp void Datalogics.PDFL.FileAttachment.UpdateFromFile(string fileName) ``` **Parameters** - `fileName` (`string`): The path to the file from which attachment will be updated. **Returns:** `void` Allows to update attachment from another file. --- # FileSpecification Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FileSpecification ```csharp class FileSpecification : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Refers to the location of a PDF file within a file system. The PDF file system is known more commonly as the file path name. The reference can be either absolute, as in a complete path name, or relative to the current place in a directory structure. **Referenced by:** [`LaunchAction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LaunchAction.md), [`RemoteGoToAction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RemoteGoToAction.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Constructors ### FileSpecification ```csharp Datalogics.PDFL.FileSpecification.FileSpecification(Document doc, string path) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document in which the file specification is created. - `path` (`string`): The string corresponding to the path of the file to reference. It may be relative or absolute. Creates a new file specification object. ## Properties ### PDFObject ```csharp PDFObject Datalogics.PDFL.FileSpecification.PDFObject { get; } ``` Retrieve the PDFObject representation of this object. ### Path ```csharp string Datalogics.PDFL.FileSpecification.Path { get; } ``` Gets the path to the file referenced. ## Methods ### Dispose ```csharp void Datalogics.PDFL.FileSpecification.Dispose() ``` **Returns:** `void` ### ToString ```csharp override string Datalogics.PDFL.FileSpecification.ToString() ``` **Returns:** `override string` The path to the file referenced by this FileSpecification. Returns a string representation of this FileSpecification. The returned value is the file path referenced by this specification. --- # FlattenerColorCompression Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/FlattenerColorCompression **Namespace:** `Datalogics::PDFL` ## Description Enumeration for setting the compression scheme for the Flattened Color images. ## Values - `JPEGCompression = 0`: Use JPEG compression for flattened color images. - `ZIPCompression = 1`: Use ZIP (Flate/Deflate) compression for flattened color images. - `JPEG2000Compression = 2`: Use JPEG2000 compression for flattened color images. --- # FlattenerGrayCompression Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/FlattenerGrayCompression **Namespace:** `Datalogics::PDFL` ## Description Enumeration for setting the compression scheme for the Flattened Grayscale images. ## Values - `GrayJPEGCompression = 0`: Use JPEG compression for flattened grayscale images. - `GrayZIPCompression = 1`: Use ZIP (Flate/Deflate) compression for flattened grayscale images. - `GrayJPEG2000Compression = 2`: Use JPEG2000 compression for flattened grayscale images. --- # FlattenerMonoCompression Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/FlattenerMonoCompression **Namespace:** `Datalogics::PDFL` ## Description Enumeration for setting the compression scheme for the Flattened Monochrome images. ## Values - `MonoCCITTGroup3Compression = 0`: Use CCITT Group 3 (fax) compression for flattened monochrome images. - `MonoCCITTGroup4Compression = 1`: Use CCITT Group 4 compression for flattened monochrome images. - `MonoZIPCompression = 2`: Use ZIP (Flate/Deflate) compression for flattened monochrome images. - `MonoRunLengthCompression = 3`: Use Run Length Encoding compression for flattened monochrome images. --- # FlattenerQualitySetting Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/FlattenerQualitySetting **Namespace:** `Datalogics::PDFL` ## Description Enumeration for setting the Quality setting for the JPEG or JPEG2000 images. ## Values - `Mininum = 0`: Minimum quality setting. Produces the smallest file size. - `Low = 1`: Low quality setting. - `Medium = 2`: Medium quality setting. Balances file size and image quality. - `High = 3`: High quality setting. - `Maximum = 4`: Maximum quality setting. Produces the largest file size with the best image quality. - `JPEG2000Lossless = 5`: Lossless quality setting. Valid only for JPEG2000 compression scheme. --- # FlattenTransparencyParams Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FlattenTransparencyParams ```csharp class FlattenTransparencyParams : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Represents control parameters for flattening transparencies within a PDF file. Class that represents control parameters for flattening transparencies within a PDF file. PDF files can hold objects that are stacked, and that are partially or fully transparent. This means that these objects can blend in various ways with objects behind them. With a stacked set of transparent graphics or images in a PDF file, each one contributing to the final result that appears on the page. One or more graphics images presented together in a stack is referred to as a transparency group. With a stack of transparent images, the final colors shown are the result of blending the colors of all of the overlapping objects. Flatten Transparency merges a stack of transparent objects or graphics into a single image on the PDF page. Flattening images in a PDF file is generally necessary before you can send the document to a printer. The flattening process simplifies the PDF file and may make it smaller as well. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) **Uses types:** [`FlattenerColorCompression`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/FlattenerColorCompression.md), [`FlattenerGrayCompression`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/FlattenerGrayCompression.md), [`FlattenerMonoCompression`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/FlattenerMonoCompression.md), [`FlattenerQualitySetting`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/FlattenerQualitySetting.md) ## Constructors ### FlattenTransparencyParams ```csharp Datalogics.PDFL.FlattenTransparencyParams.FlattenTransparencyParams() ``` *constructor* Set up default parameters for flattening transparency. Defaults: UseTextOutlines = false, ConvertStrokesToOutlines = true, ClipComplexRegions = false, InternalDPI = 800, ExternalDPI = 200, PreserveOverprint = true, Quality = 100. ### FlattenTransparencyParams ```csharp Datalogics.PDFL.FlattenTransparencyParams.FlattenTransparencyParams(bool UseTextOutlines, bool ConvertStrokesToOutlines, bool ClipComplexRegions, int InternalDPI, int ExternalDPI, bool PreserveOverprint, int Quality) ``` *constructor* **Parameters** - `UseTextOutlines` (`bool`): If true, output text outlines instead of native text. - `ConvertStrokesToOutlines` (`bool`): If true, convert strokes to outlines. - `ClipComplexRegions` (`bool`): If true, ensure that boundaries between vector and rasterized artwork fall along object paths. - `InternalDPI` (`int`): Resolution for flattening the interior of an atomic region. Range is 1 to 9600. - `ExternalDPI` (`int`): Resolution for flattening edges of atomic regions. Range is 1 to 1200. - `PreserveOverprint` (`bool`): If true, attempt to preserve overprint. - `Quality` (`int`): The percentage of vector information that is to be preserved. Lower values will cause higher rasterization of vectors. Range is 0 to 100. Set up parameters for flattening transparency. ## Properties ### ClipComplexRegions ```csharp bool Datalogics.PDFL.FlattenTransparencyParams.ClipComplexRegions { get; set; } ``` If true, ensure that boundaries between vector and rasterized artwork fall along object paths. ### ColorCompressionScheme ```csharp FlattenerColorCompression Datalogics.PDFL.FlattenTransparencyParams.ColorCompressionScheme { get; set; } ``` The compression scheme used for flattened color images. Default to JPEGCompression. ### ColorImageQuality ```csharp FlattenerQualitySetting Datalogics.PDFL.FlattenTransparencyParams.ColorImageQuality { get; set; } ``` Quality Setting for Flattened JPEG and JPEG2000 colored Images. This is valid only if the value of ColorCompressionScheme is equal to JPEGCompression or JPEG2000Compression Default value: High ### ConvertStrokesToOutlines ```csharp bool Datalogics.PDFL.FlattenTransparencyParams.ConvertStrokesToOutlines { get; set; } ``` If true, convert strokes to outlines. ### ExternalDPI ```csharp int Datalogics.PDFL.FlattenTransparencyParams.ExternalDPI { get; set; } ``` Resolution for flattening edges of atomic regions. Range is 1 to 1200. ### GrayCompressionScheme ```csharp FlattenerGrayCompression Datalogics.PDFL.FlattenTransparencyParams.GrayCompressionScheme { get; set; } ``` The compression scheme used for flattened gray images. Default to GrayJPEGCompression. ### GrayImageQuality ```csharp FlattenerQualitySetting Datalogics.PDFL.FlattenTransparencyParams.GrayImageQuality { get; set; } ``` Quality Setting for Flattened JPEG and JPEG2000 gray Images. This is valid only if the value of GrayCompressionScheme is equal to GrayJPEGCompression or GrayJPEG2000Compression Default value: High ### InternalDPI ```csharp int Datalogics.PDFL.FlattenTransparencyParams.InternalDPI { get; set; } ``` Resolution for flattening the interior of an atomic region. Range is 1 to 9600. ### MaxPageFlatteningTime ```csharp int Datalogics.PDFL.FlattenTransparencyParams.MaxPageFlatteningTime { get; set; } ``` The maximum allowed time that will be spent flattening a single page. A value less than zero will disable the time limit. A value equal to 0 (default) will set the limit to 120 seconds. A value greater than 0 will set the allowed limit (in seconds). Any value less than 60 seconds will be increased to 60 seconds. ### MonoCompressionScheme ```csharp FlattenerMonoCompression Datalogics.PDFL.FlattenTransparencyParams.MonoCompressionScheme { get; set; } ``` The compression scheme used for flattened monochrome images. Default to MonoCCITTGroup4Compression. ### PreserveOverprint ```csharp bool Datalogics.PDFL.FlattenTransparencyParams.PreserveOverprint { get; set; } ``` If true, attempt to preserve overprint. ### ProfileDescription ```csharp string Datalogics.PDFL.FlattenTransparencyParams.ProfileDescription { get; set; } ``` The Page Level Transparency Blending ColorSpace Profile Description. ### Quality ```csharp int Datalogics.PDFL.FlattenTransparencyParams.Quality { get; set; } ``` The percentage of vector information that is to be preserved. Lower values will cause higher rasterization of vectors. Range is 0 to 100. ### UseTextOutlines ```csharp bool Datalogics.PDFL.FlattenTransparencyParams.UseTextOutlines { get; set; } ``` If true, output text outlines instead of native text. ## Methods ### Dispose ```csharp void Datalogics.PDFL.FlattenTransparencyParams.Dispose() ``` **Returns:** `void` --- # Font Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font ```csharp class Font : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Represents a font. Defines the typeface, size, style (bold, italic), Unicode values, and other details. The Font class represents a font installed on the system. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md), [`Redaction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Redaction.md), [`Text`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Text.md), [`TextRun`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextRun.md), [`WatermarkTextParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WatermarkTextParams.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`EncodingInfo`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/EncodingInfo.md), [`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md), [`FontCreateFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/FontCreateFlags.md), [`FontFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/FontFlags.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md), [`WritingMode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WritingMode.md) ## Constructors ### Font ```csharp Datalogics.PDFL.Font.Font(string fontName) ``` *constructor* **Parameters** - `fontName` (`string`): the name of the font to find and create Find a font with the specified name, and construct a Font object from it. Otherwise, it makes a font with the default encoding (MacRomanEncoding on Macs, WinAnsiEncoding elsewhere, or for symbol fonts, their own custom encoding). There is not a way to specify another encoding for the font. When setting text, it checks to see if the text is representable in the font's encoding. If it is not, then DLE makes a "unicode font" with an Identity-H encoding and uses that to set the text. For non-Type0 fonts, this may result in two versions of a font in the output document. PDFL enforces the following requirements on fonts: • TrueTypes used as CID fonts must be embedded. • All CID fonts that are embedded must be subsetted. • CID fonts that are marked as embedded get their DoNotEmbed flag turned off (or else PDFL won't make a PDEFont from the SysFont). **Exceptions** - `BadInput`: A font with the specified name could not be found. ### Font ```csharp Datalogics.PDFL.Font.Font(string fontName, FontCreateFlags createFlags) ``` *constructor* **Parameters** - `fontName` (`string`): the name of the font to create - `createFlags` ([`FontCreateFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/FontCreateFlags.md)): flags specifying embedding and other options for the use of a font in the document Find a font with the specified name, and construct a Font object from it. Otherwise, it makes a font with the default encoding (MacRomanEncoding on Macs, WinAnsiEncoding elsewhere, or for symbol fonts, their own custom encoding). There is not a way to specify another encoding for the font. When setting text, it checks to see if the text is representable in the font's encoding. If it is not, then DLE makes a "unicode font" with an Identity-H encoding and uses that to set the text. For non-Type0 fonts, this may result in two versions of a font in the output document. PDFL enforces the following requirements on fonts: • TrueTypes used as CID fonts must be embedded. • All CID fonts that are embedded must be subsetted. • CID fonts that are marked as embedded get their DoNotEmbed flag turned off (or else PDFL won't make a PDEFont from the SysFont). **Exceptions** - `BadInput`: A font with the specified name could not be found. ### Font ```csharp Datalogics.PDFL.Font.Font(string fontName, FontCreateFlags createFlags, WritingMode wrMode) ``` *constructor* **Parameters** - `fontName` (`string`): the name of the font to create - `createFlags` ([`FontCreateFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/FontCreateFlags.md)): flags specifying embedding and other options for the use of a font in the document - `wrMode` ([`WritingMode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WritingMode.md)): determines whether text will be printed horizontally or vertically Find a font with the specified name, and construct a Font object from it. Otherwise, it makes a font with the default encoding (MacRomanEncoding on Macs, WinAnsiEncoding elsewhere, or for symbol fonts, their own custom encoding). There is not a way to specify another encoding for the font. When setting text, it checks to see if the text is representable in the font's encoding. If it is not, then DLE makes a "unicode font" with an Identity-H or Identity-V encoding and uses that to set the text. For non-Type0 fonts, this may result in two versions of a font in the output document. PDFL enforces the following requirements on fonts: • TrueTypes used as CID fonts must be embedded. • All CID fonts that are embedded must be subsetted. • CID fonts that are marked as embedded get their DoNotEmbed flag turned off (or else PDFL won't make a PDEFont from the SysFont). **Exceptions** - `BadInput`: A font with the specified name could not be found. ## Properties ### Ascent ```csharp double Datalogics.PDFL.Font.Ascent { get; } ``` the Ascent value from the font descriptor. This is the maximum height above the baseline reached by glyphs in this font, excluding the height of glyphs for accented characters. ### AvgWidth ```csharp double Datalogics.PDFL.Font.AvgWidth { get; } ``` the AvgWidth value from the font descriptor. This is the average width of glyphs in the font, or 0 if the value is not defined in the font descriptor. ### BBox ```csharp Rect Datalogics.PDFL.Font.BBox { get; } ``` The Bounding Box rectangle of the font. ### CapHeight ```csharp double Datalogics.PDFL.Font.CapHeight { get; } ``` the CapHeight value from the font descriptor. This is the vertical coordinate of the top of flat capital letters, measured from the baseline, or 0 if the value is not defined in the font descriptor. ### CidFontType ```csharp string Datalogics.PDFL.Font.CidFontType { get; } ``` Get the CID font type of the font. ### Descent ```csharp double Datalogics.PDFL.Font.Descent { get; } ``` the Descent value from the font descriptor. This is the maximum depth below the baseline reached by glyphs in this font. The value is a negative number. ### Embedded ```csharp bool Datalogics.PDFL.Font.Embedded { get; } ``` Tests whether the font is embedded in the document it was created for. ### Encoding ```csharp string Datalogics.PDFL.Font.Encoding { get; } ``` Return the encoding of the font. For a font created from a system font by name, this is the encoding PDFL gives the font when it is written to a document: WinAnsiEncoding on Windows and Linux, MacRomanEncoding on macOS, or Identity-H/V for a Type0 font. Symbolic fonts (Symbol, ZapfDingbats, Wingdings) use their own built-in encoding and return an empty string. ### EncodingInfo ```csharp EncodingInfo Datalogics.PDFL.Font.EncodingInfo { get; } ``` Get the populated CEncodingInfo object. ### Flags ```csharp FontFlags Datalogics.PDFL.Font.Flags { get; } ``` Get the font flags for a font. ### FontList ```csharp static System.Collections.Generic.IList Datalogics.PDFL.Font.FontList { get; } ``` *static* ### FullName ```csharp string Datalogics.PDFL.Font.FullName { get; } ``` Get the Full Name of the font. ### GlyphWidths ```csharp System.Collections.Generic.IList Datalogics.PDFL.Font.GlyphWidths { get; } ``` Retrieve the glyph width table for the font's single-byte encoding. Returns the 256-entry glyph advance table in character-space units (1000 units per em). For the user-space width of character code `c` at font sizes:`widths[c] * s / 1000.0`. The returned vector always has 256 entries; positions outside the font's defined encoding are filled with whatever advance the font reports for unmapped codes (typically zero or the missing-glyph advance). This API is therefore only meaningful for simple single-byte fonts — Type 1, TrueType with a simple encoding, etc. CID / Type 0 fonts need per-glyph measurement via MeasureTextWidth instead. ### ItalicAngle ```csharp double Datalogics.PDFL.Font.ItalicAngle { get; } ``` the ItalicAngle value from the font descriptor. This is the angle, expressed in degrees counterclockwise from the vertical, of the dominant vertical strokes of the font, defined in the font descriptor. ### Leading ```csharp double Datalogics.PDFL.Font.Leading { get; } ``` the Leading value from the font descriptor. This is the spacing between baselines of consecutive lines of text, or 0 if the value is not defined in the font descriptor. ### MaxWidth ```csharp double Datalogics.PDFL.Font.MaxWidth { get; } ``` the MaxWidth value from the font descriptor. This is the maximum glyph width present in the font, or 0 if the value is not defined in the font descriptor. ### MissingWidth ```csharp double Datalogics.PDFL.Font.MissingWidth { get; } ``` the MissingWidth value from the font descriptor. This is the width given to characters that do not have corresponding glyphs defined in the font, or 0 if the value is not defined in the font descriptor. ### Name ```csharp string Datalogics.PDFL.Font.Name { get; } ``` Get the name of the font. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Font.PDFDict { get; } ``` Retrieve the PDFDict representation of this font. ### StemH ```csharp double Datalogics.PDFL.Font.StemH { get; } ``` the StemH value from the font descriptor. This is the vertical thickness of the dominant horizontal stems of the font's glyphs, or 0 if the value is not defined in the font descriptor. ### StemV ```csharp double Datalogics.PDFL.Font.StemV { get; } ``` the StemV value from the font descriptor. This is the horizontal thickness of the dominant vertical stems of the font's glyphs, or 0 if the value is not defined in the font descriptor. ### Type ```csharp string Datalogics.PDFL.Font.Type { get; } ``` Get the type of the font. ### WritingMode ```csharp WritingMode Datalogics.PDFL.Font.WritingMode { get; } ``` Get the writing mode of the font. The writing mode of the fontwhether it will place glyphs horizontally or vertically. Text written with this font will run in the direction of the writing mode . ### XHeight ```csharp double Datalogics.PDFL.Font.XHeight { get; } ``` the XHeight value from the font descriptor. This is the vertical coordinate of the top of flat nonascending lowercase letters in fonts that have Latin characters, as measured from the baseline, or 0 if the value is not defined in the font descriptor. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Font.Dispose() ``` **Returns:** `void` ### EmbedNow ```csharp void Datalogics.PDFL.Font.EmbedNow(Document doc) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): the Document the Font is embedded into **Returns:** `void` Embeds the Font. ### FindIndexOfFirstUnrepresentableChar ```csharp uint Datalogics.PDFL.Font.FindIndexOfFirstUnrepresentableChar(string text) ``` **Parameters** - `text` (`string`): the text to check **Returns:** `uint` The index of the first character that cannot be represented in this font. Find the index of the first character that cannot be represented in this font. This will return the index of the first character in the string for which the font has no glyph. If all characters can be represented (i.e. if IsTextRepresentable() would return true), this will return the length of the string. ### IsFromDoc ```csharp bool Datalogics.PDFL.Font.IsFromDoc() ``` **Returns:** `bool` true if the font was loaded from a document, false if it was created from a system font. Determine whether this font was obtained from an existing document rather than the system. ### IsTextRepresentable ```csharp bool Datalogics.PDFL.Font.IsTextRepresentable(string text) ``` **Parameters** - `text` (`string`): the text to check **Returns:** `bool` true if all characters in the text have corresponding glyphs in this font. Is this text representable in this font? ### MeasureTextWidth ```csharp double Datalogics.PDFL.Font.MeasureTextWidth(string text, double fontSize) ``` **Parameters** - `text` (`string`): the Text to be measured - `fontSize` (`double`): the Font size to be used **Returns:** `double` The width of the text in points. Measures the width of the specified text in points, using the Font at the specified size. --- # FontCreateFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/FontCreateFlags **Namespace:** `Datalogics::PDFL` ## Description Flags for creating fonts. If you want to subset a font, set both the Embedded and Subset flags ## Values - `Embedded = 1`: Embed the font. Create an embedded font. By itself, this will not subset the font. - `Subset = 2`: Subset the font. If you want to subset a font, set both the Embedded and Subset flags. You must call Document.EmbedFonts() to actually subset the font. Both embedding and subsetting a font creates a CFF font. - `DoNotEmbed = 4`: Do not embed the font. You cannot set both this and the Subset flags. Nor can you set Embedded. - `EncodeByGID = 8`: Create a CIDFont with identity (GID) encoding. - `DeferWidths = 16`: Wait to get the widths until later (this affects Type0 fonts only). - `GIDOverride = 32`: Convert cp to gid with identity embedded. - `ToUnicode = 64`: Create a ToUnicode CMap. - `AllWidths = 128`: Supply the entire widths table (this affects Type0 fonts only). - `EmbedOpenType = 256`: Embed an OpenType style font subset, if appropriate. --- # FontFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/FontFlags **Namespace:** `Datalogics::PDFL` ## Description Bit masks describing font characteristics from the font descriptor. These flags are defined in the PDF specification and provide information about the visual style of the font. ## Values - `FixedWidth = 1`: All glyphs have the same width (monospaced font). - `Serif = 2`: Glyphs have serifs (short strokes at the ends of main strokes). - `Symbolic = 4`: Font uses a custom (non-standard) character set or encoding. - `Script = 8`: Glyphs resemble cursive handwriting. - `Standard = 32`: Font uses the Adobe standard Latin character set or a subset of it. - `Italic = 64`: Dominant vertical strokes of the font are slanted (italic style). - `AllCap = 65536`: Font contains no lowercase letters; lowercase input is mapped to uppercase glyphs. - `SmallCap = 131072`: Font contains both uppercase and small-capital glyphs for lowercase letters. - `ForceBold = 262144`: Bold glyphs are drawn with extra stroke width at small pixel sizes. --- # FontRescanFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/FontRescanFlags **Namespace:** `Datalogics::PDFL` ## Description Flags controlling which font directories to rescan after initialization. These flags can be combined with a bitwise OR to rescan multiple sources. ## Values - `FontRescan_Files = 1`: Rescan only the files defined in dirList, plus those added with PDFLAddFontDirectories. - `FontRescan_System = 2`: Rescan the system font directories. - `FontRescan_All = 3`: Rescan both user-defined and system font directories. Equivalent to FontRescan_Files | FontRescan_System. --- # Form Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form ```csharp class Form : Element ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) ## Description Represents a PDF form XObject. This is not to be confused with a PDF fillable form; a Form XObject is an object outside the page content stream. A form XObject is a way to group a number of PDF objects together, into a single container. A Form XObject can hold both text and images, and can be defined once within a PDF file and then reused multiple times in the same PDF, and across multiple pages. **Referenced by:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md), [`CircleAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CircleAnnotation.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`FreeTextAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FreeTextAnnotation.md), [`HighlightAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/HighlightAnnotation.md), [`InkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/InkAnnotation.md), [`LineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LineAnnotation.md), [`LinkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LinkAnnotation.md), [`OCREngine`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OCREngine.md), [`PolyLineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolyLineAnnotation.md), [`PolygonAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolygonAnnotation.md), [`Redaction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Redaction.md), [`SquareAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SquareAnnotation.md), [`TextMarkupAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextMarkupAnnotation.md), [`UnderlineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/UnderlineAnnotation.md) **Uses types:** [`Clip`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Clip.md), [`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md), [`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md), [`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`GraphicState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GraphicState.md), [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict.md), [`PDFStream`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFStream.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md), [`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md) ## Constructors ### Form ```csharp Datalogics.PDFL.Form.Form(Content content, Document document) ``` *constructor* **Parameters** - `content` ([`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md)): The content from which to create the form - `document` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): the document in which the image is intended to be used. Create a form with the given Content. Specifying the document optimizes data usage for this image within that document. ## Properties ### BoundingBox ```csharp Rect Datalogics.PDFL.Element.BoundingBox { get; } ``` The bounding box for this element. The bounding box is a rectangle that is guaranteed to encompass the element, but it is not guaranteed to be the smallest box that could contain the element. For example, if the element is a Path that contains an arc, the bounding box encompasses the bezier control points, and not just the curve itself. ### Clip ```csharp Clip Datalogics.PDFL.Element.Clip { get; set; } ``` Gets the current Clip for an Element. ### Content ```csharp Content Datalogics.PDFL.Form.Content { get; set; } ``` The Content contained in the form. Returns the content associated with this form XObject. ### GraphicState ```csharp GraphicState Datalogics.PDFL.Form.GraphicState { get; set; } ``` Get the graphic state of this Form. May return null if this element does not have a GraphicState. ### Matrix ```csharp Matrix Datalogics.PDFL.Element.Matrix { get; set; } ``` The transformation matrix for the element. ### OptionalContentMembershipDict ```csharp OptionalContentMembershipDict Datalogics.PDFL.Form.OptionalContentMembershipDict { get; set; } ``` The OptionalContentMembershipDict property for this Form. Setting this property will attach the Form to an OptionalContentMembershipDict; it will then be associated with the OptionalContentGroups and be subject to the VisibilityPolicy and VisibilityExpression of that MembershipDict. By setting this property to null, the Form is detached from any OptionalContentMembershipDict. ### Stream ```csharp PDFStream Datalogics.PDFL.Form.Stream { get; } ``` Get the stream associated with the form. Returns the underlying PDF stream (COS object) for this form XObject. ## Methods ### Clone ```csharp Element Datalogics.PDFL.Element.Clone(ElementCloneFlags cloneFlags) ``` **Parameters** - `cloneFlags` ([`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md)): Flags that modify the cloning operation. **Returns:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) The copied element. Makes a copy of the element. Make a copy of an element to obtain a new element that has a distinct set of attributes. Note: TextRun objects may not be cloned. ### Clone ```csharp new Form Datalogics.PDFL.Form.Clone() ``` **Returns:** `new Form` The newly created form object. Creates a new form from an existing form object. Creates a copy of the Form, including the underlying Content. ### ColorConvert ```csharp Form Datalogics.PDFL.Form.ColorConvert(Document document, ColorProfile prof, RenderIntent intent, bool embed) ``` **Parameters** - `document` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document the element belongs to. - `prof` ([`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md)): The ICC ColorProfile to be applied. - `intent` ([`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md)): The ICC Rendering Intent for the ColorProfile - `embed` (`bool`): If true, embed the color space and make the objects calibrated. If it is false and the target profile is CMYK, RGB, or Gray, the colors space of the resulting objects, after conversion, will be DeviceCMYK, DeviceRGB, or DeviceGray, respectively. **Returns:** [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md) A new Form with the applied ICC ColorProfile. Applies the specified ICC ColorProfile to the objects in the form ### Dispose ```csharp void Datalogics.PDFL.Element.Dispose() ``` **Returns:** `void` ### IsCurrentlyVisible ```csharp bool Datalogics.PDFL.Form.IsCurrentlyVisible(OptionalContentContext occ) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context to use for visibility state information. **Returns:** `bool` true if the form is currently visible. Tests whether a form is visible in a given optional content context, considering the current ON-OFF states of the optional-content groups in the optional-content dictionary (OCMD) and the dictionary's visibility policy. If the form occurs more than once within the content, this method only checks the visibility of the first occurrence of the form. This method determines visibility without considering the visbility of the Content object that the form belongs to. To determine the visibility of a form while taking the Content's visibility into consideration, use the alternate version of this method. ### IsCurrentlyVisible ```csharp bool Datalogics.PDFL.Form.IsCurrentlyVisible(OptionalContentContext occ, Content content) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context to use for visibility state information. - `content` ([`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md)): The content containing the form, used to also consider the Content's own visibility. **Returns:** `bool` true if the form is currently visible. Tests whether a form is visible in a given optional content context and content. If the form occurs more than once within the content, this method only checks the visibility of the first occurrence of the form. ### MakeVisible ```csharp bool Datalogics.PDFL.Form.MakeVisible(OptionalContentContext occ, Content content) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which the form is made visible. - `content` ([`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md)): The content containing the form. **Returns:** `bool` true if the form is successfully made visible in the given context and content, false otherwise Makes a form visible in a given optional content context and content by manipulating the ON-OFF states of the optional content groups. ### Rotate ```csharp void Datalogics.PDFL.Element.Rotate(double theta) ``` **Parameters** - `theta` (`double`): The rotation angle in degrees. **Returns:** `void` Rotate an element by theta degrees counterclockwise using the matrix [ cos T sin T -sin T cos T 0 0 ]. ### Scale ```csharp void Datalogics.PDFL.Element.Scale(double sx, double sy) ``` **Parameters** - `sx` (`double`): The horizontal scale factor. - `sy` (`double`): The vertical scale factor. **Returns:** `void` Scale an element by (sx,sy) units using the matrix [ sx 0 0 sy 0 0 ]. ### Translate ```csharp void Datalogics.PDFL.Element.Translate(double tx, double ty) ``` **Parameters** - `tx` (`double`): The horizontal translation distance in user space units. - `ty` (`double`): The vertical translation distance in user space units. **Returns:** `void` Translate an element by (tx,ty) units using the matrix [ 1 0 0 1 tx ty ]. --- # FormsExtensionVersionRec Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FormsExtensionVersionRec ```csharp class FormsExtensionVersionRec : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Structure to hold the version number retrieved by GetFormsExtensionVersion() ## Constructors ### FormsExtensionVersionRec ```csharp Datalogics.PDFL.FormsExtensionVersionRec.FormsExtensionVersionRec() ``` *constructor* Structure to hold the version number retrieved by GetFormsExtensionVersion() ## Properties ### majorVersion ```csharp int Datalogics.PDFL.FormsExtensionVersionRec.majorVersion { get; set; } ``` ### minorVersion ```csharp int Datalogics.PDFL.FormsExtensionVersionRec.minorVersion { get; set; } ``` ### releaseVersion ```csharp int Datalogics.PDFL.FormsExtensionVersionRec.releaseVersion { get; set; } ``` ### subVersion ```csharp int Datalogics.PDFL.FormsExtensionVersionRec.subVersion { get; set; } ``` ## Methods ### Dispose ```csharp void Datalogics.PDFL.FormsExtensionVersionRec.Dispose() ``` **Returns:** `void` --- # FreeTextAnnotation Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FreeTextAnnotation ```csharp class FreeTextAnnotation : Annotation ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md) ## Description The free text annotation allows a user to place text directly on a PDF page. An ordinary text annotation appears in a pop up window, and is attached to an icon; it represents a note added to a PDF file, and can be opened for viewing, or closed. But a free text annotation always appears open on the page. A free text annotation can be included anywhere in a PDF file by specifying the location and the CallOutLine points. **Uses types:** [`AnnotationFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AnnotationFlags.md), [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`HorizontalAlignment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/HorizontalAlignment.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### FreeTextAnnotation ```csharp Datalogics.PDFL.FreeTextAnnotation.FreeTextAnnotation(Page page, Rect initialRect, string defaultAppearance) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the FreeTextAnnotation is added. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the annotation's bounds, specified in user space coordinates. - `defaultAppearance` (`string`): The default appearance string to be used in formatting the text. Create a new FreeTextAnnotation at the end of a page's annotation array. To create a FreeTextAnnotation and place it elsewhere in the page's annotation array, use the version of the constructor that takes an array position. ### FreeTextAnnotation ```csharp Datalogics.PDFL.FreeTextAnnotation.FreeTextAnnotation(Page page, Rect initialRect, string defaultAppearance, int addAfter) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the annotation is added. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the annotation's bounds, specified in user space coordinates. - `defaultAppearance` (`string`): The default appearance string to be used in formatting the text. - `addAfter` (`int`): Where to add the annotation in the page's annotation array. To add the annotation to the end of the array, pass a value of -2 or use the alternate version of this constructor that does not take an index (this is generally what you should do unless you have a need to place the annotation at a special location in the array). Passing a value of -1 adds the annotation to the beginning of the array. Passing other negative values produces undefined results. Create a new FreeTextAnnotation at a specific index in the page's annotation array. ## Properties ### AnnotationFeatureLevel ```csharp double Datalogics.PDFL.Annotation.AnnotationFeatureLevel { get; set; } ``` The minimum PDF version necessary to support the features used in this annotation. ### BorderStyle ```csharp string Datalogics.PDFL.FreeTextAnnotation.BorderStyle { get; set; } ``` ### BorderStyleDashPattern ```csharp System.Collections.Generic.IList Datalogics.PDFL.FreeTextAnnotation.BorderStyleDashPattern { get; set; } ``` ### BorderStyleWidth ```csharp double Datalogics.PDFL.FreeTextAnnotation.BorderStyleWidth { get; set; } ``` ### Color ```csharp Color Datalogics.PDFL.FreeTextAnnotation.Color { get; set; } ``` (Deprecated, function may be removed in future, use GetInteriorColor instead) The color of the annotation. This method the same to the GetInteriorColor method. ### Contents ```csharp string Datalogics.PDFL.Annotation.Contents { get; set; } ``` The text contents of the annotation. 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. ### DefaultAppearance ```csharp string Datalogics.PDFL.FreeTextAnnotation.DefaultAppearance { get; set; } ``` The default appearance string to be used in formatting the text. ### Flags ```csharp AnnotationFlags Datalogics.PDFL.Annotation.Flags { get; set; } ``` The flags for the annotation. ### FontFace ```csharp string Datalogics.PDFL.FreeTextAnnotation.FontFace { get; set; } ``` Get Font face for the text ### FontSize ```csharp double Datalogics.PDFL.FreeTextAnnotation.FontSize { get; set; } ``` Get font size for the text; ### InteriorColor ```csharp Color Datalogics.PDFL.Annotation.InteriorColor { get; set; } ``` The interior color with which to fill the annotation's rectangle or circle. The color of the border itself can be retrieved from Annotation.Color. ### NormalAppearance ```csharp Form Datalogics.PDFL.Annotation.NormalAppearance { get; set; } ``` The normal appearance of the annotation, represented as a Form XObject. ### Opacity ```csharp double Datalogics.PDFL.Annotation.Opacity { get; set; } ``` The constant opacity value used in painting a Markup annotation. Opacity is a range from 0.0 (fully transparent) to 1.0 (fully opaque). ### OptionalContentMembershipDict ```csharp OptionalContentMembershipDict Datalogics.PDFL.Annotation.OptionalContentMembershipDict { get; set; } ``` The OptionalContentMembershipDict property for this Annotation. Setting this property will attach the Annotation to an OptionalContentMembershipDict; it will then be associated with the OptionalContentGroups and be subject to the VisibilityPolicy and VisibilityExpression of that MembershipDict. By setting this property to null, the Annotation is detached from any OptionalContentMembershipDict. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Annotation.PDFDict { get; } ``` The underlying PDF dictionary for this annotation. Retrieves the PDFDict representation of this annotation object. ### Quadding ```csharp HorizontalAlignment Datalogics.PDFL.FreeTextAnnotation.Quadding { get; set; } ``` A code specifiying the form of quadding (justification) to be used in displaying the annotation's text. ### Rect ```csharp Rect Datalogics.PDFL.Annotation.Rect { get; set; } ``` The size and location of the annotation on its page. ### Subtype ```csharp string Datalogics.PDFL.Annotation.Subtype { get; } ``` The annotation's subtype. ### TextColor ```csharp Color Datalogics.PDFL.FreeTextAnnotation.TextColor { get; set; } ``` The text color which used for drawing text ### Title ```csharp string Datalogics.PDFL.Annotation.Title { get; set; } ``` The title of the annotation. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Annotation.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Annotation.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### GenerateAppearance ```csharp override Form Datalogics.PDFL.FreeTextAnnotation.GenerateAppearance() ``` **Returns:** `override Form` A new Form containing the generated appearance, or null if the appearance could not be generated (for example, due to an invalid border style). Generate a new appearance stream with the current annotation properties. The resulting Form can then be used to set the annotation's appearance, such as by calling SetNormalAppearance. ### HasRichTextData ```csharp bool Datalogics.PDFL.Annotation.HasRichTextData() ``` **Returns:** `bool` true if the annotation contains Rich Text String content. Checks the annotation for Rich Text String content (PDFReference 1.7 Section 8.6.2). Annotations that contain Rich Text String content and do not have a normal appearance set will not be visible when rendering the page. ### IsCurrentlyVisible ```csharp bool Datalogics.PDFL.Annotation.IsCurrentlyVisible(OptionalContentContext occ) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which to check visibility. **Returns:** `bool` true if the annotation is currently visible. Tests whether an annotation is visible in a given optional content context, considering the current ON-OFF states of the optional-content groups in the optional-content dictionary (OCMD) and the dictionary's visibility policy. If the annotation occurs more than once within the content, this method only checks the visibility of the first occurrence of the annotation. This method determines visibility without considering the visbility of the Content object that the annotation belongs to. To determine the visibility of an annotation while taking the Content's visibility into consideration, use the alternate version of this method. ### ToString ```csharp override string Datalogics.PDFL.Annotation.ToString() ``` **Returns:** `override string` A string describing this annotation, including its type and rectangle. Returns a string representation of this annotation. --- # Function Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function ```csharp class Function : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` **Derived classes:** [`ExponentialFunction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ExponentialFunction.md), [`NamedFunction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NamedFunction.md), [`PostScriptCalculatorFunction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PostScriptCalculatorFunction.md) ## Description A function is a process. A function takes input values and manipulates them to create output values. **Referenced by:** [`AxialShadingPattern`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/AxialShadingPattern.md), [`DeviceNColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DeviceNColorSpace.md), [`ExponentialFunction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ExponentialFunction.md), [`ExtendedGraphicState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ExtendedGraphicState.md), [`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md), [`NamedFunction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NamedFunction.md), [`PostScriptCalculatorFunction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PostScriptCalculatorFunction.md), [`SeparationColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md) **Uses types:** [`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md) ## Properties ### Default ```csharp static Function Datalogics.PDFL.Function.Default { get; } ``` *static* Gets the Default named function. A Function representing the Default named function. ### Domain ```csharp System.Collections.Generic.IList Datalogics.PDFL.Function.Domain { get; set; } ``` The domain of the function. Contains 2 * m elements, where m is the number of inputs to the function. Each successive pair of elements gives the minimum and maximum values for one of the inputs. Input values to the function are clamped to these minimum and maximum values. ### Identity ```csharp static Function Datalogics.PDFL.Function.Identity { get; } ``` *static* Gets the Identity named function. A Function representing the Identity named function, which returns its input values unchanged. ### NInputs ```csharp int Datalogics.PDFL.Function.NInputs { get; } ``` The number of inputs to the function. ### NOutputs ```csharp int Datalogics.PDFL.Function.NOutputs { get; } ``` The number of outputs from the function. ### Range ```csharp System.Collections.Generic.IList Datalogics.PDFL.Function.Range { get; set; } ``` The range of the function. Contains 2 * n elements, where n is the number of outputs from the function. Each successive pair of elements gives the minimum and maximum values for one of the outputs. Output values from the function are clamped to these minimum and maximum values. ## Methods ### Apply ```csharp virtual System.Collections.Generic.IList< System.Double > Datalogics.PDFL.Function.Apply(System.Collections.Generic.IList< System.Double > args) ``` **Parameters** - `args` (`System.Collections.Generic.IList< System.Double >`): input values for the function. The number of input values must agree with the number of inputs the function takes. **Returns:** `System.Collections.Generic.IList< System.Double >` a list of the result values from the function Apply the function to supplied input values ### Dispose ```csharp void Datalogics.PDFL.Function.Dispose() ``` **Returns:** `void` ### ToString ```csharp override string Datalogics.PDFL.Function.ToString() ``` **Returns:** `override string` A string representation of the function. Convert the function to a displayable string. ### operator!= ```csharp static bool Datalogics.PDFL.Function.operator!=(Function a, Function b) ``` *static* **Parameters** - `a` ([`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): The first Function to compare. - `b` ([`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): The second Function to compare. **Returns:** `bool` true if the two Functions are not equal; otherwise, false. Tests two Function objects for inequality. ### operator== ```csharp static bool Datalogics.PDFL.Function.operator==(Function a, Function b) ``` *static* **Parameters** - `a` ([`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): The first Function to compare. - `b` ([`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): The second Function to compare. **Returns:** `bool` true if the two Functions are equal; otherwise, false. Tests two Function objects for equality. --- # GoToAction Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GoToAction ```csharp class GoToAction : Action ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Action`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Action.md) ## Description A go-to action can be executed in a PDF document. A go-to action includes a hyperlink that, when clicked, takes the reader to a different place within the same document. The action is linked to a bookmark within the document. A remote go-to action includes a hyperlink that takes the reader to a destination in a separate document. **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`ViewDestination`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ViewDestination.md) ## Constructors ### GoToAction ```csharp Datalogics.PDFL.GoToAction.GoToAction(Document doc, string namedDestination) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): Document in which the action is created. - `namedDestination` (`string`): The destination name to store in the action's /D entry. Construct a GoTo action that refers to a named destination. The named destination is not resolved at construction time; the viewer looks it up in the document's /Names/Dests name tree (or /Dests dict) when the action fires. ### GoToAction ```csharp Datalogics.PDFL.GoToAction.GoToAction(ViewDestination dest) ``` *constructor* **Parameters** - `dest` ([`ViewDestination`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ViewDestination.md)): The ViewDestination contained in this class. General constructor ## Properties ### Destination ```csharp ViewDestination Datalogics.PDFL.GoToAction.Destination { get; set; } ``` The ViewDestination that this go-to action navigates to. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Action.PDFDict { get; } ``` Retrieve the PDFObject representation of this object. ### Subtype ```csharp string Datalogics.PDFL.Action.Subtype { get; } ``` The action's subtype. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Action.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Action.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.Action.ToString() ``` **Returns:** `override string` A string describing this Action. Returns a string representation of this Action. The string includes the action's subtype. --- # GraphicState Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GraphicState ```csharp class GraphicState : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description The graphic state is an internal data structure in a PDF file. The graphics state holds the parameters that describe graphics within that file. These parameters define how individual graphics are presented on the page, including layers and transparencies. **Referenced by:** [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md), [`Path`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Path.md), [`Shading`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Shading.md), [`Text`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Text.md), [`TextRun`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextRun.md) **Uses types:** [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`ExtendedGraphicState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ExtendedGraphicState.md), [`LineCap`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/LineCap.md), [`LineJoin`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/LineJoin.md), [`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md) ## Constructors ### GraphicState ```csharp Datalogics.PDFL.GraphicState.GraphicState() ``` *constructor* Create a new default GraphicState. ## Properties ### DashPattern ```csharp System.Collections.Generic.IList Datalogics.PDFL.GraphicState.DashPattern { get; set; } ``` The line DashPattern controls the pattern of dashes and gaps used to stroke paths. It is specified by a dash phase and then a series of elements of a DashPattern list. The DashPattern's members are numbers that specify the lengths of alternating dashes and gaps; the numbers must be nonnegative and not all zero. The dash phase specifies the distance into the dash pattern at which to start the dash. The elements of both the DashPattern List and the dash phase are expressed in user space units. This retrieves the DashPattern used by the Pattern list current graphic state. ### ExtendedGraphicState ```csharp ExtendedGraphicState Datalogics.PDFL.GraphicState.ExtendedGraphicState { get; set; } ``` The ExtendedGraphicState associated with this GraphicState. The ExtendedGraphicState can contain additional parameters such as transparency, blend mode, and overprint settings that are not part of the basic GraphicState. ### FillColor ```csharp Color Datalogics.PDFL.GraphicState.FillColor { get; set; } ``` The color used for filling operations in the current GraphicState. ### LineCap ```csharp LineCap Datalogics.PDFL.GraphicState.LineCap { get; set; } ``` The line cap style used by the current GraphicState, specifying the shape at the ends of open subpaths when stroked. ### LineFlatness ```csharp double Datalogics.PDFL.GraphicState.LineFlatness { get; set; } ``` The line flatness tolerance in the current GraphicState, corresponding to the i operator. Default is 1.0. Flatness controls the maximum distance (in device pixels) between a curve and the flattened line segments that approximate it. ### LineJoin ```csharp LineJoin Datalogics.PDFL.GraphicState.LineJoin { get; set; } ``` The line join style used by the current GraphicState, specifying the shape at the corners where consecutive segments of a path connect at an angle. ### MiterLimit ```csharp double Datalogics.PDFL.GraphicState.MiterLimit { get; set; } ``` The miter limit for line joins in the current GraphicState, corresponding to the M operator. Default is 10.0. When two line segments meet at a sharp angle and mitered joins have been specified, the miter limit controls when the join is beveled instead. ### RenderIntent ```csharp RenderIntent Datalogics.PDFL.GraphicState.RenderIntent { get; set; } ``` The color rendering intent for the current GraphicState, corresponding to the Intent key in the image dictionary. The default is RelColorimetric. ### StrokeColor ```csharp Color Datalogics.PDFL.GraphicState.StrokeColor { get; set; } ``` The color used for stroking operations in the current GraphicState. ### Width ```csharp double Datalogics.PDFL.GraphicState.Width { get; set; } ``` The line width used for stroking operations by the current GraphicState, in user space units. ## Methods ### Dispose ```csharp void Datalogics.PDFL.GraphicState.Dispose() ``` **Returns:** `void` --- # Group Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Group ```csharp class Group : Element ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) ## Description A set of elements to be used within a PDF document. A Group represents objects in a content object, but it resides in memory. Therefore the group has no state and is not represented in any way in a PDF content stream. When used in a Clip, a group is used to associate Text objects into a single clipping object. **Referenced by:** [`Group`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Group.md) **Uses types:** [`Clip`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Clip.md), [`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md), [`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md), [`Group`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Group.md), [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md), [`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md) ## Constructors ### Group ```csharp Datalogics.PDFL.Group.Group() ``` *constructor* Create a new Group. ### Group ```csharp Datalogics.PDFL.Group.Group(Content content) ``` *constructor* **Parameters** - `content` ([`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md)): The new Content of the group. Create a Group with the given Content. ## Properties ### BoundingBox ```csharp Rect Datalogics.PDFL.Element.BoundingBox { get; } ``` The bounding box for this element. The bounding box is a rectangle that is guaranteed to encompass the element, but it is not guaranteed to be the smallest box that could contain the element. For example, if the element is a Path that contains an arc, the bounding box encompasses the bezier control points, and not just the curve itself. ### Clip ```csharp Clip Datalogics.PDFL.Element.Clip { get; set; } ``` Gets the current Clip for an Element. ### Content ```csharp Content Datalogics.PDFL.Group.Content { get; set; } ``` Obtain the content of a Group. ### Matrix ```csharp Matrix Datalogics.PDFL.Element.Matrix { get; set; } ``` The transformation matrix for the element. ## Methods ### Clone ```csharp new Group Datalogics.PDFL.Group.Clone() ``` **Returns:** `new Group` The copied group. Makes a copy of the group. Make a copy of an group to obtain a new group that has a distinct set of attributes. ### Clone ```csharp new Group Datalogics.PDFL.Group.Clone(ElementCloneFlags cloneFlags) ``` **Parameters** - `cloneFlags` ([`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md)): Flags that modify the cloning operation. **Returns:** `new Group` The copied group. Makes a copy of the group. Make a copy of an group to obtain a new group that has a distinct set of attributes. ### ColorConvert ```csharp Group Datalogics.PDFL.Group.ColorConvert(Document document, ColorProfile prof, RenderIntent intent, bool embed) ``` **Parameters** - `document` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document the element belongs to. - `prof` ([`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md)): The ICC ColorProfile to be applied. - `intent` ([`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md)): The ICC Rendering Intent for the ColorProfile - `embed` (`bool`): If true, embed the color space and make the object calibrated. If it is false and the target profile is CMYK, RGB, or Gray, the colors space of the resulting objects, after conversion, will be DeviceCMYK, DeviceRGB, or DeviceGray, respectively. **Returns:** [`Group`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Group.md) A new Group object with the applied ICC ColorProfile. Applies the specified ICC ColorProfile to the elements in the Group object ### Dispose ```csharp void Datalogics.PDFL.Element.Dispose() ``` **Returns:** `void` ### Rotate ```csharp void Datalogics.PDFL.Element.Rotate(double theta) ``` **Parameters** - `theta` (`double`): The rotation angle in degrees. **Returns:** `void` Rotate an element by theta degrees counterclockwise using the matrix [ cos T sin T -sin T cos T 0 0 ]. ### Scale ```csharp void Datalogics.PDFL.Element.Scale(double sx, double sy) ``` **Parameters** - `sx` (`double`): The horizontal scale factor. - `sy` (`double`): The vertical scale factor. **Returns:** `void` Scale an element by (sx,sy) units using the matrix [ sx 0 0 sy 0 0 ]. ### Translate ```csharp void Datalogics.PDFL.Element.Translate(double tx, double ty) ``` **Parameters** - `tx` (`double`): The horizontal translation distance in user space units. - `ty` (`double`): The vertical translation distance in user space units. **Returns:** `void` Translate an element by (tx,ty) units using the matrix [ 1 0 0 1 tx ty ]. --- # HighlightAnnotation Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/HighlightAnnotation ```csharp class HighlightAnnotation : TextMarkupAnnotation ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`TextMarkupAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextMarkupAnnotation.md) ## Description Allows the user to highlight text appearing on a PDF page. The annotated text is still readable on the PDF, but highlighted in yellow. **Uses types:** [`AnnotationFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AnnotationFlags.md), [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`Quad`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### HighlightAnnotation ```csharp Datalogics.PDFL.HighlightAnnotation.HighlightAnnotation(Page page, int addAfter, System.Collections.Generic.IList< Quad > quadList) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the HighlightAnnotation is added. - `addAfter` (`int`): Where to add the annotation in the page's annotation array. - `quadList` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A list of quads to highlight. Each quad encompasses a word or group of contiguous words in the text underlying the annotation. Create a new HighlightAnnotation at a specific index in the page's annotation array. To add the annotation to the end of the array, pass a value of -2 or use the alternate version of this constructor that does not take an index (this is generally what you should do unless you have a need to place the annotation at a special location in the array). Passing a value of -1 adds the annotation to the beginning of the array. Passing other negative values produces undefined results. ### HighlightAnnotation ```csharp Datalogics.PDFL.HighlightAnnotation.HighlightAnnotation(Page page, System.Collections.Generic.IList< Quad > quadList) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the HighlightAnnotation is added. - `quadList` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A list of quads to highlight. Each quad encompasses a word or group of contiguous words in the text underlying the annotation. Create a new HighlightAnnotation at the end of a page's annotation array. To create a FreeTextAnnotation and place it elsewhere in the page's annotation array, use the version of the constructor that takes an array position. ## Properties ### AnnotationFeatureLevel ```csharp double Datalogics.PDFL.Annotation.AnnotationFeatureLevel { get; set; } ``` The minimum PDF version necessary to support the features used in this annotation. ### Color ```csharp Color Datalogics.PDFL.Annotation.Color { get; set; } ``` The color of the annotation. ### Contents ```csharp string Datalogics.PDFL.Annotation.Contents { get; set; } ``` The text contents of the annotation. 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. ### Flags ```csharp AnnotationFlags Datalogics.PDFL.Annotation.Flags { get; set; } ``` The flags for the annotation. ### InteriorColor ```csharp Color Datalogics.PDFL.Annotation.InteriorColor { get; set; } ``` The interior color with which to fill the annotation's rectangle or circle. The color of the border itself can be retrieved from Annotation.Color. ### NormalAppearance ```csharp Form Datalogics.PDFL.Annotation.NormalAppearance { get; set; } ``` The normal appearance of the annotation, represented as a Form XObject. ### Opacity ```csharp double Datalogics.PDFL.Annotation.Opacity { get; set; } ``` The constant opacity value used in painting a Markup annotation. Opacity is a range from 0.0 (fully transparent) to 1.0 (fully opaque). ### OptionalContentMembershipDict ```csharp OptionalContentMembershipDict Datalogics.PDFL.Annotation.OptionalContentMembershipDict { get; set; } ``` The OptionalContentMembershipDict property for this Annotation. Setting this property will attach the Annotation to an OptionalContentMembershipDict; it will then be associated with the OptionalContentGroups and be subject to the VisibilityPolicy and VisibilityExpression of that MembershipDict. By setting this property to null, the Annotation is detached from any OptionalContentMembershipDict. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Annotation.PDFDict { get; } ``` The underlying PDF dictionary for this annotation. Retrieves the PDFDict representation of this annotation object. ### Quads ```csharp System.Collections.Generic.IList Datalogics.PDFL.TextMarkupAnnotation.Quads { get; set; } ``` A list of quads to mark. Each quad encompasses a word or group of contiguous words in the text underlying the annotation. ### Rect ```csharp Rect Datalogics.PDFL.Annotation.Rect { get; set; } ``` The size and location of the annotation on its page. ### Subtype ```csharp string Datalogics.PDFL.Annotation.Subtype { get; } ``` The annotation's subtype. ### Title ```csharp string Datalogics.PDFL.Annotation.Title { get; set; } ``` The title of the annotation. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Annotation.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Annotation.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### GenerateAppearance ```csharp override Form Datalogics.PDFL.HighlightAnnotation.GenerateAppearance() ``` **Returns:** `override Form` A new Form object representing the highlight appearance. The caller takes ownership of the returned object. Generate a new appearance stream for this highlight annotation. Creates a Form containing filled quadrilateral paths for each quad in the annotation, using the annotation's color with a Multiply blend mode. The current opacity setting is applied to the appearance if it is less than fully opaque. ### GetAnnotatedText ```csharp string Datalogics.PDFL.TextMarkupAnnotation.GetAnnotatedText(bool splitLines) ``` **Parameters** - `splitLines` (`bool`): If true, text corresponding to each quadrilateral will be separated by CRLF characters. If false, text corresponding to each quadrilateral will be separated by spaces. **Returns:** `string` The text marked by the annotation. The text that is marked by the annotation. Marked text is defined as text which falls within one or more of the quadrilaterals specified by the annotation's QuadPoints entry. If the annotation marks partial words, only those portions of the word that are bounded within the QuadPoints array will be returned. If the annotation marks partial characters, the characters that fall partially within the annotation bounds may not be returned. ### HasRichTextData ```csharp bool Datalogics.PDFL.Annotation.HasRichTextData() ``` **Returns:** `bool` true if the annotation contains Rich Text String content. Checks the annotation for Rich Text String content (PDFReference 1.7 Section 8.6.2). Annotations that contain Rich Text String content and do not have a normal appearance set will not be visible when rendering the page. ### IsCurrentlyVisible ```csharp bool Datalogics.PDFL.Annotation.IsCurrentlyVisible(OptionalContentContext occ) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which to check visibility. **Returns:** `bool` true if the annotation is currently visible. Tests whether an annotation is visible in a given optional content context, considering the current ON-OFF states of the optional-content groups in the optional-content dictionary (OCMD) and the dictionary's visibility policy. If the annotation occurs more than once within the content, this method only checks the visibility of the first occurrence of the annotation. This method determines visibility without considering the visbility of the Content object that the annotation belongs to. To determine the visibility of an annotation while taking the Content's visibility into consideration, use the alternate version of this method. ### ToString ```csharp override string Datalogics.PDFL.Annotation.ToString() ``` **Returns:** `override string` A string describing this annotation, including its type and rectangle. Returns a string representation of this annotation. --- # HighlightStyle Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/HighlightStyle **Namespace:** `Datalogics::PDFL` ## Description Specifies the visual effect used when a link annotation is activated (clicked). ## Values - `None = 0`: Do not highlight this link - `Invert = 2`: Highlight by inverting the contents of the rectangle - `Outline = 3`: Highlight by inverting the border - `Push = 4`: Display the annotation as if it were being pushed below the page surface (like a button) - `Toggle = 5`: Toggle: synonym for Push --- # HorizontalAlignment Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/HorizontalAlignment **Namespace:** `Datalogics::PDFL` ## Values - `Left = 0`: Align content to the left edge. - `Right = 2`: Align content to the right edge. - `Center = 1`: Center content horizontally. --- # ICCBasedColorSpace Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ICCBasedColorSpace ```csharp class ICCBasedColorSpace : ColorSpace ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md) ## Description Works with the ICC color space. The International Color Consortium (ICC) developed the ICC color space in 1993 to serve as a universal standard for for printing or presenting content with digital devices, and across all operating systems and platforms. The ICC color standard applies regardless the hardware or software involved, and is used to make sure that color images and text appear properly on a wide variety of platforms. **Uses types:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`PDFStream`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFStream.md) ## Constructors ### ICCBasedColorSpace ```csharp Datalogics.PDFL.ICCBasedColorSpace.ICCBasedColorSpace(PDFStream iccStream) ``` *constructor* **Parameters** - `iccStream` ([`PDFStream`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFStream.md)): stream containing the ICC profile Create an ICC-based color stream. ### ICCBasedColorSpace ```csharp Datalogics.PDFL.ICCBasedColorSpace.ICCBasedColorSpace(PDFStream iccStream, int nComps) ``` *constructor* **Parameters** - `iccStream` ([`PDFStream`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFStream.md)): stream containing the ICC profile - `nComps` (`int`): The number of components (1, 3, or 4) Create an ICC-based color stream. ## Properties ### Alternate ```csharp ColorSpace Datalogics.PDFL.ICCBasedColorSpace.Alternate { get; set; } ``` An alternate color space to be used in case the one specified in the stream data is not supported (for example, by applications designed for earlier versions of PDF). The alternate space may be any valid color space (except a Pattern color space) that has the number of components specified by N. If this entry is omitted and the application does not understand the ICC profile data, the color space used is DeviceGray, DeviceRGB, or DeviceCMYK, depending on whether the value of N is 1, 3, or 4, respectively. ### DeviceCMYK ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceCMYK { get; } ``` *static* The DeviceCMYK color space, representing cyan, magenta, yellow, and black components. ### DeviceGray ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceGray { get; } ``` *static* The DeviceGray color space, representing a single grayscale component. ### DeviceRGB ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceRGB { get; } ``` *static* The DeviceRGB color space, representing red, green, and blue components. ### DeviceRGBA ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceRGBA { get; } ``` *static* The DeviceRGBA color space, representing red, green, blue, and alpha components. ### Lab ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.Lab { get; } ``` *static* The CIE-based L*a*b* color space. ### LabA ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.LabA { get; } ``` *static* The CIE-based L*a*b* color space with an alpha component. ### Name ```csharp string Datalogics.PDFL.ColorSpace.Name { get; } ``` The name of the color space. A named color space may be named something like DeviceRGB. More complicated color spaces may have a name like Indexed or ICCBased. ### NumComponents ```csharp int Datalogics.PDFL.ColorSpace.NumComponents { get; } ``` The number of components in the color space. For example, DeviceGray has 1 component, DeviceRGB has 3, and DeviceCMYK has 4. ### PDFObject ```csharp PDFObject Datalogics.PDFL.ColorSpace.PDFObject { get; } ``` Get the PDFObject associated with the color space. This may be a PDFName, PDFDict, PDFStream, or PDFArray. ### Range ```csharp System.Collections.Generic.IList Datalogics.PDFL.ICCBasedColorSpace.Range { get; set; } ``` An array of 2 * NumComponents numbers [ min0 max0 min1 max1 ... ] specifying the minimum and maximum valid values of the corresponding color components. These values must match the information in the ICC profile. Default value: [ 0.0 1.0 0.0 1.0 ... ] ### Stream ```csharp PDFStream Datalogics.PDFL.ICCBasedColorSpace.Stream { get; } ``` The PDFStream containing the ICC-based data and other attributes. ## Methods ### Dispose ```csharp void Datalogics.PDFL.ColorSpace.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.ColorSpace.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.ColorSpace.ToString() ``` **Returns:** `override string` A string describing this ColorSpace. Convert a ColorSpace to a string representation. ### operator!= ```csharp static bool Datalogics.PDFL.ColorSpace.operator!=(ColorSpace a, ColorSpace b) ``` *static* **Parameters** - `a` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The first ColorSpace to compare. - `b` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The second ColorSpace to compare. **Returns:** `bool` true if the two ColorSpace objects are not equal; false otherwise. Test two ColorSpace objects for inequality. ### operator== ```csharp static bool Datalogics.PDFL.ColorSpace.operator==(ColorSpace a, ColorSpace b) ``` *static* **Parameters** - `a` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The first ColorSpace to compare. - `b` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The second ColorSpace to compare. **Returns:** `bool` true if the two ColorSpace objects are equal; false otherwise. Test two ColorSpace objects for equality. --- # Image Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image ```csharp class Image : Element ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) ## Description An image resource can either be an image XObject or inline image found in a page's content stream. An Image Xobject is stored separately from the graphics content stream in a PDF, and so can be used multiple times in the document, even across pages. The image is described in the /Xobject entry in the resources dictionary on the PDF page. Image size and resoultion: For images that are imported from raster image files, the design width and height are stored in the Image object's Matrix, in the A (width) and D (depth) Matrix members, when the image is imported. These are stored in PDF units. To derive the effective resolution of an image imported from a raster image file: Horizontal resolution: divide the Image Width by the Image's Matrix A member and multiply by 72 to scale to DPI (dots per inch). Vertical resolution: divide the Image Height by the Image's Matrix D member and multiply by 72 to scale to DPI (dots per inch). **Referenced by:** [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md), [`ImageCollection`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ImageCollection.md), [`OCREngine`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OCREngine.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md) **Uses types:** [`Clip`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Clip.md), [`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md), [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`CompressionCode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressionCode.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md), [`GraphicState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GraphicState.md), [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md), [`ImageData`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ImageData.md), [`ImageSaveParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ImageSaveParams.md), [`ImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ImageType.md), [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`PDFStream`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFStream.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md), [`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md) ## Constructors ### Image ```csharp Datalogics.PDFL.Image.Image(string fileName) ``` *constructor* **Parameters** - `fileName` (`string`): the filename of the image file. Create a new Image from an existing physical file. This file can be a bitmap, gif, jpeg, png, or a tiff file. An exception will be thrown if the image file is not any of the above. NOTICE on tiff files: If the tiff file is multi-paged, then the first "page" only of the file will be converted to an Image. See ImageCollection to convert each page in a multi-page tiff file to an Image. ### Image ```csharp Datalogics.PDFL.Image.Image(string fileName, Document document) ``` *constructor* **Parameters** - `fileName` (`string`): the filename of the image file. - `document` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): the document in which the image is intended to be used. Create a new Image from an existing physical file. This file can be a bitmap, gif, jpeg, png, or a tiff file. An exception will be thrown if the image file is not any of the above. Specifying the document optimizes data usage for this image within that document. NOTICE on tiff files: If the tiff file is multi-paged, then the first "page" only of the file will be converted to an Image. See ImageCollection to convert each page in a multi-page tiff file to an Image. ### Image ```csharp Datalogics.PDFL.Image.Image(System.IO.Stream stream) ``` *constructor* **Parameters** - `stream` (`System.IO.Stream`): The Stream from which to read the Image. Create an Image from a Stream. This allows an image to be read from a Stream object. The Stream must be seekable. Suitable examples are FileStream and MemoryStream. The Stream must contain image data in one of the supported file formats: TIFF, JPEG, BMP, PNG, or GIF. NOTICE on tiff files: If the tiff file is multi-paged, then the first "page" only of the file will be converted to an Image. See ImageCollection to convert each page in a multi-page tiff file to an Image. ### Image ```csharp Datalogics.PDFL.Image.Image(System.IO.Stream stream, Document document) ``` *constructor* **Parameters** - `stream` (`System.IO.Stream`): The Stream from which to read the Image. - `document` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The Document in which the Image is intended to be used. Create an Image from a Stream. This allows an image to be read from a Stream object. The Stream must be seekable. Suitable examples are FileStream and MemoryStream. The Stream must contain image data in one of the supported file formats: TIFF, JPEG, BMP, PNG, or GIF. NOTICE on tiff files: If the tiff file is multi-paged, then the first "page" only of the file will be converted to an Image. See ImageCollection to convert each page in a multi-page tiff file to an Image. Specifying the document optimizes data usage for this image within that document. ## Properties ### Bitmap ```csharp System.Drawing.Bitmap Datalogics.PDFL.Image.Bitmap { get; } ``` Return this PDF image as a System.Drawing.Bitmap. Images in Gray or RGB color spaces are returned without conversion, while images in other spaces are first converted to RGB. ### BitsPerComponent ```csharp int Datalogics.PDFL.Image.BitsPerComponent { get; } ``` The number of bits per component in the image. ### BoundingBox ```csharp Rect Datalogics.PDFL.Element.BoundingBox { get; } ``` The bounding box for this element. The bounding box is a rectangle that is guaranteed to encompass the element, but it is not guaranteed to be the smallest box that could contain the element. For example, if the element is a Path that contains an arc, the bounding box encompasses the bezier control points, and not just the curve itself. ### Clip ```csharp Clip Datalogics.PDFL.Element.Clip { get; set; } ``` Gets the current Clip for an Element. ### ColorSpace ```csharp ColorSpace Datalogics.PDFL.Image.ColorSpace { get; } ``` return the ColorSpace with which this Image was created. ### Compression ```csharp CompressionCode Datalogics.PDFL.Image.Compression { get; set; } ``` The compression filter applied to the image data. ### Data ```csharp System.Byte [] Datalogics.PDFL.Image.Data { get; } ``` The actual bytes that make up the image, exactly as they appear in the image data. ### DidWarningsOccurDuringImport ```csharp bool Datalogics.PDFL.Image.DidWarningsOccurDuringImport { get; } ``` Indicates whether warnings occurred during import of the raster image file. ### GraphicState ```csharp GraphicState Datalogics.PDFL.Image.GraphicState { get; set; } ``` The graphic state of the current element. ### Height ```csharp int Datalogics.PDFL.Image.Height { get; } ``` The height of the image in pixels. ### Intent ```csharp string Datalogics.PDFL.Image.Intent { get; set; } ``` The color rendering intent for the image. ### IsImageMask ```csharp bool Datalogics.PDFL.Image.IsImageMask { get; } ``` Indicates whether this image is an image mask. An image mask is a 1-bit-per-pixel image used to select painting in the current color rather than displaying image samples. ### LargeData ```csharp System.Collections.Generic.IList Datalogics.PDFL.Image.LargeData { get; } ``` Gets the decompressed image data from very large images. NOTE: This function is only supported in 64-bit, only if enough contiguous memory is available. The data size must exceed nearly 2GB, otherwise an exception is thrown and you would use the Data member instead to access the image data. The first members of the list returned contain a close to 2GB chunk of the data, but the last member containing the remaining data will be smaller in size. This facilitates retrieving the data in .NET and Java which have 2GB limits on object sizes. ### Matrix ```csharp Matrix Datalogics.PDFL.Element.Matrix { get; set; } ``` The transformation matrix for the element. ### NumberComponents ```csharp int Datalogics.PDFL.Image.NumberComponents { get; } ``` The number of color components in the image. ### SoftMask ```csharp Image Datalogics.PDFL.Image.SoftMask { get; set; } ``` Gets, for this image, the soft mask (also an image). ### Stream ```csharp PDFStream Datalogics.PDFL.Image.Stream { get; } ``` The PDFStream object associated with the image. ### Width ```csharp int Datalogics.PDFL.Image.Width { get; } ``` The width of the image in pixels. ## Methods ### ChangeResolution ```csharp Image Datalogics.PDFL.Image.ChangeResolution(int dpi) ``` **Parameters** - `dpi` (`int`): the new resolution **Returns:** [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md) newimage - the original image modified to the new resolution. Create a new image from an existing one modifying the resolution (dots per inch) ### Clone ```csharp new Image Datalogics.PDFL.Image.Clone() ``` **Returns:** `new Image` The copied image. Makes a copy of the image. Make a copy of an image to obtain a new image that has a distinct set of attributes. ### Clone ```csharp new Image Datalogics.PDFL.Image.Clone(ElementCloneFlags cloneFlags) ``` **Parameters** - `cloneFlags` ([`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md)): Flags that modify the cloning operation. **Returns:** `new Image` The copied image. Makes a copy of the image. Make a copy of an image to obtain a new image that has a distinct set of attributes. ### ColorConvert ```csharp Image Datalogics.PDFL.Image.ColorConvert(Document document, ColorProfile prof, RenderIntent intent, bool embed) ``` **Parameters** - `document` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document the element belongs to. - `prof` ([`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md)): The ICC ColorProfile to be applied. - `intent` ([`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md)): The ICC Rendering Intent for the ColorProfile - `embed` (`bool`): If true, embed the color space and make the object calibrated. If it is false and the target profile is CMYK, RGB, or Gray, the colors space of the resulting object, after conversion, will be DeviceCMYK, DeviceRGB, or DeviceGray, respectively. **Returns:** [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md) A new Image with the applied ICC ColorProfile. Applies the specified ICC ColorProfile to the Image ### Dispose ```csharp void Datalogics.PDFL.Element.Dispose() ``` **Returns:** `void` ### Rotate ```csharp new void Datalogics.PDFL.Image.Rotate(double angle) ``` **Parameters** - `angle` (`double`): The rotation angle in degrees, counterclockwise. **Returns:** `new void` Rotate an image on (angle) degree using the matrix [cos(a), sin(a), -sin(a), cos(a), 0, 0]. For images, this rotate is done without regard to the primary scaling of the original image. ### Save ```csharp void Datalogics.PDFL.Image.Save(string imagefilename, ImageType imageType) ``` **Parameters** - `imagefilename` (`string`): The physical image file which will be created. - `imageType` ([`ImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ImageType.md)): The IMAGETYPE used for saving the image. **Returns:** `void` Save an image into a particular file format with default parameters for saving. ### Save ```csharp void Datalogics.PDFL.Image.Save(string imagefilename, ImageType imageType, ImageSaveParams saveparams) ``` **Parameters** - `imagefilename` (`string`): The physical image file which will be created. - `imageType` ([`ImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ImageType.md)): The ImageType used for saving the image. - `saveparams` ([`ImageSaveParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ImageSaveParams.md)): The ImageSaveParams for saving the image. **Returns:** `void` Save an image into a particular file format with the given parameters for saving. ### Scale ```csharp void Datalogics.PDFL.Element.Scale(double sx, double sy) ``` **Parameters** - `sx` (`double`): The horizontal scale factor. - `sy` (`double`): The vertical scale factor. **Returns:** `void` Scale an element by (sx,sy) units using the matrix [ sx 0 0 sy 0 0 ]. ### Translate ```csharp new void Datalogics.PDFL.Image.Translate(double tx, double ty) ``` **Parameters** - `tx` (`double`): The horizontal translation distance in user space units. - `ty` (`double`): The vertical translation distance in user space units. **Returns:** `new void` Translate an image by (tx,ty) units using the matrix [ 1 0 0 1 tx ty ]. For images, this translation is done without regard to the scaling and rotation of the original image. To ensure that this translation can be done, do the translation before any further rotation or scaling. --- # ImageCollection Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ImageCollection ```csharp class ImageCollection : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description An image collection can hold multiple images, created from an image file. The full set of images in the collection can be saved to a single image file, but only as a .tif image file. For any other file type (JPG, PNG, and so on), the collection can only be saved as one image object per file. **Referenced by:** [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md), [`ImageSaveParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ImageSaveParams.md), [`ImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ImageType.md) ## Constructors ### ImageCollection ```csharp Datalogics.PDFL.ImageCollection.ImageCollection() ``` *constructor* Create an empty image collection, which can have Image objects added to it. ### ImageCollection ```csharp Datalogics.PDFL.ImageCollection.ImageCollection(Image image) ``` *constructor* **Parameters** - `image` ([`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md)): the Image object to be inserted upon creation. Create a new image collection containing the supplied Image object. ### ImageCollection ```csharp Datalogics.PDFL.ImageCollection.ImageCollection(string fileName) ``` *constructor* **Parameters** - `fileName` (`string`): The physical image file from which an image collection will be created. Create from an image file. If the file is a TIFF, then an Image object will be created for each "page" of the TIFF. For all other types, only 1 Image object will be created. ### ImageCollection ```csharp Datalogics.PDFL.ImageCollection.ImageCollection(string fileName, Document document) ``` *constructor* **Parameters** - `fileName` (`string`): The physical image file from which an image collection will be created. - `document` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): the document in which the image is intended to be used. Create from an image file. If the file is a TIFF, then an Image object will be created for each "page" of the TIFF. For all other types, only 1 Image object will be created. Specifying the document optimizes data usage for this image within that document. ### ImageCollection ```csharp Datalogics.PDFL.ImageCollection.ImageCollection(System.IO.Stream stream) ``` *constructor* **Parameters** - `stream` (`System.IO.Stream`): The Stream from which to read the ImageCollection. Create an ImageCollection from a Stream. This allows an ImageCollection to be read from a Stream object. The Stream must be seekable. Suitable examples are FileStream and MemoryStream. The Stream must contain image data in the TIFF Format. ### ImageCollection ```csharp Datalogics.PDFL.ImageCollection.ImageCollection(System.IO.Stream stream, Document document) ``` *constructor* **Parameters** - `stream` (`System.IO.Stream`): The Stream from which to read the ImageCollection. - `document` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The Document in which the ImageCollection is intended to be used. Create an ImageCollection from a Stream. This allows an ImageCollection to be read from a Stream object. The Stream must be seekable. Suitable examples are FileStream and MemoryStream. The Stream must contain image data in the TIFF format. ## Properties ### Count ```csharp int Datalogics.PDFL.ImageCollection.Count { get; } ``` Gets the number of Image objects in this collection. ## Methods ### Append ```csharp void Datalogics.PDFL.ImageCollection.Append(Image image) ``` **Parameters** - `image` ([`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md)): the Image object to be inserted. **Returns:** `void` Insert the given Image object at the end of the ImageCollection. ### Dispose ```csharp void Datalogics.PDFL.ImageCollection.Dispose() ``` **Returns:** `void` ### GetImage ```csharp Image Datalogics.PDFL.ImageCollection.GetImage(int index) ``` **Parameters** - `index` (`int`): the index of the Image to be retrieved. **Returns:** [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md) the Image object at the specified index. Retrieve the Image object at the specified index. Note that an exception will be generated if an index is given which is out of range. ### Save ```csharp void Datalogics.PDFL.ImageCollection.Save(string filename, ImageType type) ``` **Parameters** - `filename` (`string`): the file which to save the image. - `type` ([`ImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ImageType.md)): the image type to which to be saved. NOTE: The resolution of the first Image in the collection is used as the target Resolution for saving. (Support for saving multiple, different resolutions isn't available) **Returns:** `void` Save the images in the collection to the specified file and image type. Multiple images can only be save to an image type of TIFF, otherwise an exception will be thrown. ### Save ```csharp void Datalogics.PDFL.ImageCollection.Save(string filename, ImageType type, ImageSaveParams saveparams) ``` **Parameters** - `filename` (`string`): the file which to save the image. - `type` ([`ImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ImageType.md)): the image type to which to be saved. - `saveparams` ([`ImageSaveParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ImageSaveParams.md)): the ImageSaveParams parameters for customizing the image saving. NOTE: The resolution of the first Image in the collection is used as the target Resolution for saving. (Support for saving multiple, different resolutions isn't available) **Returns:** `void` Save the images in the collection to the specified file and image type. Multiple images can only be save to an image type of TIFF, otherwise an exception will be thrown. --- # ImageData Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ImageData ```csharp class ImageData : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A class representing the decompressed Image Data. **Referenced by:** [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md) ## Properties ### RawData ```csharp System.Byte [] Datalogics.PDFL.ImageData.RawData { get; } ``` Gets the raw bytes of the decompressed image data. ## Methods ### Dispose ```csharp void Datalogics.PDFL.ImageData.Dispose() ``` **Returns:** `void` --- # ImageSaveParams Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ImageSaveParams ```csharp class ImageSaveParams : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Class that defines parameters for saving an image to a graphics file. The parameters include the file type (such as PNG or JPG), compression, image quality, and gray scale. **Referenced by:** [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md), [`ImageCollection`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ImageCollection.md) **Uses types:** [`CompressionCode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressionCode.md), [`TIFFByteOrder`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/TIFFByteOrder.md) ## Constructors ### ImageSaveParams ```csharp Datalogics.PDFL.ImageSaveParams.ImageSaveParams() ``` *constructor* Default parameters for saving an image to a file. ## Properties ### Compression ```csharp CompressionCode Datalogics.PDFL.ImageSaveParams.Compression { get; set; } ``` Gets the type of compression to be used in saving the image to a file. ### DisableAlphaChannelGeneration ```csharp bool Datalogics.PDFL.ImageSaveParams.DisableAlphaChannelGeneration { get; set; } ``` Gets whether alpha channel generation is disabled for the output image. When false, RGB image data with a Mask will be combined as RGBA + Alpha Channel output (32-bit). When true, the Mask is not combined and the output is RGB (24-bit). This is only valid for TIFF and PNG output formats. ### HalftoneGrayImages ```csharp bool Datalogics.PDFL.ImageSaveParams.HalftoneGrayImages { get; set; } ``` Gets whether grayscale images are converted to halftone. When true, converts 8bpc grayscale images to 1bpc (B/W) images using a 45 degree line screen set for 106lpi at 600dpi. Note this can only be set to true for an image of ColorSpace of DeviceGray. ### JPEGQuality ```csharp int Datalogics.PDFL.ImageSaveParams.JPEGQuality { get; set; } ``` Gets the quality of a JPEG output image. ### MonochromeThreshold ```csharp byte Datalogics.PDFL.ImageSaveParams.MonochromeThreshold { get; set; } ``` Gets the threshold for determining which bits are white or black for Monochrome output. Note: this is only valid for TIF Images using G3 or G4 compression and HalftoneGrayImages must be set to false. ### RaiseExceptionIfNotUsableColor ```csharp bool Datalogics.PDFL.ImageSaveParams.RaiseExceptionIfNotUsableColor { get; set; } ``` Gets whether an exception is raised if the image color format is not natively supported. When true, an exception will be raised if the image being saved is not in a format this graphic form can save natively. When false, the image will be automatically converted into a form that can be saved natively (generally DeviceRGB using the sRGB profile). ### ReverseGray ```csharp bool Datalogics.PDFL.ImageSaveParams.ReverseGray { get; set; } ``` Gets whether the GrayScale output is reversed. Note this is only valid for an image with a DeviceGray Colorspace. ### TIFFBlackIsOne ```csharp bool Datalogics.PDFL.ImageSaveParams.TIFFBlackIsOne { get; set; } ``` Gets whether a TIFF file is photometrically reversed. Note this is only valid for a 1-bit TIFF image with a DeviceGray Colorspace. ### TIFFByteOrder ```csharp TIFFByteOrder Datalogics.PDFL.ImageSaveParams.TIFFByteOrder { get; set; } ``` Gets the byte order used within the TIFF file. This is only valid for TIFF output. ### TIFFCMYKAlpha ```csharp bool Datalogics.PDFL.ImageSaveParams.TIFFCMYKAlpha { get; set; } ``` Gets whether CMYK image data is combined with the Soft Mask in TIFF output. Note: This is only valid for CMYK image data which has a Soft Mask; the output will be 40-bit. ### WriteSeparationColorsToTIFF ```csharp bool Datalogics.PDFL.ImageSaveParams.WriteSeparationColorsToTIFF { get; set; } ``` Gets whether separation colors are written to TIFF using the Photoshop tag. When false, separation colors will be converted to their alternate color space and rendered as RGB. When true, separation colors are output using the TIFF Photoshop tag. ## Methods ### Dispose ```csharp void Datalogics.PDFL.ImageSaveParams.Dispose() ``` **Returns:** `void` --- # ImageType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ImageType **Namespace:** `Datalogics::PDFL` ## Values - `Invalid = 0`: Indicates an invalid or unrecognized image type. - `TIFF = 1`: Tagged Image File Format - `JPEG = 2`: Joint Photographic Experts Group - `BMP = 3`: Microsoft Windows Bitmap - `PNG = 4`: Portable Network Graphic - `GIF = 5`: Graphics Interchange Format --- # Inclusion Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/Inclusion **Namespace:** `Datalogics::PDFL` ## Description Specifies how to include a resource in a file. ## Values - `OncePerDocument = 0`: Include the resource only once per file. - `OnEveryPage = 1`: Include the resource on every page in the file. - `Never = 2`: Never include the resource. - `WhenNeeded = 3`: When needed. - `ByRange = 4`: Include the resource for a specified range of pages. --- # IndexedColorSpace Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/IndexedColorSpace ```csharp class IndexedColorSpace : ColorSpace ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md) ## Description Indexed color spaces are used to reduce the amount of memory used for processing images. Indexed color spaces are used when a limited number of colors are needed. Commonly, an image with an indexed color space can be one third the size of the same image with a standard color space, because the indexed image uses a smaller palette of colors. **Uses types:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Constructors ### IndexedColorSpace ```csharp Datalogics.PDFL.IndexedColorSpace.IndexedColorSpace(ColorSpace base_, int hival, System.Collections.Generic.IList< System.Int32 > lookup) ``` *constructor* **Parameters** - `base_` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)) - `hival` (`int`): an integer that specifies the maximum valid index value. In other words, the color table is to be indexed by integers in the range 0 to hival. hival can be no greater than 255. - `lookup` (`System.Collections.Generic.IList< System.Int32 >`): a list of integers in the range 0..255. There must be m * (hival + 1) values, where m is the number of components of the base color space. Create a Indexed color space. ## Properties ### Base ```csharp ColorSpace Datalogics.PDFL.IndexedColorSpace.Base { get; } ``` The base color space in which the values in the color table are to be interpreted. It can be any device or CIE-based color space or (in PDF 1.3) a Separation or DeviceN space, but not a Pattern space or another Indexed space. ### DeviceCMYK ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceCMYK { get; } ``` *static* The DeviceCMYK color space, representing cyan, magenta, yellow, and black components. ### DeviceGray ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceGray { get; } ``` *static* The DeviceGray color space, representing a single grayscale component. ### DeviceRGB ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceRGB { get; } ``` *static* The DeviceRGB color space, representing red, green, and blue components. ### DeviceRGBA ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceRGBA { get; } ``` *static* The DeviceRGBA color space, representing red, green, blue, and alpha components. ### HiVal ```csharp int Datalogics.PDFL.IndexedColorSpace.HiVal { get; } ``` an integer that specifies the maximum valid index value. In other words, the color table is to be indexed by integers in the range 0 to hival. hival can be no greater than 255. ### Lab ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.Lab { get; } ``` *static* The CIE-based L*a*b* color space. ### LabA ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.LabA { get; } ``` *static* The CIE-based L*a*b* color space with an alpha component. ### Lookup ```csharp System.Collections.Generic.IList Datalogics.PDFL.IndexedColorSpace.Lookup { get; } ``` A list of integers in the range 0..255. There must be m * (hival + 1) values, where m is the number of components of the base color space. ### Name ```csharp string Datalogics.PDFL.ColorSpace.Name { get; } ``` The name of the color space. A named color space may be named something like DeviceRGB. More complicated color spaces may have a name like Indexed or ICCBased. ### NumComponents ```csharp int Datalogics.PDFL.ColorSpace.NumComponents { get; } ``` The number of components in the color space. For example, DeviceGray has 1 component, DeviceRGB has 3, and DeviceCMYK has 4. ### PDFObject ```csharp PDFObject Datalogics.PDFL.ColorSpace.PDFObject { get; } ``` Get the PDFObject associated with the color space. This may be a PDFName, PDFDict, PDFStream, or PDFArray. ## Methods ### Dispose ```csharp void Datalogics.PDFL.ColorSpace.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.ColorSpace.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.ColorSpace.ToString() ``` **Returns:** `override string` A string describing this ColorSpace. Convert a ColorSpace to a string representation. ### operator!= ```csharp static bool Datalogics.PDFL.ColorSpace.operator!=(ColorSpace a, ColorSpace b) ``` *static* **Parameters** - `a` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The first ColorSpace to compare. - `b` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The second ColorSpace to compare. **Returns:** `bool` true if the two ColorSpace objects are not equal; false otherwise. Test two ColorSpace objects for inequality. ### operator== ```csharp static bool Datalogics.PDFL.ColorSpace.operator==(ColorSpace a, ColorSpace b) ``` *static* **Parameters** - `a` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The first ColorSpace to compare. - `b` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The second ColorSpace to compare. **Returns:** `bool` true if the two ColorSpace objects are equal; false otherwise. Test two ColorSpace objects for equality. --- # Ink Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Ink ```csharp class Ink : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description The ink object represents the color in the color space, CYMK or RGB. **Referenced by:** [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`SeparationColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md), [`SeparationPlate`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationPlate.md) **Uses types:** [`InkTypes`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/InkTypes.md), [`SeparationPreviewOptions`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SeparationPreviewOptions.md) ## Properties ### Alias ```csharp string Datalogics.PDFL.Ink.Alias { get; set; } ``` An alternate name (alias) for this colorant. ### Angle ```csharp double Datalogics.PDFL.Ink.Angle { get; set; } ``` The halftone screen angle for this ink, in degrees. ### Black ```csharp double Datalogics.PDFL.Ink.Black { get; } ``` The black component of the CMYK color swatch. ### Blue ```csharp int Datalogics.PDFL.Ink.Blue { get; } ``` The blue component of the RGB color swatch for on-screen display. ### ColorantName ```csharp string Datalogics.PDFL.Ink.ColorantName { get; set; } ``` The name of the colorant from the Separation or DeviceN color space, or the process color name. ### ColorantNameArray ```csharp System.Byte [] Datalogics.PDFL.Ink.ColorantNameArray { get; } ``` The name of the colorant as a byte array. The name of the colorant from the Separation or DeviceN color space, or the process color name. This property is suitable for retrieving the name when the ColorantName cannot be retrieved as a string. ### Cyan ```csharp double Datalogics.PDFL.Ink.Cyan { get; } ``` The cyan component of the CMYK color swatch. ### Density ```csharp double Datalogics.PDFL.Ink.Density { get; set; } ``` The neutral density of this ink. ### Frequency ```csharp double Datalogics.PDFL.Ink.Frequency { get; set; } ``` The halftone screen frequency for this ink, in lines per inch. ### Green ```csharp int Datalogics.PDFL.Ink.Green { get; } ``` The green component of the RGB color swatch for on-screen display. ### InkType ```csharp InkTypes Datalogics.PDFL.Ink.InkType { get; set; } ``` The ink type of this ink, used for trapping. ### IsProcessColor ```csharp bool Datalogics.PDFL.Ink.IsProcessColor { get; set; } ``` Whether this ink represents a process color or a spot color. True if this is a process color, false if this is a spot color. ### Magenta ```csharp double Datalogics.PDFL.Ink.Magenta { get; } ``` The magenta component of the CMYK color swatch. ### PreviewOption ```csharp SeparationPreviewOptions Datalogics.PDFL.Ink.PreviewOption { get; set; } ``` How the colorant is handled during a separation preview. ### Red ```csharp int Datalogics.PDFL.Ink.Red { get; } ``` The red component of the RGB color swatch for on-screen display. ### Yellow ```csharp double Datalogics.PDFL.Ink.Yellow { get; } ``` The yellow component of the CMYK color swatch. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Ink.Dispose() ``` **Returns:** `void` --- # InkAnnotation Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/InkAnnotation ```csharp class InkAnnotation : Annotation ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md) ## Description A type of annotation allowing a user to edit a PDF document. Ink annotations in a PDF file allow a user to work with a PDF document displayed on a screen just as if it were on paper, such as scribbling notes in the margins, or circling or underlining text. These types of annotations require a stylus or pen used on a tablet device. **Uses types:** [`AnnotationFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AnnotationFlags.md), [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### InkAnnotation ```csharp Datalogics.PDFL.InkAnnotation.InkAnnotation(Page page, Rect initialRect) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the InkAnnotation is added. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the annotation's bounds, specified in user space coordinates. Create a new InkAnnotation at the end of a page's annotation array. To create a InkAnnotation and place it elsewhere in the page's annotation array, use the version of the constructor that takes an array position. ### InkAnnotation ```csharp Datalogics.PDFL.InkAnnotation.InkAnnotation(Page page, Rect initialRect, int addAfter) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the annotation is added. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the annotation's bounds, specified in user space coordinates. - `addAfter` (`int`): Where to add the annotation in the page's annotation array. To add the annotation to the end of the array, pass a value of -2 or use the alternate version of this constructor that does not take an index (this is generally what you should do unless you have a need to place the annotation at a special location in the array). Passing a value of -1 adds the annotation to the beginning of the array. Passing other negative values produces undefined results. Create a new InkAnnotation at a specific index in the page's annotation array. ## Properties ### AnnotationFeatureLevel ```csharp double Datalogics.PDFL.Annotation.AnnotationFeatureLevel { get; set; } ``` The minimum PDF version necessary to support the features used in this annotation. ### BorderStyle ```csharp string Datalogics.PDFL.InkAnnotation.BorderStyle { get; set; } ``` The border style. Can be one of: • S - Solid • D - Dashed. The dash pattern is specified as an array (see DashPattern) • B - Beveled • I - Inset • U - Underline Other border styles may be defined in the future. Default is "S" ### BorderStyleDashPattern ```csharp System.Collections.Generic.IList Datalogics.PDFL.InkAnnotation.BorderStyleDashPattern { get; set; } ``` An array defining a pattern of dashes and gaps to be used in drawing a dashed border (border style D). The dash array is a series of numbers that specify the lengths of alternating dashes and gaps. Lengths must be nonnegative, and are expressed in user space units. Default value is [3] ### BorderStyleWidth ```csharp double Datalogics.PDFL.InkAnnotation.BorderStyleWidth { get; set; } ``` The border width in points. If this value is 0, no border is drawn. The default is 1.0. ### Color ```csharp Color Datalogics.PDFL.Annotation.Color { get; set; } ``` The color of the annotation. ### Contents ```csharp string Datalogics.PDFL.Annotation.Contents { get; set; } ``` The text contents of the annotation. 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. ### Flags ```csharp AnnotationFlags Datalogics.PDFL.Annotation.Flags { get; set; } ``` The flags for the annotation. ### InteriorColor ```csharp Color Datalogics.PDFL.Annotation.InteriorColor { get; set; } ``` The interior color with which to fill the annotation's rectangle or circle. The color of the border itself can be retrieved from Annotation.Color. ### NormalAppearance ```csharp Form Datalogics.PDFL.Annotation.NormalAppearance { get; set; } ``` The normal appearance of the annotation, represented as a Form XObject. ### NumScribbles ```csharp int Datalogics.PDFL.InkAnnotation.NumScribbles { get; } ``` The number of scribbles in the ink annotation. ### Opacity ```csharp double Datalogics.PDFL.Annotation.Opacity { get; set; } ``` The constant opacity value used in painting a Markup annotation. Opacity is a range from 0.0 (fully transparent) to 1.0 (fully opaque). ### OptionalContentMembershipDict ```csharp OptionalContentMembershipDict Datalogics.PDFL.Annotation.OptionalContentMembershipDict { get; set; } ``` The OptionalContentMembershipDict property for this Annotation. Setting this property will attach the Annotation to an OptionalContentMembershipDict; it will then be associated with the OptionalContentGroups and be subject to the VisibilityPolicy and VisibilityExpression of that MembershipDict. By setting this property to null, the Annotation is detached from any OptionalContentMembershipDict. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Annotation.PDFDict { get; } ``` The underlying PDF dictionary for this annotation. Retrieves the PDFDict representation of this annotation object. ### Rect ```csharp Rect Datalogics.PDFL.Annotation.Rect { get; set; } ``` The size and location of the annotation on its page. ### Subtype ```csharp string Datalogics.PDFL.Annotation.Subtype { get; } ``` The annotation's subtype. ### Title ```csharp string Datalogics.PDFL.Annotation.Title { get; set; } ``` The title of the annotation. ## Methods ### AddScribble ```csharp void Datalogics.PDFL.InkAnnotation.AddScribble(System.Collections.Generic.IList< Point > scribble) ``` **Parameters** - `scribble` ([`System.Collections.Generic.IList< Point >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): The array of points, in order, that define the vertices of the scribble in user space coordinates, to add to the ink annotation. **Returns:** `void` The vertices that define one of many scribbles in an ink annotation, in user space. ### Dispose ```csharp void Datalogics.PDFL.Annotation.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Annotation.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### GenerateAppearance ```csharp override Form Datalogics.PDFL.InkAnnotation.GenerateAppearance() ``` **Returns:** `override Form` A new Form representing the annotation's appearance, or NULL if the graphic state could not be configured (for example, an invalid dash array). Generate a new appearance stream with the current annotation properties. Builds the visual representation of the ink annotation from its scribbles, stroke color, and border style. The annotation's Rect is updated to match the bounding box of the content. ### GetScribble ```csharp System.Collections.Generic.IList< Point > Datalogics.PDFL.InkAnnotation.GetScribble(int index) ``` **Parameters** - `index` (`int`): The index of the scribble to get. **Returns:** [`System.Collections.Generic.IList< Point >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md) An array of points, in order, that define the indexed scribble of the ink annotation, in user space coordinates. ### HasRichTextData ```csharp bool Datalogics.PDFL.Annotation.HasRichTextData() ``` **Returns:** `bool` true if the annotation contains Rich Text String content. Checks the annotation for Rich Text String content (PDFReference 1.7 Section 8.6.2). Annotations that contain Rich Text String content and do not have a normal appearance set will not be visible when rendering the page. ### IsCurrentlyVisible ```csharp bool Datalogics.PDFL.Annotation.IsCurrentlyVisible(OptionalContentContext occ) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which to check visibility. **Returns:** `bool` true if the annotation is currently visible. Tests whether an annotation is visible in a given optional content context, considering the current ON-OFF states of the optional-content groups in the optional-content dictionary (OCMD) and the dictionary's visibility policy. If the annotation occurs more than once within the content, this method only checks the visibility of the first occurrence of the annotation. This method determines visibility without considering the visbility of the Content object that the annotation belongs to. To determine the visibility of an annotation while taking the Content's visibility into consideration, use the alternate version of this method. ### RemoveScribble ```csharp void Datalogics.PDFL.InkAnnotation.RemoveScribble(int index) ``` **Parameters** - `index` (`int`): The array of points, in order, that define the vertices of the scribble in user space coordinates, to remove from the ink annotation. **Returns:** `void` The vertices that define one of many scribbles in an ink annotation, in user space. ### ToString ```csharp override string Datalogics.PDFL.Annotation.ToString() ``` **Returns:** `override string` A string describing this annotation, including its type and rectangle. Returns a string representation of this annotation. --- # InkTypes Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/InkTypes **Namespace:** `Datalogics::PDFL` ## Description Specifies the ink type used for trapping purposes. ## Values - `Normal = 0`: Normal ink type for trapping. This ink type is trapped normally. - `Transparent = 1`: Transparent ink type for trapping. - `Opaque = 2`: Opaque ink type for trapping. This ink type is not trapped except to another opaque. - `OpaqueIgnore = 3`: Opaque Ignore ink type for trapping. This ink type is never trapped. --- # LabColorSpace Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LabColorSpace ```csharp class LabColorSpace : ColorSpace ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md) ## Description A Lab color space is a CIE-based ABC color space with two transformation stages. In this type of space, A, B, and C represent the L*, a*, and b* components of a CIE 1976 L*a*b* space. The range of the first (L*) component is always 0 to 100; the ranges of the second and third (a* and b*) components are defined by the Range. **Uses types:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Constructors ### LabColorSpace ```csharp Datalogics.PDFL.LabColorSpace.LabColorSpace(System.Collections.Generic.IList< System.Double > whitePoint) ``` *constructor* **Parameters** - `whitePoint` (`System.Collections.Generic.IList< System.Double >`): An array of three numbers specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse white point. The numbers X and Z must be positive, and Y must be equal to 1.0. Create a Lab color space. The blackPoint defaults to [0.0, 0.0, 0.0]. The range defaults to [-100 100 -100 100] ### LabColorSpace ```csharp Datalogics.PDFL.LabColorSpace.LabColorSpace(System.Collections.Generic.IList< System.Double > whitePoint, System.Collections.Generic.IList< System.Double > blackPoint, System.Collections.Generic.IList< System.Double > range) ``` *constructor* **Parameters** - `whitePoint` (`System.Collections.Generic.IList< System.Double >`): An array of three numbers specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse white point. The numbers X and Z must be positive, and Y must be equal to 1.0. - `blackPoint` (`System.Collections.Generic.IList< System.Double >`): An array of three numbers specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse black point. All three of these numbers must be non-negative. - `range` (`System.Collections.Generic.IList< System.Double >`): An array of four numbers [ amin amax bmin bmax ] specifying the range of valid values for the a* and b* (B and C) components of the color space. Create a Lab color space. ## Properties ### BlackPoint ```csharp System.Collections.Generic.IList Datalogics.PDFL.LabColorSpace.BlackPoint { get; } ``` The black point tristimulus value for this Lab color space. An array of three numbers specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse black point. All three of these numbers must be non-negative. If no black point was specified during construction, the default value [0.0, 0.0, 0.0] is returned. ### DeviceCMYK ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceCMYK { get; } ``` *static* The DeviceCMYK color space, representing cyan, magenta, yellow, and black components. ### DeviceGray ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceGray { get; } ``` *static* The DeviceGray color space, representing a single grayscale component. ### DeviceRGB ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceRGB { get; } ``` *static* The DeviceRGB color space, representing red, green, and blue components. ### DeviceRGBA ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceRGBA { get; } ``` *static* The DeviceRGBA color space, representing red, green, blue, and alpha components. ### Lab ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.Lab { get; } ``` *static* The CIE-based L*a*b* color space. ### LabA ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.LabA { get; } ``` *static* The CIE-based L*a*b* color space with an alpha component. ### Name ```csharp string Datalogics.PDFL.ColorSpace.Name { get; } ``` The name of the color space. A named color space may be named something like DeviceRGB. More complicated color spaces may have a name like Indexed or ICCBased. ### NumComponents ```csharp int Datalogics.PDFL.ColorSpace.NumComponents { get; } ``` The number of components in the color space. For example, DeviceGray has 1 component, DeviceRGB has 3, and DeviceCMYK has 4. ### PDFObject ```csharp PDFObject Datalogics.PDFL.ColorSpace.PDFObject { get; } ``` Get the PDFObject associated with the color space. This may be a PDFName, PDFDict, PDFStream, or PDFArray. ### Range ```csharp System.Collections.Generic.IList Datalogics.PDFL.LabColorSpace.Range { get; } ``` The range of valid values for the a* and b* components. An array of four numbers [ amin amax bmin bmax ] specifying the range of valid values for the a* and b* (B and C) components of the color space. If no range was specified during construction, the default value [-100, 100, -100, 100] is returned. ### WhitePoint ```csharp System.Collections.Generic.IList Datalogics.PDFL.LabColorSpace.WhitePoint { get; } ``` The white point tristimulus value for this Lab color space. An array of three numbers specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse white point. The numbers X and Z must be positive, and Y must be equal to 1.0. ## Methods ### Dispose ```csharp void Datalogics.PDFL.ColorSpace.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.ColorSpace.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.ColorSpace.ToString() ``` **Returns:** `override string` A string describing this ColorSpace. Convert a ColorSpace to a string representation. ### operator!= ```csharp static bool Datalogics.PDFL.ColorSpace.operator!=(ColorSpace a, ColorSpace b) ``` *static* **Parameters** - `a` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The first ColorSpace to compare. - `b` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The second ColorSpace to compare. **Returns:** `bool` true if the two ColorSpace objects are not equal; false otherwise. Test two ColorSpace objects for inequality. ### operator== ```csharp static bool Datalogics.PDFL.ColorSpace.operator==(ColorSpace a, ColorSpace b) ``` *static* **Parameters** - `a` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The first ColorSpace to compare. - `b` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The second ColorSpace to compare. **Returns:** `bool` true if the two ColorSpace objects are equal; false otherwise. Test two ColorSpace objects for equality. --- # Language Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/Language **Namespace:** `Datalogics::PDFL` ## Description Languages which may be selected. To find if a language is available, call IsLanguageAvailable() on the OCREngine. ## Values - `English = 0`: English. - `Dutch = 1`: Dutch; Flemish (nld). - `French = 2`: French (fra). - `German = 3`: German (deu). - `Italian = 4`: Italian (ita). - `Portuguese = 5`: Portuguese (por). - `Spanish = 6`: Spanish; Castilian (spa). - `Arabic = 7`: Arabic (ara). - `ChineseTraditional = 8`: Traditional Chinese (chi_tra). - `ChineseTraditionalVertical = 9`: Traditional Chinese, vertical (chi_tra_vert). - `ChineseSimplified = 10`: Simplified Chinese (chi_sim). - `ChineseSimplifiedVertical = 11`: Simplified Chinese, vertical (chi_sim_vert). - `Japanese = 12`: Japanese (jpn). - `JapaneseVertical = 13`: Japanese, vertical (jpn_vert). - `Korean = 14`: Korean (kor). - `KoreanVertical = 15`: Korean, vertical (kor_vert). - `Afrikaans = 16`: Afrikaans (afr). - `Amharic = 17`: Amharic (amh). - `Assamese = 18`: Assamese (asm). - `Azerbaijani = 19`: Azerbaijani (aze). - `AzerbaijaniCyrillic = 20`: Azerbaijani - Cyrillic (aze-cyrl). - `Belarusian = 21`: Belarusian (bel). - `Bengali = 22`: Bengali (ben). - `Tibetan = 23`: Tibetan (bod). - `Bosnian = 24`: Bosnian (bos). - `Breton = 25`: Breton (bre). - `Bulgarian = 26`: Bulgarian (bul). - `Catalan = 27`: Catalan; Valencian (cat). - `Corsican = 28`: Corsican (cos). - `Cebuano = 29`: Cebuano (ceb). - `Czech = 30`: Czech (ces). - `Cherokee = 31`: Cherokee (chr). - `Welsh = 32`: Welsh (cym). - `Danish = 33`: Danish (dan). - `DanishFraktur = 34`: Danish Fraktur (dan_frak) Fraktur, a set of typefaces developed in the early 16th century. - `Dzongkha = 35`: Dzongkha (dzo). - `Greek = 36`: Greek, Modern (1453-) (ell). - `EnglishMiddle = 37`: English, Middle (1100-1500) (enm). - `Esperanto = 38`: Esperanto (epo). - `MathEquationDetection = 39`: Math / equation detection module (equ). - `Estonian = 40`: Estonian (est). - `Faroese = 41`: Faroese (fao). - `Basque = 42`: Basque (eus). - `Persian = 43`: Persian (fas). - `Finnish = 44`: Finnish (fin). - `Filipino = 45`: Filipino (fil). - `GermanFraktur = 46`: German Fraktur (frk) Fraktur, a set of typefaces developed in the early 16th century. - `FrenchMiddle = 47`: French, Middle (ca. 1400-1600) (frm). - `Frisian = 48`: Frisian (fry). - `Irish = 49`: Irish (gle). - `Galician = 50`: Galacian (glg). - `ScottishGaelic = 51`: Scottish Gaelic (gla). - `GreekAncient = 52`: Greek, Ancient (to 1453) (grc). - `Gujarati = 53`: Gujarati (guj). - `Haitian = 54`: Hatian; Hatian Creole (hat). - `Hebrew = 55`: Hebrew (heb). - `Hindi = 56`: Hindi (hin). - `Croatian = 57`: Coratian (hrv). - `Hungarian = 58`: Hungarian (hun). - `Inuktitut = 59`: Inuktitut (iku). - `Indonesian = 60`: Indonesian (ind). - `Icelandic = 61`: Icelandic (isl). - `ItalianOld = 62`: Italian, old (before 1800) (ita_old). - `Javanese = 63`: Javanese (jav). - `Kannada = 64`: Kannada (kan). - `Georgian = 65`: Georgian (kat). - `GeorgianOld = 66`: Georgian, old (before 1000) (kat_old). - `Kazakh = 67`: Kazakh (kaz). - `CentralKhmer = 68`: Central Khmer (khm). - `Kyrgyz = 69`: Kirghiz; Kyrgyz. - `Kurmanji = 70`: Kurmanji (Kurdish - Latin Script). - `Lao = 71`: Lao (lao). - `Latin = 72`: Latin (lat). - `Latvian = 73`: Latvian (lav). - `Lithuanian = 74`: Lithuanian (lit). - `Luxembourgish = 75`: Luxembourgish (ltz). - `Malayalam = 76`: Malayalam (mal). - `Marathi = 77`: Marathi (mar). - `Macedonian = 78`: Macedonian (mkd). - `Maltese = 79`: Maltese (mlt). - `Mongolian = 80`: Mongolian (mon). - `Maori = 81`: Maori (mri). - `Malay = 82`: Malay (msa). - `Burmese = 83`: Burmese (mya). - `Nepali = 84`: Nepali (nep). - `Norwegian = 85`: Norwegian (nor). - `Occitan = 86`: Occitan (post 1500) (oci). - `Oriya = 87`: Oriya (ori). - `OrientationAndScriptDetection = 88`: Orientation and script detection module (osd). - `Panjabi = 89`: Panjabi; Punujabi (pan). - `Polish = 90`: Polish (pol). - `Pashto = 91`: Pashto; Pushto (pus). - `Quechua = 92`: Quechua (que). - `Romanian = 93`: Romanian; Moldavian; Moldovan (ron). - `Russian = 94`: Russian (rus). - `Sanskrit = 95`: Sanskrit (san). - `Sinhala = 96`: Sinhala; Sinhalese (sin). - `Slovak = 97`: Slovak (slk). - `SlovakFraktur = 98`: Slovak Fraktur (slk_frak) Fraktur, a set of typefaces developed in the early 16th century. - `Slovenian = 99`: Slovenian (slv). - `Sindhi = 100`: Sindhi (snd). - `SpanishOld = 101`: Spanish; Castilian (before 1400) (spa_old). - `Albanian = 102`: Albanian (sqi). - `Serbian = 103`: Serbian (srp). - `SerbianLatin = 104`: Serbian - Latin (srp_latn). - `Sundanese = 105`: Sundanese (sun). - `Swahili = 106`: Swahili (swa). - `Swedish = 107`: Swedish (swe). - `Tamil = 108`: Tamil (tam). - `Tatar = 109`: Tatar (tat). - `Telugu = 110`: Telugu (tel). - `Tajik = 111`: Tajik (tgk). - `Tagalog = 112`: Tagalag (new, Filipino) (tgl). - `Thai = 113`: Thai (tha). - `Tigrinya = 114`: Tigrinya (tir). - `Tonga = 115`: Tonga (ton). - `Turkish = 116`: Turkish (tur). - `Uyghur = 117`: Uyghur; Uighur (uig). - `Ukrainian = 118`: Ukrainian (ukr). - `Urdu = 119`: Urdu (urd). - `Uzbek = 120`: Uzbek (uzb). - `UzbekCyrillic = 121`: Uzbek - Cyrillic (uzb_cyrl). - `Vietnamese = 122`: Vietnamese (vie). - `Yiddish = 123`: Yiddish (yid). - `Yoruba = 124`: Yoruba (yor). --- # LanguageSetting Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LanguageSetting ```csharp class LanguageSetting : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Specify a language, along with any metadata about that language. **Referenced by:** [`OCRParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OCRParams.md) **Uses types:** [`Language`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/Language.md) ## Constructors ### LanguageSetting ```csharp Datalogics.PDFL.LanguageSetting.LanguageSetting(Language language, bool prohibit) ``` *constructor* **Parameters** - `language` ([`Language`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/Language.md)): the language to specify - `prohibit` (`bool`): Instead of loading this language, prohibit the language from being loaded as an adjunct of another language. create a language setting ## Properties ### Language ```csharp Language Datalogics.PDFL.LanguageSetting.Language { get; set; } ``` The language being specified. ### Prohibit ```csharp bool Datalogics.PDFL.LanguageSetting.Prohibit { get; set; } ``` Instead of loading this language, prohibit the language from being loaded as an adjunct of another language. ## Methods ### Dispose ```csharp void Datalogics.PDFL.LanguageSetting.Dispose() ``` **Returns:** `void` --- # LaunchAction Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LaunchAction ```csharp class LaunchAction : Action ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Action`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Action.md) ## Description A launch action launches an application or opens or prints a document. **Uses types:** [`FileSpecification`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FileSpecification.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md) ## Constructors ### LaunchAction ```csharp Datalogics.PDFL.LaunchAction.LaunchAction(FileSpecification fileSpec) ``` *constructor* **Parameters** - `fileSpec` ([`FileSpecification`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FileSpecification.md)): A FileSpecification representing the application to be launched or the document to be opened or printed by this action. General constructor. The action's target will be the path referenced in the FileSpecification parameter. If the path is absolute, the target path will also be absolute. If the path is relative, the target path will also be relative. Generally, the FileSpecification should be associated with the same Document that contains the LaunchAction. (Both FileSpecification and LaunchAction objects are associated with a Document at creation time, and the association cannot be changed.) The LaunchAction will be associated with the same Document that the FileSpecification parameter is associated with. If the action's FileSpecification is changed during program execution such that the FileSpecification is associated with a different Document than the LaunchAction, saving the Document that contains the action will create a copy of the FileSpecification in the Document that contains the action. ## Properties ### FileSpecification ```csharp FileSpecification Datalogics.PDFL.LaunchAction.FileSpecification { get; set; } ``` The FileSpecification for this action. Generally, the FileSpecification should be associated with the same Document that contains the LaunchAction. (Both FileSpecification and LaunchAction are associated with a Document at creation time.) ### NewWindow ```csharp bool Datalogics.PDFL.LaunchAction.NewWindow { get; set; } ``` Whether the destination document should be opened in a new window. By default, this flag is not present. If the action's FileSpecification is not a PDF, this flag is ignored. **Exceptions** - `InternalError`: if the NewWindow flag has not been set on this LaunchAction. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Action.PDFDict { get; } ``` Retrieve the PDFObject representation of this object. ### Subtype ```csharp string Datalogics.PDFL.Action.Subtype { get; } ``` The action's subtype. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Action.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Action.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.Action.ToString() ``` **Returns:** `override string` A string describing this Action. Returns a string representation of this Action. The string includes the action's subtype. --- # Library Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Library ```csharp class Library : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Used to create a new instance of a library object or change properties. A Library object can be used to create a new instance of a library or change the properties of an existing library. **Uses types:** [`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md), [`LibraryFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/LibraryFlags.md), [`LogParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LogParams.md), [`TempStoreType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/TempStoreType.md) ## Constructors ### Library ```csharp Datalogics.PDFL.Library.Library() ``` *constructor* Initialize the PDF Library on this thread. Note that each thread needs its own instance of the library. Multiple Library objects can be created on a thread, but they all refer to the same underlying instantiation of the library. ### Library ```csharp Datalogics.PDFL.Library.Library(LibraryFlags flags) ``` *constructor* **Parameters** - `flags` ([`LibraryFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/LibraryFlags.md)): PDF Library initialization flags, optional Initialize the PDF Library on this thread. Note that each thread needs its own instance of the library. Multiple Library objects can be created on a thread, but they all refer to the same underlying instantiation of the library. ### Library ```csharp Datalogics.PDFL.Library.Library(System.Collections.Generic.IList< System.String > fontPaths) ``` *constructor* **Parameters** - `fontPaths` (`System.Collections.Generic.IList< System.String >`): list of directories to search for fonts Initialize the PDF Library on this thread. Note that each thread needs its own instance of the library. Multiple Library objects can be created on a thread, but they all refer to the same underlying instantiation of the library. ### Library ```csharp Datalogics.PDFL.Library.Library(System.Collections.Generic.IList< System.String > fontPaths, LibraryFlags flags) ``` *constructor* **Parameters** - `fontPaths` (`System.Collections.Generic.IList< System.String >`): list of directories to search for fonts - `flags` ([`LibraryFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/LibraryFlags.md)): PDF Library initialization flags, optional Initialize the PDF Library on this thread. Note that each thread needs its own instance of the library. Multiple Library objects can be created on a thread, but they all refer to the same underlying instantiation of the library. ### Library ```csharp Datalogics.PDFL.Library.Library(System.Collections.Generic.IList< System.String > fontPaths, string CMapPath, string UnicodePath, LibraryFlags flags) ``` *constructor* **Parameters** - `fontPaths` (`System.Collections.Generic.IList< System.String >`): list of directories to search for fonts - `CMapPath` (`string`): directory to search for CMap files (pass an empty string to use the default) - `UnicodePath` (`string`): directory to search for Unicode mapping files (pass an empty string to use the default) - `flags` ([`LibraryFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/LibraryFlags.md)): PDF Library initialization flags, optional Initialize the PDF Library on this thread. Note that each thread needs its own instance of the library. Multiple Library objects can be created on a thread, but they all refer to the same underlying instantiation of the library. ### Library ```csharp Datalogics.PDFL.Library.Library(System.Collections.Generic.IList< System.String > fontPaths, string CMapPath, string UnicodePath, string ColorProfilePath, LibraryFlags flags) ``` *constructor* **Parameters** - `fontPaths` (`System.Collections.Generic.IList< System.String >`): list of directories to search for fonts - `CMapPath` (`string`): directory to search for CMap files (pass an empty string to use the default) - `UnicodePath` (`string`): directory to search for Unicode mapping files (pass an empty string to use the default) - `ColorProfilePath` (`string`): directory to search for Color Profile files (pass an empty string to use the default) - `flags` ([`LibraryFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/LibraryFlags.md)): PDF Library initialization flags, optional Initialize the PDF Library on this thread. Note that each thread needs its own instance of the library. Multiple Library objects can be created on a thread, but they all refer to the same underlying instantiation of the library. ## Properties ### APDFLVersion ```csharp static string Datalogics.PDFL.Library.APDFLVersion { get; } ``` *static* ### AllowOpeningXFA ```csharp bool Datalogics.PDFL.Library.AllowOpeningXFA { get; set; } ``` Allow opening PDF files that contain XFA forms. By default, an exception will be raised when attempting to open this type of document. ### AllowRelaxedSyntax ```csharp bool Datalogics.PDFL.Library.AllowRelaxedSyntax { get; set; } ``` Check to see if minor parsing errors are ignored while opening PDF files. ### DLEVersion ```csharp static string Datalogics.PDFL.Library.DLEVersion { get; } ``` *static* ### DefaultTempPath ```csharp string Datalogics.PDFL.Library.DefaultTempPath { get; set; } ``` Gets the default temporary directory. ### DefaultTempStore ```csharp TempStoreType Datalogics.PDFL.Library.DefaultTempStore { get; set; } ``` Gets default temporary storage. PDFL uses Disk storage type by default. ### DefaultTempStoreMemLimit ```csharp int Datalogics.PDFL.Library.DefaultTempStoreMemLimit { get; set; } ``` Gets current memory limit. ### FormsExtensionVersion ```csharp static string Datalogics.PDFL.Library.FormsExtensionVersion { get; } ``` *static* ### InstallLocation ```csharp static string Datalogics.PDFL.Library.InstallLocation { get; } ``` *static* ### LicenseKey ```csharp static string Datalogics.PDFL.Library.LicenseKey { get; set; } ``` *static* ### LogParams ```csharp LogParams Datalogics.PDFL.Library.LogParams { get; set; } ``` Gets LogParams object with preferences for logging. ### ResourceDirectory ```csharp static string Datalogics.PDFL.Library.ResourceDirectory { get; } ``` *static* ## Methods ### ChangeWorkingSpaceCMYK ```csharp void Datalogics.PDFL.Library.ChangeWorkingSpaceCMYK(ColorProfile colorProfile) ``` **Parameters** - `colorProfile` ([`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md)): The Color Profile to be used. **Returns:** `void` Sets the current CMYK working space to the specified ICC profile. ### ChangeWorkingSpaceCMYK ```csharp void Datalogics.PDFL.Library.ChangeWorkingSpaceCMYK(string profilePath) ``` **Parameters** - `profilePath` (`string`): The path on disk of the Color Profile to be used. **Returns:** `void` Sets the current CMYK working space to the specified ICC profile. ### ChangeWorkingSpaceGray ```csharp void Datalogics.PDFL.Library.ChangeWorkingSpaceGray(ColorProfile colorProfile) ``` **Parameters** - `colorProfile` ([`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md)): The Color Profile to be used. **Returns:** `void` Sets the current Gray working space to the specified ICC profile. ### ChangeWorkingSpaceGray ```csharp void Datalogics.PDFL.Library.ChangeWorkingSpaceGray(string profilePath) ``` **Parameters** - `profilePath` (`string`): The path on disk of the Color Profile to be used. **Returns:** `void` Sets the current Gray working space to the specified ICC profile. ### ChangeWorkingSpaceRGB ```csharp void Datalogics.PDFL.Library.ChangeWorkingSpaceRGB(ColorProfile colorProfile) ``` **Parameters** - `colorProfile` ([`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md)): The Color Profile to be used. **Returns:** `void` Sets the current RGB working space to the specified ICC profile. ### ChangeWorkingSpaceRGB ```csharp void Datalogics.PDFL.Library.ChangeWorkingSpaceRGB(string profilePath) ``` **Parameters** - `profilePath` (`string`): The path on disk of the Color Profile to be used. **Returns:** `void` Sets the current RGB working space to the specified ICC profile. ### Dispose ```csharp void Datalogics.PDFL.Library.Dispose() ``` **Returns:** `void` ### EnableLicensedBehavior ```csharp static bool Datalogics.PDFL.Library.EnableLicensedBehavior(string arg0) ``` *static* **Parameters** - `arg0` (`string`): A base64-encoded string containing the encrypted license key. **Returns:** `bool` true if the licensed behavior has been successfully enabled. This is used to turn on licensed behaviors in DLE. The function parameter is a base64-encoded string containing the encrypted licensed key. ### Initialized ```csharp static bool Datalogics.PDFL.Library.Initialized() ``` *static* **Returns:** `bool` true if the PDF Library is initialized on this thread Check to see if the library is initialized ### IsFormsExtensionAvailable ```csharp bool Datalogics.PDFL.Library.IsFormsExtensionAvailable() ``` **Returns:** `bool` true if the Forms Extension dependencies are present, and false if they are not. Validate the Forms Extension dependencies are present. Indicates if all of the necessary dependencies are present for the Forms extension. ### Terminate ```csharp void Datalogics.PDFL.Library.Terminate() ``` **Returns:** `void` Terminate the library with regard to this handle. (Note that if there are other Library objects in this thread, they may keep the library initialized. --- # LibraryException Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LibraryException ```csharp class LibraryException : ApplicationException ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `ApplicationException` ## Constructors ### LibraryException ```csharp Datalogics.PDFL.LibraryException.LibraryException(string message, int errorCode, string objectName, string additionalInfo) ``` *constructor* **Parameters** - `message` (`string`): The detail message. - `errorCode` (`int`): The PDF Library error code. - `objectName` (`string`): The name of the object (i.e. a filename for a file) that caused the error. - `additionalInfo` (`string`): A string containing additional information about the object. Exception thrown when there is an error processing a library call ## Properties ### AdditionalInfo ```csharp string Datalogics.PDFL.LibraryException.AdditionalInfo { get; } ``` Additional information about the exception. ### ErrorCode ```csharp int Datalogics.PDFL.LibraryException.ErrorCode { get; } ``` The internal PDF Library error code. ### ObjectName ```csharp string Datalogics.PDFL.LibraryException.ObjectName { get; } ``` The name of the object that caused the exception. --- # LibraryFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/LibraryFlags **Namespace:** `Datalogics::PDFL` ## Description Flags for initializing the library. Unless you require fine-grain control of the intialization process of the library there is no need to use LibraryFlags or you can specify the value of NoFlags. ## Values - `NoFlags = 0`: No flag is specified. - `IgnoreDefaultDirectories = 1`: Search for fonts ignore compiled in default directories - `CheckSubFonts = 4`: Check for substitution fonts at toolkit initialization. If they are not found, return an error. - `InitPDFEdit = 32`: Initialize PDFEdit if this is true. - `IgnoreCurrentDirectory = 256`: Ignore the current working directory only when searching for fonts - `DisableMemorySuballocator = 512`: Disable suballocation of memory. - `PreferLocalFonts = 1024`: Prefer fonts loaded from directories other than those controlled by the operating system - `InitFormsExtension = 65536`: Loads the Forms Extension dependencies, otherwise they are not loaded. --- # LineAnnotation Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LineAnnotation ```csharp class LineAnnotation : Annotation ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md) ## Description The line annotation displays a single straight line on a PDF page. When opened it displays a pop-up window containing the text of an associated note, placed at specific x/y coordinates for starting and ending points of the line. **Uses types:** [`AnnotationFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AnnotationFlags.md), [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`LineEndingStyle`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/LineEndingStyle.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### LineAnnotation ```csharp Datalogics.PDFL.LineAnnotation.LineAnnotation(Page page, Rect initialRect, Point startPoint, Point endPoint) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the LineAnnotation is added. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the annotation's bounds, specified in user space coordinates. - `startPoint` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): The starting coordinate of the line, in user space. - `endPoint` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): The ending coordinate of the line, in user space. Create a new LineAnnotation at the end of a page's annotation array. To create a LineAnnotation and place it elsewhere in the page's annotation array, use the version of the constructor that takes an array position. ### LineAnnotation ```csharp Datalogics.PDFL.LineAnnotation.LineAnnotation(Page page, Rect initialRect, Point startPoint, Point endPoint, int addAfter) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the annotation is added. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the annotation's bounds, specified in user space coordinates. - `startPoint` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): The starting coordinate of the line, in user space. - `endPoint` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): The ending coordinate of the line, in user space. - `addAfter` (`int`): Where to add the annotation in the page's annotation array. To add the annotation to the end of the array, pass a value of -2 or use the alternate version of this constructor that does not take an index (this is generally what you should do unless you have a need to place the annotation at a special location in the array). Passing a value of -1 adds the annotation to the beginning of the array. Passing other negative values produces undefined results. Create a new LineAnnotation at a specific index in the page's annotation array. ## Properties ### AnnotationFeatureLevel ```csharp double Datalogics.PDFL.Annotation.AnnotationFeatureLevel { get; set; } ``` The minimum PDF version necessary to support the features used in this annotation. ### BorderStyle ```csharp string Datalogics.PDFL.LineAnnotation.BorderStyle { get; set; } ``` The border style. Can be one of: • S - Solid • D - Dashed. The dash pattern is specified as an array (see DashPattern) • B - Beveled • I - Inset • U - Underline Other border styles may be defined in the future. Default is "S" ### BorderStyleDashPattern ```csharp System.Collections.Generic.IList Datalogics.PDFL.LineAnnotation.BorderStyleDashPattern { get; set; } ``` An array defining a pattern of dashes and gaps to be used in drawing a dashed border (border style D). The dash array is a series of numbers that specify the lengths of alternating dashes and gaps. Lengths must be nonnegative, and are expressed in user space units. Default value is [3] ### BorderStyleWidth ```csharp double Datalogics.PDFL.LineAnnotation.BorderStyleWidth { get; set; } ``` The border width in points. If this value is 0, no border is drawn. The default is 1.0. ### Color ```csharp Color Datalogics.PDFL.Annotation.Color { get; set; } ``` The color of the annotation. ### Contents ```csharp string Datalogics.PDFL.Annotation.Contents { get; set; } ``` The text contents of the annotation. 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. ### EndPoint ```csharp Point Datalogics.PDFL.LineAnnotation.EndPoint { get; set; } ``` The ending coordinate of the line, in user space. If the line has leader lines, the end point represents the ending point of the leader line rather than the line itself. ### EndPointEndingStyle ```csharp LineEndingStyle Datalogics.PDFL.LineAnnotation.EndPointEndingStyle { get; set; } ``` The ending style applied to the end point of the line (for example, an arrowhead, circle, or square). ### Flags ```csharp AnnotationFlags Datalogics.PDFL.Annotation.Flags { get; set; } ``` The flags for the annotation. ### InteriorColor ```csharp Color Datalogics.PDFL.Annotation.InteriorColor { get; set; } ``` The interior color with which to fill the annotation's rectangle or circle. The color of the border itself can be retrieved from Annotation.Color. ### NormalAppearance ```csharp Form Datalogics.PDFL.Annotation.NormalAppearance { get; set; } ``` The normal appearance of the annotation, represented as a Form XObject. ### Opacity ```csharp double Datalogics.PDFL.Annotation.Opacity { get; set; } ``` The constant opacity value used in painting a Markup annotation. Opacity is a range from 0.0 (fully transparent) to 1.0 (fully opaque). ### OptionalContentMembershipDict ```csharp OptionalContentMembershipDict Datalogics.PDFL.Annotation.OptionalContentMembershipDict { get; set; } ``` The OptionalContentMembershipDict property for this Annotation. Setting this property will attach the Annotation to an OptionalContentMembershipDict; it will then be associated with the OptionalContentGroups and be subject to the VisibilityPolicy and VisibilityExpression of that MembershipDict. By setting this property to null, the Annotation is detached from any OptionalContentMembershipDict. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Annotation.PDFDict { get; } ``` The underlying PDF dictionary for this annotation. Retrieves the PDFDict representation of this annotation object. ### Rect ```csharp Rect Datalogics.PDFL.Annotation.Rect { get; set; } ``` The size and location of the annotation on its page. ### StartPoint ```csharp Point Datalogics.PDFL.LineAnnotation.StartPoint { get; set; } ``` The starting coordinate of the line, in user space. If the line has leader lines, the start point represents the starting point of the leader line rather than the line itself. ### StartPointEndingStyle ```csharp LineEndingStyle Datalogics.PDFL.LineAnnotation.StartPointEndingStyle { get; set; } ``` The ending style applied to the start point of the line (for example, an arrowhead, circle, or square). ### Subtype ```csharp string Datalogics.PDFL.Annotation.Subtype { get; } ``` The annotation's subtype. ### Title ```csharp string Datalogics.PDFL.Annotation.Title { get; set; } ``` The title of the annotation. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Annotation.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Annotation.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### GenerateAppearance ```csharp override Form Datalogics.PDFL.LineAnnotation.GenerateAppearance() ``` **Returns:** `override Form` A new Form containing the generated appearance, or null if the appearance could not be generated (for example, due to an invalid border style). Generate a new appearance stream with the current annotation properties. The resulting Form can then be used to set the annotation's appearance, such as by calling SetNormalAppearance. ### HasRichTextData ```csharp bool Datalogics.PDFL.Annotation.HasRichTextData() ``` **Returns:** `bool` true if the annotation contains Rich Text String content. Checks the annotation for Rich Text String content (PDFReference 1.7 Section 8.6.2). Annotations that contain Rich Text String content and do not have a normal appearance set will not be visible when rendering the page. ### IsCurrentlyVisible ```csharp bool Datalogics.PDFL.Annotation.IsCurrentlyVisible(OptionalContentContext occ) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which to check visibility. **Returns:** `bool` true if the annotation is currently visible. Tests whether an annotation is visible in a given optional content context, considering the current ON-OFF states of the optional-content groups in the optional-content dictionary (OCMD) and the dictionary's visibility policy. If the annotation occurs more than once within the content, this method only checks the visibility of the first occurrence of the annotation. This method determines visibility without considering the visbility of the Content object that the annotation belongs to. To determine the visibility of an annotation while taking the Content's visibility into consideration, use the alternate version of this method. ### ToString ```csharp override string Datalogics.PDFL.Annotation.ToString() ``` **Returns:** `override string` A string describing this annotation, including its type and rectangle. Returns a string representation of this annotation. --- # LineCap Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/LineCap **Namespace:** `Datalogics::PDFL` ## Description The line cap style specifies the shape to be used at the ends of open subpaths (and dashes, if any) when they are stroked. ## Values - `ButtCap = 0`: The stroke is squared off at the endpoint of the path. There is no projection beyond the end of the path. - `RoundCap = 1`: A semicircular arc with a diameter equal to the line width is drawn around the endpoint and filled in. - `SquareCap = 2`: The stroke continues beyond the endpoint of the path for a distance equal to half the line width and is squared off. --- # LineEndingStyle Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/LineEndingStyle **Namespace:** `Datalogics::PDFL` ## Values - `Square = 0`: A square line ending. - `Circle = 1`: A circular line ending. - `Diamond = 2`: A diamond-shaped line ending. - `OpenArrow = 3`: Two short lines meeting in an acute angle to form an open arrowhead. - `ClosedArrow = 4`: Two short lines meeting in an acute angle as in the OpenArrow style and connected by a third line to form a triangular closed arrowhead. - `Butt = 5`: A short line at the endpoint perpendicular to the line itself (a butt cap). - `ReverseOpenArrow = 6`: Two short lines in the reverse direction from OpenArrow. - `ReverseClosedArrow = 7`: A triangular closed arrowhead in the reverse direction from ClosedArrow. - `Slash = 8`: A short line at the endpoint approximately 60 degrees from the line itself. - `None = 9`: No line ending. --- # LineJoin Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/LineJoin **Namespace:** `Datalogics::PDFL` ## Description The line join style specifies the shape to be used at the corners of paths that are stroked. Join styles are significant only at points where consecutive segments of a path connect at an angle; segments that meet or intersect fortuitously receive no special treatment. ## Values - `MiterJoin = 0`: The outer edges of the strokes for the two segments are extended until they meet at an angle, as in a picture frame. If the segments meet at too sharp an angle, a bevel join is used instead. - `RoundJoin = 1`: An arc of a circle with a diameter equal to the line width is drawn around the point where the two segments meet, connecting the outer edges of the strokes for the two segments. This pieslice-shaped figure is filled in, producing a rounded corner. - `BevelJoin = 2`: The two segments are finished with butt caps and the resulting notch beyond the ends of the segments is filled with a triangle. --- # LineTo Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LineTo ```csharp class LineTo : Segment ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Segment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Segment.md) ## Description A lineto operator, which draws a straight line. A lineto operator creates a line path element. It draws a straight line from the current position (MoveTo) to a new position-a new set of (x,y) coordinates: MoveTo{x:0 y:50} LineTo{x:100 y:100} **Uses types:** [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md) ## Constructors ### LineTo ```csharp Datalogics.PDFL.LineTo.LineTo(double x, double y) ``` *constructor* **Parameters** - `x` (`double`): The horizontal coordinate of the destination point. - `y` (`double`): The vertical coordinate of the destination point. Create a line to a new point specified by coordinates. Append a straight line segment from the current point to the point (x, y). The new current point is the point the line is drawn to. ### LineTo ```csharp Datalogics.PDFL.LineTo.LineTo(Point lineToPoint) ``` *constructor* **Parameters** - `lineToPoint` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): The destination point for the line segment. Create a line to a new point. Append a straight line segment from the current point to the lineToPoint. The new current point is the point the line is drawn to. ## Properties ### Point ```csharp Point Datalogics.PDFL.LineTo.Point { get; set; } ``` The new current point. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Segment.Dispose() ``` **Returns:** `void` ### ToString ```csharp override string Datalogics.PDFL.LineTo.ToString() ``` **Returns:** `override string` A string in the format "[ LineTo {x, y} ]". Returns a string representation of this LineTo segment. --- # LinkAnnotation Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LinkAnnotation ```csharp class LinkAnnotation : Annotation ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md) ## Description A link annotation, which features an embedded hyperlink. **Referenced by:** [`LinkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LinkAnnotation.md) **Uses types:** [`Action`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Action.md), [`AnnotationFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AnnotationFlags.md), [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`HighlightStyle`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/HighlightStyle.md), [`LinkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LinkAnnotation.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md), [`ViewDestination`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ViewDestination.md) ## Constructors ### LinkAnnotation ```csharp Datalogics.PDFL.LinkAnnotation.LinkAnnotation(Page page, Rect initialRect) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the LinkAnnotation is added. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the annotation's bounds, specified in user space coordinates. Create a new LinkAnnotation at the end of a page's annotation array. To create a LinkAnnotation and place it elsewhere in the page's annotation array, use the version of the constructor that takes an array position. ### LinkAnnotation ```csharp Datalogics.PDFL.LinkAnnotation.LinkAnnotation(Page page, Rect initialRect, int addAfter) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the annotation is added. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the annotation's bounds, specified in user space coordinates. - `addAfter` (`int`): Where to add the annotation in the page's annotation array. To add the annotation to the end of the array, pass a value of -2 or use the alternate version of this constructor that does not take an index (this is generally what you should do unless you have a need to place the annotation at a special location in the array). Passing a value of -1 adds the annotation to the beginning of the array. Passing other negative values produces undefined results. Create a new LinkAnnotation at a specific index in the page's annotation array. ## Properties ### Action ```csharp Action Datalogics.PDFL.LinkAnnotation.Action { get; set; } ``` The Action object for this link. Note that setting the Action will wipe out the Link's Destination member a link annotation cannot have both members. ### AnnotationFeatureLevel ```csharp double Datalogics.PDFL.Annotation.AnnotationFeatureLevel { get; set; } ``` The minimum PDF version necessary to support the features used in this annotation. ### BorderStyle ```csharp string Datalogics.PDFL.LinkAnnotation.BorderStyle { get; set; } ``` The border style. Can be one of: • S - Solid • D - Dashed. The dash pattern is specified as an array (see DashPattern) • B - Beveled • I - Inset • U - Underline Other border styles may be defined in the future. Default is "S" ### BorderStyleDashPattern ```csharp System.Collections.Generic.IList Datalogics.PDFL.LinkAnnotation.BorderStyleDashPattern { get; set; } ``` An array defining a pattern of dashes and gaps to be used in drawing a dashed border (border style D). The dash array is a series of numbers that specify the lengths of alternating dashes and gaps. Lengths must be nonnegative, and are expressed in user space units. Default value is [3] ### BorderStyleWidth ```csharp double Datalogics.PDFL.LinkAnnotation.BorderStyleWidth { get; set; } ``` The border width in points. If this value is 0, no border is drawn. The default is 1.0. ### Color ```csharp Color Datalogics.PDFL.Annotation.Color { get; set; } ``` The color of the annotation. ### Contents ```csharp string Datalogics.PDFL.Annotation.Contents { get; set; } ``` The text contents of the annotation. 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. ### Destination ```csharp ViewDestination Datalogics.PDFL.LinkAnnotation.Destination { get; set; } ``` The Destination for this link. Note that setting the Destination will wipe out the Link's Action member a link annotation cannot have both members. ### Flags ```csharp AnnotationFlags Datalogics.PDFL.Annotation.Flags { get; set; } ``` The flags for the annotation. ### Highlight ```csharp HighlightStyle Datalogics.PDFL.LinkAnnotation.Highlight { get; set; } ``` The HighlightStyle for this link. ### InteriorColor ```csharp Color Datalogics.PDFL.Annotation.InteriorColor { get; set; } ``` The interior color with which to fill the annotation's rectangle or circle. The color of the border itself can be retrieved from Annotation.Color. ### NormalAppearance ```csharp Form Datalogics.PDFL.Annotation.NormalAppearance { get; set; } ``` The normal appearance of the annotation, represented as a Form XObject. ### Opacity ```csharp double Datalogics.PDFL.Annotation.Opacity { get; set; } ``` The constant opacity value used in painting a Markup annotation. Opacity is a range from 0.0 (fully transparent) to 1.0 (fully opaque). ### OptionalContentMembershipDict ```csharp OptionalContentMembershipDict Datalogics.PDFL.Annotation.OptionalContentMembershipDict { get; set; } ``` The OptionalContentMembershipDict property for this Annotation. Setting this property will attach the Annotation to an OptionalContentMembershipDict; it will then be associated with the OptionalContentGroups and be subject to the VisibilityPolicy and VisibilityExpression of that MembershipDict. By setting this property to null, the Annotation is detached from any OptionalContentMembershipDict. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Annotation.PDFDict { get; } ``` The underlying PDF dictionary for this annotation. Retrieves the PDFDict representation of this annotation object. ### Rect ```csharp Rect Datalogics.PDFL.Annotation.Rect { get; set; } ``` The size and location of the annotation on its page. ### Subtype ```csharp string Datalogics.PDFL.Annotation.Subtype { get; } ``` The annotation's subtype. ### Title ```csharp string Datalogics.PDFL.Annotation.Title { get; set; } ``` The title of the annotation. ## Methods ### CopyTo ```csharp LinkAnnotation Datalogics.PDFL.LinkAnnotation.CopyTo(Page destination) ``` **Parameters** - `destination` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): the page to copy the annotation to. The page may be in the same document as the source annotation or in a different document. **Returns:** [`LinkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LinkAnnotation.md) the annotation created on the destination page. Copy a LinkAnnotation to the specified page. The annotation will be centered on the page. To center the annotation at a specific point, use the version of this method that accepts a Point. This creates a copy of the original LinkAnnotation and puts the copy in the destination page's annotation dictionary. Structural content information associated with the source annotation will not be present in the copy. An exception will be thrown if the annotation cannot be copied to the specified page. Note: If copying LinkAnnotations between pages in different documents, the source annotation may have a ViewDestination that's invalid in the destiantion document or an Action referring to a ViewDestination that's invalid in the destination document. In these cases, an exception will be thrown. ### CopyTo ```csharp LinkAnnotation Datalogics.PDFL.LinkAnnotation.CopyTo(Page destination, Point centerPoint) ``` **Parameters** - `destination` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): the page to copy the annotation to. The page may be in the same document as the source annotation or in a different document. - `centerPoint` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the point to center the annotation on. **Returns:** [`LinkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LinkAnnotation.md) the annotation created on the destination page. Copy a LinkAnnotation to the specified page and center the annotation on the specified point. This creates a copy of the original LinkAnnotation and puts the copy in the destination page's annotation dictionary. Structural content information associated with the source annotation will not be present in the copy. An exception will be thrown if the annotation cannot be copied to the specified page. Note: If copying LinkAnnotations between pages in different documents, the source annotation may have a ViewDestination that's invalid in the destiantion document or an Action referring to a ViewDestination that's invalid in the destination document. In these cases, an exception will be thrown. ### Dispose ```csharp void Datalogics.PDFL.Annotation.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Annotation.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### GenerateAppearance ```csharp override Form Datalogics.PDFL.LinkAnnotation.GenerateAppearance() ``` **Returns:** `override Form` A new Form containing the generated appearance, or null if the appearance could not be generated (for example, due to an invalid border style). Generate a new appearance stream with the current annotation properties. The resulting Form can then be used to set the annotation's appearance, such as by calling SetNormalAppearance. ### HasRichTextData ```csharp bool Datalogics.PDFL.Annotation.HasRichTextData() ``` **Returns:** `bool` true if the annotation contains Rich Text String content. Checks the annotation for Rich Text String content (PDFReference 1.7 Section 8.6.2). Annotations that contain Rich Text String content and do not have a normal appearance set will not be visible when rendering the page. ### IsCurrentlyVisible ```csharp bool Datalogics.PDFL.Annotation.IsCurrentlyVisible(OptionalContentContext occ) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which to check visibility. **Returns:** `bool` true if the annotation is currently visible. Tests whether an annotation is visible in a given optional content context, considering the current ON-OFF states of the optional-content groups in the optional-content dictionary (OCMD) and the dictionary's visibility policy. If the annotation occurs more than once within the content, this method only checks the visibility of the first occurrence of the annotation. This method determines visibility without considering the visbility of the Content object that the annotation belongs to. To determine the visibility of an annotation while taking the Content's visibility into consideration, use the alternate version of this method. ### ToString ```csharp override string Datalogics.PDFL.Annotation.ToString() ``` **Returns:** `override string` A string describing this annotation, including its type and rectangle. Returns a string representation of this annotation. --- # LogOutputFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/LogOutputFlags **Namespace:** `Datalogics::PDFL` ## Description Flags that control where DLE log output is written. Multiple flags can be combined using bitwise OR to send log output to more than one destination simultaneously. ## Values - `None = 0`: Disable all logging - `Console = 0x0002`: Use Console to write log - `File = 0x0004`: Use file to write log. - `EventLog = 0x0008`: Post log in Windows Logs -> Application --- # LogParams Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LogParams ```csharp class LogParams : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Defines the parameters for writing error messages to a log file. The messages include the date and time, the source of the error, and the error type: debug, info, warning, error, or fatal. This class also defines the log file name and path. **Referenced by:** [`Library`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Library.md) **Uses types:** [`LogOutputFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/LogOutputFlags.md) ## Constructors ### LogParams ```csharp Datalogics.PDFL.LogParams.LogParams() ``` *constructor* LogParams constructor which allows to create LogParams instance. The LogParams object contains all settings required for logging. The log output, log file name and log string format can be configured with it. ## Properties ### LogFileName ```csharp string Datalogics.PDFL.LogParams.LogFileName { get; set; } ``` Gets the path to the file to write the log to. ### LogFormat ```csharp string Datalogics.PDFL.LogParams.LogFormat { get; set; } ``` Gets log format string. The string which allows to write the log in a custom format. NOTE: PDFL supports the following markers to form output string: "%d" - current date (mmddyyyy). Example: 07292013 "%t" - current time (hhmmss). Example: 121311 "%s" - error source. Example: "DLFramework" "%e" - error type. It can be debug, info, warning, error, fatal. The value which will be output within this marker depends on severity value. It always outputs "error" string. "%m" - error message. Example: "Exception: InExistent.pdf: This file cannot be found. Error number: 1074397201" "%T" - full date. It contains current date, current time and the timezone (yyyy-mm-ddThh:mm:ss+/-hh:mm). Example: 2013-07-29T12:13:11+03:00 By default "%T | %s | %e | %m" string format is used. ### LogOutputFlags ```csharp LogOutputFlags Datalogics.PDFL.LogParams.LogOutputFlags { get; set; } ``` Gets LogOutputFlags. Supported types of logging are: console, file and Event Log (for Windows only). The outputs can be mixed by ORing corresponding flags. It is also possible to suppress any logging using LogOutputFlags.None. ## Methods ### Dispose ```csharp void Datalogics.PDFL.LogParams.Dispose() ``` **Returns:** `void` --- # Matrix Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix ```csharp class Matrix : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A transformation matrix in a PDF file is specified by six numbers. The matrix is usually in the form of an array containing the six elements [a b c d h v]. A translation is specified as [ 1 0 0 1 tx ty], where tx and ty are the distance to translate from the origin of the coordinate system in the horizontal and vertical dimension, respectively. A scaling is obtained by [sx 0 0 sy 0 0]. This scales the coordinates so that 1 unit in the horizontal and vertical dimension of the new coordinate system is the same size as sx and sy units, respectively, as in the previous coordinate system. A rotation is produced by [ cos T sin T -sin T cos T 0 0 ], which has the effect of rotating the coordinate system axes by an angle T (degrees) counterclockwise. This material indicates that the matrix specifying a transformation is premultiplied with the current transformation matrix, i.e., M' = Mt * M The implementation of the Scale, Rotate, and Translate convenience functions of Matrix reflect the same order of operations, so that they are consistent with the PDF Reference manual. They are also consistent with the scale, rotate, and translate operators in PostScript, from which the coordinate system model in PDF is derived. **Referenced by:** [`Container`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Container.md), [`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md), [`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md), [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`Group`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Group.md), [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md), [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`Path`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Path.md), [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md), [`PostScript`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PostScript.md), [`Quad`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md), [`Shading`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Shading.md), [`Text`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Text.md), [`TextRun`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextRun.md) **Uses types:** [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md) ## Constructors ### Matrix ```csharp Datalogics.PDFL.Matrix.Matrix() ``` *constructor* the default constructor creates a transformation matrix to translate the rectangle 1 element (1/72nd of an inch) from the origin. ### Matrix ```csharp Datalogics.PDFL.Matrix.Matrix(double na, double nb, double nc, double nd, double nh, double nv) ``` *constructor* **Parameters** - `na` (`double`): The horizontal scaling component (a). - `nb` (`double`): The vertical shearing component (b). - `nc` (`double`): The horizontal shearing component (c). - `nd` (`double`): The vertical scaling component (d). - `nh` (`double`): The horizontal translation component (h). - `nv` (`double`): The vertical translation component (v). Construct a Matrix with the specified component values. ## Properties ### A ```csharp double Datalogics.PDFL.Matrix.A { get; set; } ``` The horizontal scaling component of the matrix. ### B ```csharp double Datalogics.PDFL.Matrix.B { get; set; } ``` The vertical shearing component of the matrix. ### C ```csharp double Datalogics.PDFL.Matrix.C { get; set; } ``` The horizontal shearing component of the matrix. ### D ```csharp double Datalogics.PDFL.Matrix.D { get; set; } ``` The vertical scaling component of the matrix. ### H ```csharp double Datalogics.PDFL.Matrix.H { get; set; } ``` The horizontal translation component of the matrix. ### V ```csharp double Datalogics.PDFL.Matrix.V { get; set; } ``` The vertical translation component of the matrix. ## Methods ### Concat ```csharp Matrix Datalogics.PDFL.Matrix.Concat(Matrix Mt) ``` **Parameters** - `Mt` ([`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md)): The matrix to concatenate (premultiply) onto this matrix. **Returns:** [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md) the transformed matrix Concatenate a matrix onto an existing matrix. The product returned is: M' = Mt * M This corresponds to the action of the cm operator. ### Dispose ```csharp void Datalogics.PDFL.Matrix.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Matrix.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### Invert ```csharp Matrix Datalogics.PDFL.Matrix.Invert() ``` **Returns:** [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md) The inverted matrix. Invert the Matrix object and return a new Matrix object. **Exceptions** - `Exception`: if the matrix is not invertible (determinant is near zero). ### Multiply ```csharp static Matrix Datalogics.PDFL.Matrix.Multiply(Matrix m1, Matrix m2) ``` *static* **Parameters** - `m1` ([`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md)): a matrix - `m2` ([`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md)): a matrix **Returns:** [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md) the matrix product m1 x m2 Multiply two transformation matrices. ### Rotate ```csharp Matrix Datalogics.PDFL.Matrix.Rotate(double T) ``` **Parameters** - `T` (`double`): The rotation, counterclockwise **Returns:** [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md) the result [cos T sin T -sin T 0 0] * M Rotate a matrix by T degrees counterclockwise units. Rotation is done by creating the matrix [ cos T sin T -sin T cos T 0 0 ], and calling the Concat function with that matrix. ### Scale ```csharp Matrix Datalogics.PDFL.Matrix.Scale(double sx, double sy) ``` **Parameters** - `sx` (`double`): X scaling factor - `sy` (`double`): Y scaling factor **Returns:** [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md) the result [sx 0 0 sy 0 0] * M Scale a matrix by (sx,sy) units. Scaling is done by creating the matrix [sx 0 0 sy 0 0], and calling the Concat function with that matrix. ### ToString ```csharp override string Datalogics.PDFL.Matrix.ToString() ``` **Returns:** `override string` A string describing this Matrix and its component values. Returns a string representation of this Matrix. The returned string contains all six matrix components (a, b, c, d, h, v) in a human-readable format. ### Translate ```csharp Matrix Datalogics.PDFL.Matrix.Translate(double tx, double ty) ``` **Parameters** - `tx` (`double`): X translation distance - `ty` (`double`): Y translation distance **Returns:** [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md) the result [1 0 0 1 tx ty] * M Translate a matrix by (tx,ty) units. Translation is done by creating the matrix [ 1 0 0 1 tx ty ], and calling the Concat function with that matrix. --- # MirrorOptions Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/MirrorOptions **Namespace:** `Datalogics::PDFL` ## Values - `DontFlip = 1`: No mirroring. - `FlipX = 2`: Mirror across x-axis. - `FlipY = 4`: Mirror across y-axis. - `FlipXY = 8`: Mirror across x and y-axis. --- # MissingFontStrategy Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/MissingFontStrategy **Namespace:** `Datalogics::PDFL` ## Description The behavior to use if a suitable Font can't be found to represent the recognized Text. ## Values - `RaiseAnException = 0`: Raise an exception. - `IgnoreMissingFont = 1`: Ignore the missing Font and continue recognizing the next Word of Text. - `ReplacementText = 2`: Replace the characters of Text with the Unicode replacement Character. NOTE: the CandidateFontsNames member of the OCRParams instance must include a Font that can represent this character or an exception will be raised. --- # MoveTo Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/MoveTo ```csharp class MoveTo : Segment ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Segment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Segment.md) ## Description An operator that creates a path by moving to a new current position. A LineTo operator creates an addition to a path element by moving to the (x,y) coordinates specified in the MoveTo statement. The MoveTo coordinates serve as the new current position, and from here a new path element can start. For example, the MoveTo coordinates can define the starting position for a LineTo operator. The LineTo operator draws a straight line from the current position (MoveTo) to a new position, the set of (x,y) coordinates defined with the LineTo operator: MoveTo{x:0 y:50} LineTo{x:100 y:100} **Uses types:** [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md) ## Constructors ### MoveTo ```csharp Datalogics.PDFL.MoveTo.MoveTo(double x, double y) ``` *constructor* **Parameters** - `x` (`double`): The horizontal coordinate of the new current point. - `y` (`double`): The vertical coordinate of the new current point. Move to a new current point specified by coordinates. Begin a new subpath by moving the current point to coordinates x, y, omitting any connecting line segment. If the previous path segment in the current path was also a MoveTo, the new m overrides it; no vestige of the previous MoveTo operation remains in the path. ### MoveTo ```csharp Datalogics.PDFL.MoveTo.MoveTo(Point newCurrentPoint) ``` *constructor* **Parameters** - `newCurrentPoint` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): The new current point to move to. Move to a new current point. Begin a new subpath by moving the current point to a new point, omitting any connecting line segment. If the previous path segment in the current path was also a MoveTo, the new m overrides it; no vestige of the previous MoveTo operation remains in the path. ## Properties ### Point ```csharp Point Datalogics.PDFL.MoveTo.Point { get; set; } ``` The new current point. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Segment.Dispose() ``` **Returns:** `void` ### ToString ```csharp override string Datalogics.PDFL.MoveTo.ToString() ``` **Returns:** `override string` A string in the format "[ MoveTo {x, y} ]". Returns a string representation of this MoveTo segment. --- # NamedColorSpace Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NamedColorSpace ```csharp class NamedColorSpace : ColorSpace ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md) ## Description Class used to define the color space in use. **Referenced by:** [`NamedColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NamedColorSpace.md) **Uses types:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`NamedColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NamedColorSpace.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Properties ### DeviceCMYK ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceCMYK { get; } ``` *static* The DeviceCMYK color space, representing cyan, magenta, yellow, and black components. ### DeviceGray ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceGray { get; } ``` *static* The DeviceGray color space, representing a single grayscale component. ### DeviceRGB ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceRGB { get; } ``` *static* The DeviceRGB color space, representing red, green, and blue components. ### DeviceRGBA ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceRGBA { get; } ``` *static* The DeviceRGBA color space, representing red, green, blue, and alpha components. ### Lab ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.Lab { get; } ``` *static* The CIE-based L*a*b* color space. ### LabA ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.LabA { get; } ``` *static* The CIE-based L*a*b* color space with an alpha component. ### Name ```csharp string Datalogics.PDFL.ColorSpace.Name { get; } ``` The name of the color space. A named color space may be named something like DeviceRGB. More complicated color spaces may have a name like Indexed or ICCBased. ### NumComponents ```csharp int Datalogics.PDFL.ColorSpace.NumComponents { get; } ``` The number of components in the color space. For example, DeviceGray has 1 component, DeviceRGB has 3, and DeviceCMYK has 4. ### PDFObject ```csharp PDFObject Datalogics.PDFL.ColorSpace.PDFObject { get; } ``` Get the PDFObject associated with the color space. This may be a PDFName, PDFDict, PDFStream, or PDFArray. ## Methods ### Dispose ```csharp void Datalogics.PDFL.ColorSpace.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.NamedColorSpace.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### MakeDeviceRGBA ```csharp static NamedColorSpace Datalogics.PDFL.NamedColorSpace.MakeDeviceRGBA() ``` *static* **Returns:** [`NamedColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NamedColorSpace.md) A new NamedColorSpace for DeviceRGBA (4 components: red, green, blue, alpha). Creates a NamedColorSpace representing the DeviceRGBA color space. ### ToString ```csharp override string Datalogics.PDFL.ColorSpace.ToString() ``` **Returns:** `override string` A string describing this ColorSpace. Convert a ColorSpace to a string representation. ### operator!= ```csharp static bool Datalogics.PDFL.ColorSpace.operator!=(ColorSpace a, ColorSpace b) ``` *static* **Parameters** - `a` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The first ColorSpace to compare. - `b` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The second ColorSpace to compare. **Returns:** `bool` true if the two ColorSpace objects are not equal; false otherwise. Test two ColorSpace objects for inequality. ### operator== ```csharp static bool Datalogics.PDFL.ColorSpace.operator==(ColorSpace a, ColorSpace b) ``` *static* **Parameters** - `a` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The first ColorSpace to compare. - `b` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The second ColorSpace to compare. **Returns:** `bool` true if the two ColorSpace objects are equal; false otherwise. Test two ColorSpace objects for equality. --- # NamedFunction Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NamedFunction ```csharp class NamedFunction : Function ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md) ## Description Defines a function currently in use. A Function is a process; it takes input values and manipulates them to create output values. **Uses types:** [`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md) ## Properties ### Default ```csharp static Function Datalogics.PDFL.Function.Default { get; } ``` *static* Gets the Default named function. A Function representing the Default named function. ### Domain ```csharp System.Collections.Generic.IList Datalogics.PDFL.Function.Domain { get; set; } ``` The domain of the function. Contains 2 * m elements, where m is the number of inputs to the function. Each successive pair of elements gives the minimum and maximum values for one of the inputs. Input values to the function are clamped to these minimum and maximum values. ### Identity ```csharp static Function Datalogics.PDFL.Function.Identity { get; } ``` *static* Gets the Identity named function. A Function representing the Identity named function, which returns its input values unchanged. ### NInputs ```csharp int Datalogics.PDFL.Function.NInputs { get; } ``` The number of inputs to the function. ### NOutputs ```csharp int Datalogics.PDFL.Function.NOutputs { get; } ``` The number of outputs from the function. ### Name ```csharp string Datalogics.PDFL.NamedFunction.Name { get; } ``` The name of the function. ### Range ```csharp System.Collections.Generic.IList Datalogics.PDFL.Function.Range { get; set; } ``` The range of the function. Contains 2 * n elements, where n is the number of outputs from the function. Each successive pair of elements gives the minimum and maximum values for one of the outputs. Output values from the function are clamped to these minimum and maximum values. ## Methods ### Apply ```csharp override System.Collections.Generic.IList< System.Double > Datalogics.PDFL.NamedFunction.Apply(System.Collections.Generic.IList< System.Double > args) ``` **Parameters** - `args` (`System.Collections.Generic.IList< System.Double >`): input values for the function. The number of input values must agree with the number of inputs the function takes. **Returns:** `override System.Collections.Generic.IList< System.Double >` a list of the result values from the function Apply the function to supplied input values. For Identity functions, this returns the same inputs. Not defined for any other kinds of named functions. ### Dispose ```csharp void Datalogics.PDFL.Function.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.NamedFunction.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.NamedFunction.ToString() ``` **Returns:** `override string` The name of this NamedFunction. Convert the function to a displayable string. ### operator!= ```csharp static bool Datalogics.PDFL.Function.operator!=(Function a, Function b) ``` *static* **Parameters** - `a` ([`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): The first Function to compare. - `b` ([`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): The second Function to compare. **Returns:** `bool` true if the two Functions are not equal; otherwise, false. Tests two Function objects for inequality. ### operator== ```csharp static bool Datalogics.PDFL.Function.operator==(Function a, Function b) ``` *static* **Parameters** - `a` ([`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): The first Function to compare. - `b` ([`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): The second Function to compare. **Returns:** `bool` true if the two Functions are equal; otherwise, false. Tests two Function objects for equality. --- # NameTree Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NameTree ```csharp class NameTree : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description The name tree is a common data structure in PDF files. A name tree is a type of dictionary that can store many more pairs of matched records than a standard object dictionary. A name tree uses keys that are character strings to map to data objects. The strings can use a standard coding format, such as Unicode, are sorted in order in the data structure, and can be associated with any type of object. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md), [`PDFString`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFString.md) ## Constructors ### NameTree ```csharp Datalogics.PDFL.NameTree.NameTree(Document doc) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The Document in which to create the NameTree. Creates a new, empty NameTree in the specified Document. ## Properties ### PDFDict ```csharp PDFDict Datalogics.PDFL.NameTree.PDFDict { get; } ``` Gets the underlying PDFDict of this NameTree. ## Methods ### Dispose ```csharp void Datalogics.PDFL.NameTree.Dispose() ``` **Returns:** `void` ### EnumEntries ```csharp void Datalogics.PDFL.NameTree.EnumEntries(PDFObjectEnumProc enumProc) ``` **Parameters** - `enumProc` ([`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md)): A user-supplied callback to call for each indirect object in dP. Enumeration ends when enumProc returns false or all indirect objects have been enumerated. The value parameter returned in enumProc is always null. **Returns:** `void` Enumerates all the entries of this NameTree. This method does not enumerate invalid objects, which include objects that are defined as null, objects that are not defined at all (those having no cross-reference entry), and objects that are on the free list. This re-raises any exception that enumProc raises. ### Equals ```csharp override bool Datalogics.PDFL.NameTree.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### Get ```csharp PDFObject Datalogics.PDFL.NameTree.Get(PDFString key) ``` **Parameters** - `key` ([`PDFString`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFString.md)): The name of the PDFObject to get from the tree. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) - The PDFObject value corresponding to the supplied key Retrieves an entry from this NameTree. ### Put ```csharp void Datalogics.PDFL.NameTree.Put(PDFString key, PDFObject value) ``` **Parameters** - `key` ([`PDFString`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFString.md)): The name of the PDFObject to put in the tree. - `value` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The PDFObject to be associated with key. **Returns:** `void` Puts a new entry in this NameTree. If an entry with this name is already in the tree, it is replaced. ### Remove ```csharp void Datalogics.PDFL.NameTree.Remove(PDFString key) ``` **Parameters** - `key` ([`PDFString`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFString.md)): The name of the PDFObject to remove from the tree. **Returns:** `void` Removes the specified PDFObject from this NameTree. It does nothing if no PDFObject of that name exists in this NameTree. --- # NumberStyle Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/NumberStyle **Namespace:** `Datalogics::PDFL` ## Description Specifies the numbering style for page labels in a document. ## Values - `Decimal = 0`: Decimal arabic numerals (1,2,3...) - `RomanUppercase = 1`: Uppercase Roman numerals (I,II,III...) - `RomanLowercase = 2`: Lowercase Roman numerals (i,ii,iii...) - `LetterUppercase = 3`: Uppercase letters (A,B,C...AA,BB...) - `LetterLowercase = 4`: Lowercase letters (a,b,c...aa,bb...) - `None = 5`: Use no NumberStyle, only Prefix --- # NumberTree Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NumberTree ```csharp class NumberTree : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description The number tree is a common data structure in PDF files. The number tree is a type of dictionary that can store many more pairs of matched records than a standard object dictionary. A number tree uses keys that are integers to map to data objects, sorted in ascending numerical order. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Constructors ### NumberTree ```csharp Datalogics.PDFL.NumberTree.NumberTree(Document doc) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The Document in which to create the NumberTree. Creates a new, empty NumberTree in the specified Document. ## Properties ### PDFDict ```csharp PDFDict Datalogics.PDFL.NumberTree.PDFDict { get; } ``` Gets the underlying PDFDict of this NumberTree. ## Methods ### Dispose ```csharp void Datalogics.PDFL.NumberTree.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.NumberTree.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### Get ```csharp PDFObject Datalogics.PDFL.NumberTree.Get(int key) ``` **Parameters** - `key` (`int`): The integer key of the PDFObject to get from the tree. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) The PDFObject value corresponding to the supplied key. Retrieves an entry from this NumberTree. ### Put ```csharp void Datalogics.PDFL.NumberTree.Put(int key, PDFObject value) ``` **Parameters** - `key` (`int`): The integer of the PDFObject to put in the tree. - `value` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The PDFObject to be associated with key. **Returns:** `void` Puts a new entry in this NumberTree. If an entry with this name is already in the tree, it is replaced. ### Remove ```csharp void Datalogics.PDFL.NumberTree.Remove(int key) ``` **Parameters** - `key` (`int`): The integer of the PDFObject to remove from the tree. **Returns:** `void` Removes the specified PDFObject from this NumberTree. It does nothing if no PDFObject of that number exists in this NumberTree. --- # ObjectCompressionType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ObjectCompressionType **Namespace:** `Datalogics::PDFL` ## Description Enumerator to allow the selection of object compression type to Set the values for object compression type. ## Values - `None = 1`: No object compression is used. - `Structure = 2`: Only logical structure information uses object compression. - `LeaveUnchanged = 3`: The current object compression is unchanged. - `All = 0`: Object compression is used wherever possible. --- # OCREngine Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OCREngine ```csharp class OCREngine : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Represents an OCR Engine and its configuration. Create an OCREngine object once, and reuse it to convert multiple images to Form objects to avoid repeating the sometimes expensive initialization of the engine. The configuration of the engine can't be changed after it's created; if you need to do that, create another OCREngine object. **Referenced by:** [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md), [`Language`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/Language.md), [`MissingFontStrategy`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/MissingFontStrategy.md), [`OCRParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OCRParams.md) ## Constructors ### OCREngine ```csharp Datalogics.PDFL.OCREngine.OCREngine() ``` *constructor* Create an OCR engine. ### OCREngine ```csharp Datalogics.PDFL.OCREngine.OCREngine(OCRParams ocrParams) ``` *constructor* **Parameters** - `ocrParams` ([`OCRParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OCRParams.md)): the configuration to use Create an OCR engine with a specified configuration. ## Properties ### AvailableLanguages ```csharp System.Collections.Generic.IList Datalogics.PDFL.OCREngine.AvailableLanguages { get; } ``` Get a list of languages this OCREngine can use. ## Methods ### Dispose ```csharp void Datalogics.PDFL.OCREngine.Dispose() ``` **Returns:** `void` ### IsLanguageAvailable ```csharp bool Datalogics.PDFL.OCREngine.IsLanguageAvailable(Language language) ``` **Parameters** - `language` ([`Language`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/Language.md)): the language to check **Returns:** `bool` true if the language is available, false otherwise Query if a language for OCR is available for use. ### PlaceTextUnder ```csharp Form Datalogics.PDFL.OCREngine.PlaceTextUnder(Image image) ``` **Parameters** - `image` ([`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md)): The image in which to recognize text. **Returns:** [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md) a Form element containing the image with text underneath. Recognize text in the image, returning a form element with the image and the text underneath. Run the image through an OCR engine. Creates a Form element containing the image, and additional text underneath. The Form element has a transformation matrix which makes it directly substitutable for the image in a Content stream. This method may throw an exception if it can't find a font that will represent all the characters in a word. See the candidateFontNames on OCRParams to supply more fonts. ### PlaceTextUnder ```csharp Form Datalogics.PDFL.OCREngine.PlaceTextUnder(Image image, Document inDocument) ``` **Parameters** - `image` ([`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md)): The image in which to recognize text. - `inDocument` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The destination document for the created form. **Returns:** [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md) a Form element containing the image with text underneath. Recognize text in the image, returning a form element with the image and the text underneath. Run the image through an OCR engine. Creates a Form element containing the image, and additional text underneath. The Form element has a transformation matrix which makes it directly substitutable for the image in a Content stream. The form will be created in the specified document, sharing fonts with the results of recognizing text in other images. This method may throw an exception if it can't find a font that will represent all the characters in a word. See the candidateFontNames on OCRParams to supply more fonts. ### PlaceTextUnder ```csharp Form Datalogics.PDFL.OCREngine.PlaceTextUnder(Image image, Document inDocument, double resolution) ``` **Parameters** - `image` ([`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md)): The image in which to recognize text. - `inDocument` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The destination document for the created form. - `resolution` (`double`): The resolution of the Image being recognized. **Returns:** [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md) a Form element containing the image with text underneath. Recognize text in the image of the known resolution, returning a form element with the image and the text underneath. Knowing the image's resolution can enhance recognition. NOTE: Determining the resolution of the image is the caller's responsibility. Run the image through an OCR engine. Creates a Form element containing the image, and additional text underneath. The Form element has a transformation matrix which makes it directly substitutable for the image in a Content stream. The form will be created in the specified document, sharing fonts with the results of recognizing text in other images. If a font that will represent all the characters in a word can't be found, an exception will be raised. ### PlaceTextUnder ```csharp Form Datalogics.PDFL.OCREngine.PlaceTextUnder(Image image, Document inDocument, double resolution, MissingFontStrategy missingFontStrategy) ``` **Parameters** - `image` ([`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md)): The image in which to recognize text. - `inDocument` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The destination document for the created form. - `resolution` (`double`): The resolution of the Image being recognized. - `missingFontStrategy` ([`MissingFontStrategy`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/MissingFontStrategy.md)): The behavior to use if a Font can't be found to represent the recognized text. **Returns:** [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md) a Form element containing the image with text underneath. Recognize text in the image of the known resolution, returning a form element with the image and the text underneath. Knowing the image's resolution can enhance recognition. NOTE: Determining the resolution of the image is the caller's responsibility. Run the image through an OCR engine. Creates a Form element containing the image, and additional text underneath. The Form element has a transformation matrix which makes it directly substitutable for the image in a Content stream. The form will be created in the specified document, sharing fonts with the results of recognizing text in other images. If a font that will represent all the characters in a word can't be found, the missingFontStrategy will determine the behavior to employ. ### PlaceTextUnder ```csharp Form Datalogics.PDFL.OCREngine.PlaceTextUnder(Image image, Document inDocument, MissingFontStrategy missingFontStrategy) ``` **Parameters** - `image` ([`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md)): The image in which to recognize text. - `inDocument` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The destination document for the created form. - `missingFontStrategy` ([`MissingFontStrategy`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/MissingFontStrategy.md)): The behavior to use if a Font can't be found to represent the recognized text. **Returns:** [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md) a Form element containing the image with text underneath. Recognize text in the image, returning a form element with the image and the text underneath. Knowing the image's resolution can enhance recognition. Run the image through an OCR engine. Creates a Form element containing the image, and additional text underneath. The Form element has a transformation matrix which makes it directly substitutable for the image in a Content stream. The form will be created in the specified document, sharing fonts with the results of recognizing text in other images. If a font that will represent all the characters in a word can't be found, the missingFontStrategy will determine the behavior to employ. --- # OCRParams Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OCRParams ```csharp class OCRParams : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Parameters for configuring the OCR (Optical Character Recognition) engine. OCRParams controls settings such as the engine to use, the resolution of the input images, the language(s) to recognize, performance tuning, page segmentation mode, candidate font names for placing text, and image preprocessing options. **Referenced by:** [`OCREngine`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OCREngine.md) **Uses types:** [`LanguageSetting`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LanguageSetting.md), [`PageSegmentationMode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageSegmentationMode.md), [`Performance`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/Performance.md) ## Constructors ### OCRParams ```csharp Datalogics.PDFL.OCRParams.OCRParams() ``` *constructor* Create an OCRParams structure with defaults. ## Properties ### CandidateFontNames ```csharp System.Collections.Generic.IList Datalogics.PDFL.OCRParams.CandidateFontNames { get; set; } ``` The names of candidate fonts for placing text under an image. The default list should work well in most cases. If you're using text that isn't represented by Latin fonts, or by Chinese, Japanese, or Korean fonts, then retrieve this list, add the font that can represent that text, then set that new list on this object. Enough font names must be supplied to cover the expected languages/scripts in use. The code selects a font to represent each word. If a word code-switches between different scripts, for instance, if it contains non-Latin text and Arabic numerals, then make sure to supply the name of a font family that can handle both the text and the numerals. The quality of the results depends on the font choice. The list is searched in order until a font works for a particular word. To make the text fit better, it's recommended to list proportional fonts before fixed-width fonts. Decorative fonts with flourishes, like Zapf Chancery, deliver poor results. Generally, supply a font that would be used in block text, such as in a newspaper or work of literature, such as Times Roman, or a font already in the list, like MinionPro. If the PlaceTextUnder method in OCREngine can't identify a font that covers the whole text of a word, an exception will be thrown. ### ConfigurationParameters ```csharp System.Collections.Generic.IDictionary Datalogics.PDFL.OCRParams.ConfigurationParameters { get; set; } ``` Get the configuration parameters. Note: Reserved for internal use. Do not use unless directed to by Datalogics Support. ### EnableImagePreprocessing ```csharp bool Datalogics.PDFL.OCRParams.EnableImagePreprocessing { get; set; } ``` Get the image preprocessing enable state. True if any image preprocessing is on. ### Engine ```csharp string Datalogics.PDFL.OCRParams.Engine { get; set; } ``` The name of the OCR engine to use. Use the Tesseract4Engine constant to select the Tesseract v4 engine. ### Languages ```csharp System.Collections.Generic.IList Datalogics.PDFL.OCRParams.Languages { get; set; } ``` The list of languages the OCR engine should recognize. ### PageSegmentationMode ```csharp PageSegmentationMode Datalogics.PDFL.OCRParams.PageSegmentationMode { get; set; } ``` The page segmentation mode, which controls how the OCR engine detects text regions on the page. ### Performance ```csharp Performance Datalogics.PDFL.OCRParams.Performance { get; set; } ``` The desired performance mode for the OCR engine, balancing speed versus accuracy. ### Resolution ```csharp double Datalogics.PDFL.OCRParams.Resolution { get; set; } ``` The resolution, in DPI, at which images are rendered for OCR processing. ### Tesseract4Engine ```csharp static string Datalogics.PDFL.OCRParams.Tesseract4Engine { get; } ``` *static* ## Methods ### Dispose ```csharp void Datalogics.PDFL.OCRParams.Dispose() ``` **Returns:** `void` --- # OptimizerOption Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/OptimizerOption **Namespace:** `Datalogics::PDFL` ## Description Select the optimization option to be set or obtained. ## Values - `DownsampleColor = 1`: When this option is ON, Downsample all color images above MAX DPI to ResetTo DPI. Default is ON. - `RecompressColor = 2`: When this option is ON, recompress all color images which are compressed by a different scheme than one select by RecompressTo to RecompressTo. Default is ON. - `DownsampleGray = 3`: When this option is ON, Downsample all gray scale images above MAX DPI to ResetTo DPI. Default is ON. - `RecompressGray = 4`: When this option is ON, recompress all gray scale images which are compressed by a different scheme than one select by RecompressTo to RecompressTo. Default is ON. - `DownsampleBW = 5`: When this option is ON, Downsample all Black and White images above MAX DPI to ResetTo DPI. Default is ON. - `RecompressBW = 6`: When this option is ON, recompress all Black and White images which are compressed by a different scheme than one select by RecompressTo to RecompressTo. Default is ON. - `RecompressOnlyIfSmaller = 7`: In all of the above Downsample and Recompress operations, if this option is ON, replace the image ONLY if the resultant compressed image is smaller than the original. Default is ON. - `DiscardAlternateImages = 8`: When this option is ON, any Alternate Images defined for a given image (Images in different resolutions than the base image) will be discarded. Default is ON. - `SubsetAllEmbeddedFonts = 9`: When this option is ON, any fonts which are embedded, but not subset, will be replaced with subset fonts. This can save considerable space in a document, but does so at the risk of preventing future edits to the document. Default is ON. - `ReSubsetAllSubsetFonts = 37`: When this option is ON, any fonts which are subset embedded, will be replaced with a newly subset font. This will generally only happen if the document has been edited since it was created, or the document contains only a subset of the page that it originally contained. NOTE: This can only REMOVE glyphs from the subset font. It cannot add glyphs that were not present int he original subset. Default is ON. - `RemoveAllEmbeddedFonts = 10`: When this option is ON, all embedded fonts will be removed. If this is done, the document can only be viewed on platforms which contain all of the fonts required. Generally, you would want to do this only in very tightly controlled circumstances. Default is OFF. - `RemoveAllBase14Fonts = 11`: This will remove any embedded base 14 fonts. Generally, it is safe to remove these fonts, as any platform that supports PDF should have locally available copies of them. However, there is still some risk that the embedded fonts are not identical to the actual base14 fonts, and hence may render differently. Default is OFF. - `MergeDuplicateFonts = 12`: When this option is ON, the document will be searched for mutliple copies of the same font. These will then be combined into a single font. Default is ON. - `DiscardBookmarks = 13`: When this option is ON, all bookmarks will be removed from the document. Note that this information cannot be reconstructed. Default is OFF. - `DiscardAcroforms = 14`: When this option is ON, All acroform structures will be removed from the document. NOTE: Filled in fields, if any, will be left in the document. So the content of those fields will continue to display. Default is ON. - `DiscardOutputIntent = 15`: When this option is ON, any OutputIntent structures in the document, along with their associated color profiles, will be removed. This may cause color shifting, when rendering the document. Default is OFF. - `DiscardThumbnails = 16`: When this option is ON, any thumbnails embedded in the document will be removed. Default is ON. - `DiscardPageLabels = 17`: When this option is ON, discard any Page Label Trees embedded in the document This may cause a difference in the display and selection of pages in some viewers. Default is ON. - `DiscardNameTress = 18`: When this option is ON, discard any NameTrees in the document. This may cause issues with links within the document. Default is ON. - `DiscardStructureTrees = 19`: When this option is ON, discard any structure trees in the document. Default is OFF. - `DiscardFileAttachments = 20`: When this option is ON, remove any document embedded in the PDF Document. Default is ON. - `DiscardXMPPadding = 21`: When this option is ON, remove from the XMP Metadata any padding areas, left to allow the XMP data to be updated. Default is ON. - `DiscardUnusedForms = 22`: When this option is ON, remove any Forms XObjects which are included in the document, but never displayed in the document. Default is ON. - `DiscardPieceData = 23`: When this option is ON, remove any user supplied private PieceData embedded in the document. This will never effect appearance, but may limit the use of special processing by the application that provided this data. Default is ON. - `CompressStreams = 24`: When this option is ON, any streams (of more than 20 bytes length) which are not compressed will be compressed using Flate. Default is ON. - `ReplaceLZW = 25`: When this option is ON, any LZW Compressed streams will be recompressed using Flate. Default is ON. - `DiscardMetadata = 26`: When this option is ON, any Metadata embedded in the document (Except for the document level Metadata) will be removed. Default is OFF. - `DiscardDocumentInfo = 27`: When this option is ON, any Document Information, beyond the basic information supplied by APDFL, will be discarded. Note that this will also remove that information from the document level Metadata. Default is OFF. - `OptimizeContentStreams = 28`: When this option is ON, attempt to find common segments of code at the start of page content, and share a single copy of such common code. Default is ON. - `Linearize = 29`: When this option is ON, create the optimized document as Linearized (Optimized for Web Access). Default is OFF. - `DiscardDuplicateForms = 30`: When this option is ON, locate and remove duplicate copies of forms, using a single copy for all references to that form. Default is ON. - `DiscardDuplicateObjects = 31`: When this option is ON, locate and remove duplicate copies of objects, using a single copy for all references to that object. Default is ON. - `DiscardASCIIFilters = 32`: When this option is ON, remove the ASCIIHex and ASCII85 filters from any streams that use these as their final filters. These have historically been used to render data safe in a 7 bit data channel, or for debugging purposes Default is ON. - `DiscardComments = 33`: When this option is ON, remove all annotations which are commentary to the content (All "Markup" annotations). Default is OFF. - `DiscardAnnotations = 34`: When this option is ON, remove all annotations, of all types, from all pages. This may result in visible loss of information in the rendered pages. Default is OFF. - `DiscardJavaScriptActions = 35`: When this option is ON, remove all JavaScript actions in the document. Default is OFF. - `FlattenOptionalContent = 36`: When this option is ON, Optional Content in the document is Flattened. Default is OFF. - `DownConvert16To8BpcImages = 38`: When this option is ON, down-converts all 16 Bits Per Component images to 8 Bits Per Component. Default is ON. - `DiscardUnusedImages = 39`: When this option is ON, remove any Image XObjects which are included in the document, but never displayed in the document. Default is ON. - `DiscardUnusedFonts = 40`: When this option is ON, remove any Fonts which are included in the document, but never used in the document. Default is ON. --- # OptionalContentBaseState Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/OptionalContentBaseState **Namespace:** `Datalogics::PDFL` ## Values - `BaseStateOff = 0`: OptionalContentGroups affected by this OptionalContentConfig should be off by default - `BaseStateOn = 1`: OptionalContentGroups affected by this OptionalContentConfig should be on by default - `BaseStateUnchanged = 2`: OptionalContentGroups affected by this OptionalContentConfig should remain in the same state --- # OptionalContentConfig Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentConfig ```csharp class OptionalContentConfig : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A structure used to store data related to layers in a PDF. The Optional Content Configuration Structure is used to maintain a set of visibility states and other optional values related to layers, or Optional Content Groups, within a PDF file. These configuration values are stored for future use. The default configuration for a PDF document is stored in the D entry in the Optional Content Properties dictionary. An Optional Content Group, or layer, is a set of graphic images that can be made visible or invisible within a PDF file, and the Optional Content Configuration Structure is typically used to set the initial value for these images-On or Off, visible or invisible. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`OptionalContentBaseState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/OptionalContentBaseState.md), [`OptionalContentGroup`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentGroup.md), [`OptionalContentOrderArray`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentOrderArray.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md) ## Constructors ### OptionalContentConfig ```csharp Datalogics.PDFL.OptionalContentConfig.OptionalContentConfig(Document doc) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document that the new OptionalContentConfig will belong to. Create a new OptionalContentConfig. ## Properties ### BaseState ```csharp OptionalContentBaseState Datalogics.PDFL.OptionalContentConfig.BaseState { get; set; } ``` Get the base state for this OptionalContentConfig. When this config is applied to an OptionalContentContext, all OptionalContentGroups will be set to according to this base state: • If BaseState is set to BaseStateOff, when this OptionalContentConfig is applied to an OptionalContentContext: • All OptionalContentGroups in the document are set to OFF, and • Any OptionalContentGroups in this OptionalContentConfig's ON array are then set to on. • If BaseState is set to BaseStateOn, when this OptionalContentConfig is applied to an OptionalContentContext: • All OptionalContentGroups in the document are set to ON, and • Any OptionalContentGroups in this OptionalContentConfig's OFF array are then set to off. • If BaseState is set to BaseStateUnchanged, when this OptionalContentConfig is applied to an OptionalContentContext: • Any OptionalContentGroups in this OptionalContentConfig's ON array are set to on • Any OptionalContentGroups in this OptionalContentConfig's OFF array are set to off • Any OptionalContentGroups in neither the ON or OFF array are unaffected ### Intent ```csharp System.Collections.Generic.IList Datalogics.PDFL.OptionalContentConfig.Intent { get; set; } ``` Gets the intent list for an OptionalContentConfig. An intent is a string value broadly describing the intended use, either View or Design. A config's intent is used to set the intent of an OptionalContentContext when this config is applied to the context. ### Name ```csharp string Datalogics.PDFL.OptionalContentConfig.Name { get; set; } ``` Get the name of the OptionalContentConfig ### OffArray ```csharp System.Collections.Generic.IList Datalogics.PDFL.OptionalContentConfig.OffArray { get; set; } ``` Get the list of OptionalContentGroups in the OFF array. When this config is applied to an OptionalContentContext, the OptionalContentGroups in this array will be set to OFF. This list is ignored if the BaseState is BaseStateOff; please see the description of the BaseState property for details. Note that an OptionalContentGroup should not be in both the ON array and the OFF array. ### OnArray ```csharp System.Collections.Generic.IList Datalogics.PDFL.OptionalContentConfig.OnArray { get; set; } ``` Get the list of OptionalContentGroups in the ON array. When this config is applied to an OptionalContentContext, the OptionalContentGroups in this array will be set to ON. This list is ignored if the BaseState is BaseStateOn; please see the description of the BaseState property for details. Note that an OptionalContentGroup should not be in both the ON array and the OFF array. ### Order ```csharp OptionalContentOrderArray Datalogics.PDFL.OptionalContentConfig.Order { get; } ``` Gets the order list for the optional content in this optional content config. Note that you can set the Title property on this order list, just as on any other OptionalContentOrderArray, and it will save as a legal PDF. However, the Title property on the top level order array simply appears as an extraneous text label in a PDF Viewer Layers panel, so its use at this level is typically not required. ### PDFDict ```csharp PDFDict Datalogics.PDFL.OptionalContentConfig.PDFDict { get; } ``` Retrieve the PDFObject representation of this object. ## Methods ### Dispose ```csharp void Datalogics.PDFL.OptionalContentConfig.Dispose() ``` **Returns:** `void` --- # OptionalContentContext Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext ```csharp class OptionalContentContext : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Defines the context for optional content in a PDF. An Optional Content Context is a status object that defines the context for optional content within a document. The context tracks the On/Off status for Optional Content Groups (layers) within a document. It contains flags that control whether to display content that is marked as optional. **Referenced by:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md), [`CircleAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CircleAnnotation.md), [`Container`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Container.md), [`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`FreeTextAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FreeTextAnnotation.md), [`HighlightAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/HighlightAnnotation.md), [`InkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/InkAnnotation.md), [`LineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LineAnnotation.md), [`LinkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LinkAnnotation.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`PolyLineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolyLineAnnotation.md), [`PolygonAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolygonAnnotation.md), [`PrintParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintParams.md), [`Redaction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Redaction.md), [`SeparationParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationParams.md), [`SquareAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SquareAnnotation.md), [`TextMarkupAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextMarkupAnnotation.md), [`UnderlineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/UnderlineAnnotation.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentDrawingPolicy`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/OptionalContentDrawingPolicy.md), [`OptionalContentGroup`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentGroup.md) ## Constructors ### OptionalContentContext ```csharp Datalogics.PDFL.OptionalContentContext.OptionalContentContext(Document document) ``` *constructor* **Parameters** - `document` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document for which to create a context. Creates a context object that represents an optional-content state of the document, using the current state as the initial state for each group (OCG), as determined by the document's optional-content configuration. ## Properties ### DrawOptionalContent ```csharp OptionalContentDrawingPolicy Datalogics.PDFL.OptionalContentContext.DrawOptionalContent { get; set; } ``` Gets the drawing policy for the optional content in this optional content context. ## Methods ### Clone ```csharp OptionalContentContext Datalogics.PDFL.OptionalContentContext.Clone() ``` **Returns:** [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md) A copy of the original optional content context. Makes a copy of the optional content context. ### Dispose ```csharp void Datalogics.PDFL.OptionalContentContext.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.OptionalContentContext.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### GetOCGStates ```csharp System.Collections.Generic.IList< System.Boolean > Datalogics.PDFL.OptionalContentContext.GetOCGStates(System.Collections.Generic.IList< OptionalContentGroup > ocgs) ``` **Parameters** - `ocgs` ([`System.Collections.Generic.IList< OptionalContentGroup >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentGroup.md)): A list of optional-content groups whose states are obtained. **Returns:** `System.Collections.Generic.IList< System.Boolean >` An array of OCG states corresponding to the array of OCGs, true for ON and false for OFF. Gets the ON-OFF states for the given optional-content groups (OCGs) in the given optional-content context. ### GetStateOfOCG ```csharp bool Datalogics.PDFL.OptionalContentContext.GetStateOfOCG(OptionalContentGroup ocg) ``` **Parameters** - `ocg` ([`OptionalContentGroup`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentGroup.md)): The optional content group whose state will be retrieved. **Returns:** `bool` true if the OCG is ON, false if it is OFF. Gets the ON-OFF state for the given optional content group (OCG) in this optional content context. ### SetOCGStates ```csharp void Datalogics.PDFL.OptionalContentContext.SetOCGStates(System.Collections.Generic.IList< OptionalContentGroup > ocgs, System.Collections.Generic.IList< System.Boolean > newStates) ``` **Parameters** - `ocgs` ([`System.Collections.Generic.IList< OptionalContentGroup >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentGroup.md)): A list of optional-content groups. - `newStates` (`System.Collections.Generic.IList< System.Boolean >`): A list of new OCG states corresponding to the list of OCGs, true for ON and false for OFF. The list must contain as many states as there are non-NULL OCGs in the pdocgs list. **Returns:** `void` Sets the ON-OFF states for the given optional-content groups (OCGs) in the given optional-content context. The newStates vector must be large enough to hold as many Boolean values as there are OCGs. ### SetStateOfOCG ```csharp void Datalogics.PDFL.OptionalContentContext.SetStateOfOCG(OptionalContentGroup ocg, bool newValue) ``` **Parameters** - `ocg` ([`OptionalContentGroup`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentGroup.md)): The optional content group whose state will be set. - `newValue` (`bool`): The new ON-OFF state for the optional content group. **Returns:** `void` Sets the ON-OFF state for the given optional content group (OCG) in this optional content context. ### ToString ```csharp override string Datalogics.PDFL.OptionalContentContext.ToString() ``` **Returns:** `override string` A string describing the state of all optional content groups in this context. Returns a string representation of this OptionalContentContext. The string lists all optional content groups in the document along with their ON/OFF states in this context. --- # OptionalContentDrawingPolicy Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/OptionalContentDrawingPolicy **Namespace:** `Datalogics::PDFL` ## Description The policy for drawing optional content within the document. ## Values - `VisibleOptionalContent = 0`: Draw optional content that is visible according to the current state of the OptionalContentGroups and OptionalContentMembershipDicts. - `AllOptionalContent = 1`: Draw all optional content, regardless of visibility state. - `NoOptionalContent = 2`: Do not draw any optional content, regardless of visibility state. --- # OptionalContentGroup Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentGroup ```csharp class OptionalContentGroup : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A dictionary used to manage graphics images in a PDF. An Optional Content Group is a dictionary that represents a set of graphics images that users can turn on or off in a PDF document, making them visible or invisible. In a PDF Viewer, Optional Content Groups are referred to as "Layers." **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`OptionalContentConfig`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentConfig.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict.md), [`OptionalContentOrderLeaf`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentOrderLeaf.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md) ## Constructors ### OptionalContentGroup ```csharp Datalogics.PDFL.OptionalContentGroup.OptionalContentGroup(Document doc, string name) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document that the new OptionalContentGroup will belong to. - `name` (`string`): The name given to the new OptionalContentGroup. Create a new OptionalContentGroup. ## Properties ### Intent ```csharp System.Collections.Generic.IList Datalogics.PDFL.OptionalContentGroup.Intent { get; set; } ``` Gets the intent list for an optional-content group. An intent is a string value broadly describing the intended use, either View or Design. A group's content is considered to be optional (that is, the group's state is considered in its visibility) if any intent in its list matches an intent of the context. The intent list of the context is usually set from the intent list of the document configuration. ### Name ```csharp string Datalogics.PDFL.OptionalContentGroup.Name { get; set; } ``` Get the name of the optional content group ### PDFDict ```csharp PDFDict Datalogics.PDFL.OptionalContentGroup.PDFDict { get; } ``` Retrieve the PDFObject representation of this object. ## Methods ### Dispose ```csharp void Datalogics.PDFL.OptionalContentGroup.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.OptionalContentGroup.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.OptionalContentGroup.ToString() ``` **Returns:** `override string` A string describing this OptionalContentGroup. Returns a string representation of this OptionalContentGroup. The string includes the group's name and its intent list. --- # OptionalContentMembershipDict Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict ```csharp class OptionalContentMembershipDict : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Attaches content to one or more optional content groups. Form, container, and annotation objects can be associated with one or more optional content groups. By associating them with an optional content group, they become part of that 'layer', and the user can control the visibility of the content. Note that by placing other element objects in a container, they can also be associated with an optional content group. An OptionalContentMembershipDict connects content to the OptionalContentGroup; it contains a list of OptionalContentGroups, and rules for determining visibility when the OptionalContentGroups have conflicting on/off states in the active OptionalContentContext. An OptionalContentMembershipDict cannot be changed once created; you must create a new OptionalContentMembershipDict and change the objects to point to it. **Referenced by:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md), [`CircleAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CircleAnnotation.md), [`Container`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Container.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`FreeTextAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FreeTextAnnotation.md), [`HighlightAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/HighlightAnnotation.md), [`InkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/InkAnnotation.md), [`LineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LineAnnotation.md), [`LinkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LinkAnnotation.md), [`PolyLineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolyLineAnnotation.md), [`PolygonAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolygonAnnotation.md), [`Redaction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Redaction.md), [`SquareAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SquareAnnotation.md), [`TextMarkupAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextMarkupAnnotation.md), [`UnderlineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/UnderlineAnnotation.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`OptionalContentGroup`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentGroup.md), [`PDFArray`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFArray.md), [`VisibilityPolicy`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/VisibilityPolicy.md) ## Constructors ### OptionalContentMembershipDict ```csharp Datalogics.PDFL.OptionalContentMembershipDict.OptionalContentMembershipDict(Document doc, System.Collections.Generic.IList< OptionalContentGroup > ocgs, VisibilityPolicy vp) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document that the new OptionalContentMembershipDict will belong to. - `ocgs` ([`System.Collections.Generic.IList< OptionalContentGroup >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentGroup.md)): The list of OptionalContentGroups this MembershipDict refers to. - `vp` ([`VisibilityPolicy`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/VisibilityPolicy.md)): The VisibilityPolicy of this MembershipDict. Create a new OptionalContentMembershipDict. ### OptionalContentMembershipDict ```csharp Datalogics.PDFL.OptionalContentMembershipDict.OptionalContentMembershipDict(Document doc, System.Collections.Generic.IList< OptionalContentGroup > ocgs, VisibilityPolicy vp, PDFArray visibilityExpression) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document that the new OptionalContentMembershipDict will belong to. - `ocgs` ([`System.Collections.Generic.IList< OptionalContentGroup >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentGroup.md)): The list of OptionalContentGroups this MembershipDict refers to. - `vp` ([`VisibilityPolicy`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/VisibilityPolicy.md)): The VisibilityPolicy of this MembershipDict. - `visibilityExpression` ([`PDFArray`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFArray.md)): The VisibilityExpression of this MembershipDict. Create a new OptionalContentMembershipDict. ## Properties ### OptionalContentGroups ```csharp System.Collections.Generic.IList Datalogics.PDFL.OptionalContentMembershipDict.OptionalContentGroups { get; } ``` Gets the list of OptionalContentGroups for this membership dictionary. This may consist of one OCG or several. ### VisibilityExpression ```csharp PDFArray Datalogics.PDFL.OptionalContentMembershipDict.VisibilityExpression { get; } ``` GetVisibilityExpression Gets the Visibility Expression for this membership dictionary. ### VisibilityPolicy ```csharp VisibilityPolicy Datalogics.PDFL.OptionalContentMembershipDict.VisibilityPolicy { get; } ``` Gets the Visbility Policy for this membership dictionary. ## Methods ### Dispose ```csharp void Datalogics.PDFL.OptionalContentMembershipDict.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.OptionalContentMembershipDict.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.OptionalContentMembershipDict.ToString() ``` **Returns:** `override string` A string describing this OptionalContentMembershipDict. Returns a string representation of this OptionalContentMembershipDict. The string includes the names of all associated OptionalContentGroups and the current VisibilityPolicy. --- # OptionalContentOrderArray Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentOrderArray ```csharp class OptionalContentOrderArray : OptionalContentOrderNode ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`OptionalContentOrderNode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentOrderNode.md) ## Description Array node class for items in the OptionalContentConfig Order array. Items in the Order array can be arranged into a tree structure; subarrays within the parent array form 'branches' of the tree. Each OptionalContentOrderArray may contain OptionalContentOrderLeafs or OptionalContentOrderArrays in a specific order; this order determines how they will appear in the 'Layers' control of the viewer. By placing OptionalContentOrderArrays into a higher-level array, branches can be added to the tree. The 'Title' property is a string that will appear next to the expand/collapse branch control in a PDF Viewer 'Layers' panel. **Referenced by:** [`OptionalContentConfig`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentConfig.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`OptionalContentOrderNode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentOrderNode.md) ## Constructors ### OptionalContentOrderArray ```csharp Datalogics.PDFL.OptionalContentOrderArray.OptionalContentOrderArray(Document doc) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The Document this OptionalContentOrderArray is being created in Create an OptionalContentOrderArray with no title. ### OptionalContentOrderArray ```csharp Datalogics.PDFL.OptionalContentOrderArray.OptionalContentOrderArray(Document doc, string title) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The Document this OptionalContentOrderArray is being created in - `title` (`string`): The string which will appear in the Layer control panel Create an OptionalContentOrderArray with a title. ## Properties ### Length ```csharp int Datalogics.PDFL.OptionalContentOrderArray.Length { get; } ``` Gets the number of OptionalContentOrderNodes in this array. ### Title ```csharp string Datalogics.PDFL.OptionalContentOrderArray.Title { get; set; } ``` Gets the title string of this Array. This title will appear next to the expand/collapse control in the 'Layers' panel of a PDF Viewer. ## Methods ### Add ```csharp void Datalogics.PDFL.OptionalContentOrderArray.Add(OptionalContentOrderNode node) ``` **Parameters** - `node` ([`OptionalContentOrderNode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentOrderNode.md)): The OptionalContentOrderNode to append to the Array **Returns:** `void` Adds an OptionalContentOrderNode to the end of the Array. ### Dispose ```csharp void Datalogics.PDFL.OptionalContentOrderNode.Dispose() ``` **Returns:** `void` ### Get ```csharp OptionalContentOrderNode Datalogics.PDFL.OptionalContentOrderArray.Get(int index) ``` **Parameters** - `index` (`int`): The index at which to fetch an OptionalContentOrderNode. **Returns:** [`OptionalContentOrderNode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentOrderNode.md) An OptionalContentOrderNode, or null if there is nothing at that index. Returns the OptionalContentOrderNode at the given index. ### Insert ```csharp void Datalogics.PDFL.OptionalContentOrderArray.Insert(int index, OptionalContentOrderNode node) ``` **Parameters** - `index` (`int`): The index at which to insert the Node - `node` ([`OptionalContentOrderNode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentOrderNode.md)): The OptionalContentOrderNode to insert in the Array **Returns:** `void` Inserts an OptionalContentOrderNode at the given index, displacing existing objects. All objects following this will have their index increased by one. ### Put ```csharp void Datalogics.PDFL.OptionalContentOrderArray.Put(int index, OptionalContentOrderNode node) ``` **Parameters** - `index` (`int`): The index at which to replace the existing Node - `node` ([`OptionalContentOrderNode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentOrderNode.md)): The OptionalContentOrderNode to place in the Array **Returns:** `void` Puts an OptionalContentOrderNode at the given index, replacing the existing item. The index can be greater than the current length of the array; the array will be extended and the empty slots filled with null objects. ### RemoveAt ```csharp void Datalogics.PDFL.OptionalContentOrderArray.RemoveAt(int index) ``` **Parameters** - `index` (`int`): The index of the OptionalContentOrderNode to remove **Returns:** `void` Removes the OptionalContentOrderNode at the given index. The length of the array is reduced by 1. --- # OptionalContentOrderLeaf Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentOrderLeaf ```csharp class OptionalContentOrderLeaf : OptionalContentOrderNode ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`OptionalContentOrderNode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentOrderNode.md) ## Description Leaf node class for items in the OptionalContentConfig Order array. Items in the Order array can be arranged into a tree structure. Each 'leaf' on this tree would be an OptionalContentOrderLeaf that contains a reference to an OptionalContentGroup in this document. **Uses types:** [`OptionalContentGroup`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentGroup.md) ## Constructors ### OptionalContentOrderLeaf ```csharp Datalogics.PDFL.OptionalContentOrderLeaf.OptionalContentOrderLeaf(OptionalContentGroup ocg) ``` *constructor* **Parameters** - `ocg` ([`OptionalContentGroup`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentGroup.md)): The OptionalContentGroup this object will refer to. Create an OptionalContentOrderLeaf that refers to the OptionalContentGroup. ## Properties ### OptionalContentGroup ```csharp OptionalContentGroup Datalogics.PDFL.OptionalContentOrderLeaf.OptionalContentGroup { get; } ``` Gets the OptionalContentGroup referred to by this OptionalContentOrderLeaf. ## Methods ### Dispose ```csharp void Datalogics.PDFL.OptionalContentOrderNode.Dispose() ``` **Returns:** `void` --- # OptionalContentOrderNode Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentOrderNode ```csharp class OptionalContentOrderNode : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` **Derived classes:** [`OptionalContentOrderArray`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentOrderArray.md), [`OptionalContentOrderLeaf`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentOrderLeaf.md) ## Description Base class for items in the OptionalContentConfig Order array. Items in the OptionalContentConfig's Order array are either OptionalContentOrderLeaf or OptionalContentOrderArray. This is the base class for both; you cannot instantiate an OptionalContentOrderNode, only one of its child classes. **Referenced by:** [`OptionalContentOrderArray`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentOrderArray.md) ## Methods ### Dispose ```csharp void Datalogics.PDFL.OptionalContentOrderNode.Dispose() ``` **Returns:** `void` --- # OutputType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/OutputType **Namespace:** `Datalogics::PDFL` ## Description Specifies what kind of file to emit. ## Values - `PostScript = 0`: Emit a PostScript file. - `EPSNoPreview = 1`: Emit an EPS file with no preview. --- # OverprintMode Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/OverprintMode **Namespace:** `Datalogics::PDFL` ## Description A code specifying whether a color component value of 0 in a DeviceCMYK color space should erase that component or leave it unchanged when overprinting. ## Values - `EraseComponent = 0`: A color component value of 0 in a DeviceCMYK color space should erase the component. - `LeaveUnchanged = 1`: A color component value of 0 in a DeviceCMYK color space should leave it unchanged. --- # Page Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page ```csharp class Page : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Represents a page within a PDF file. The page is the basic object used for organizing content in a PDF document. **Referenced by:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md), [`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md), [`CircleAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CircleAnnotation.md), [`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`FreeTextAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FreeTextAnnotation.md), [`HighlightAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/HighlightAnnotation.md), [`InkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/InkAnnotation.md), [`LineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LineAnnotation.md), [`LinkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LinkAnnotation.md), [`PolyLineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolyLineAnnotation.md), [`PolygonAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolygonAnnotation.md), [`Redaction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Redaction.md), [`SeparationColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md), [`SquareAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SquareAnnotation.md), [`StructElement`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructElement.md), [`UnderlineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/UnderlineAnnotation.md) **Uses types:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md), [`ColorConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorConvertParams.md), [`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md), [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md), [`ImageCollection`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ImageCollection.md), [`Ink`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Ink.md), [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`OCREngine`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OCREngine.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`PageImageParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageImageParams.md), [`PageRotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageRotation.md), [`QREncodeParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/QREncodeParams.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md), [`RenderProgressProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RenderProgressProc.md), [`SeparationColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md), [`SeparationParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationParams.md) ## Constructors ### Page ```csharp Datalogics.PDFL.Page.Page(Document doc, int afterPageNum, Rect mediaBox) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document in which the page is created. - `afterPageNum` (`int`): The page number after which the new page is inserted. The first page is 0. Use PDBeforeFirstPage() (see PDExpT.h) to insert the new page at the beginning of a document. - `mediaBox` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the page's media box, specified in user space coordinates. Creates and acquires a new page. The page is inserted into the document at the specified location. Call PDPageRelease() when you are done using the page. ### Page ```csharp Datalogics.PDFL.Page.Page(Document doc, int pageNum) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document containing the page to acquire. - `pageNum` (`int`): The page number of the page to acquire. The first page is 0. Gets a Page from a document. **Exceptions** - `genErrBadParm` ## Properties ### ArtBox ```csharp Rect Datalogics.PDFL.Page.ArtBox { get; set; } ``` Get the page's ArtBox. The ArtBox defines the extent of the page's meaningful content (including potential white space) as intended by the page's creator. ### BBox ```csharp Rect Datalogics.PDFL.Page.BBox { get; } ``` Get the page's Bounding Box. The BBox is the smallest rectangle that encloses all of the page's visible content. Unlike the other page boxes, it is calculated from the page content and cannot be set directly. ### BleedBox ```csharp Rect Datalogics.PDFL.Page.BleedBox { get; set; } ``` Get the page's BleedBox. The BleedBox defines the region to which the contents of the page shall be clipped when output in a production environment. It includes any extra bleed area needed to account for limitations of cutting, folding, and trimming equipment. ### Content ```csharp Content Datalogics.PDFL.Page.Content { get; } ``` Creates a Content from the Page object's contents and resources. Calls to GetContent without an intervening UpdateContent return the same cached Content object, so edits made through earlier handles are visible. After a call to UpdateContent, a subsequent GetContent returns a fresh Content that reflects the committed state. ### CropBox ```csharp Rect Datalogics.PDFL.Page.CropBox { get; set; } ``` Get the page's CropBox. The CropBox defines the region to which the contents of the page are to be clipped (cropped) when displayed or printed. The default value is the page's MediaBox. ### MediaBox ```csharp Rect Datalogics.PDFL.Page.MediaBox { get; set; } ``` Get the page's MediaBox. The MediaBox defines the boundaries of the physical medium on which the page is intended to be displayed or printed. It is the largest of the page boxes and serves as the default for the CropBox. ### NumAnnotations ```csharp int Datalogics.PDFL.Page.NumAnnotations { get; } ``` Gets the number of annotations on a page. Annotations associated with pop-up windows (such as strikeouts) are counted as two annotations. Widget annotations (form fields) are included in the count. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Page.PDFDict { get; } ``` Retrieve the PDFObject representation of this object. ### PageNumber ```csharp int Datalogics.PDFL.Page.PageNumber { get; } ``` Retrieve the page number for this PDF page. Page numbers always start at zero. ### RenderWarnings ```csharp int Datalogics.PDFL.Page.RenderWarnings { get; } ``` Reports possible page rendering problems. ### Rotation ```csharp PageRotation Datalogics.PDFL.Page.Rotation { get; set; } ``` The number of degrees by which the page is rotated clockwise when displayed or printed. ### TrimBox ```csharp Rect Datalogics.PDFL.Page.TrimBox { get; set; } ``` Get the page's TrimBox. The TrimBox defines the intended dimensions of the finished page after trimming. It may be smaller than the MediaBox to account for production- related content such as printing instructions or cut marks. ### UserUnit ```csharp float Datalogics.PDFL.Page.UserUnit { get; set; } ``` Gets the size of default user space units for the page. ## Methods ### AddAnnotation ```csharp void Datalogics.PDFL.Page.AddAnnotation(int addAfter, Annotation annot) ``` **Parameters** - `addAfter` (`int`): The index into the page's annotation array where the annotation is added. The first annotation in the array has an index of zero. Passing a value of -2 adds the annotation to the end of the array. Passing other negative values produces undefined results. - `annot` ([`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md)): The annotation to add. **Returns:** `void` (Deprecated, function may be removed in the future. Instead, use the constructor for Annotation or a subclass of Annotation.) Adds an annotation at the specified location in a page's annotation array. **Exceptions** - `pdErrOpNotPermitted`: is raised if: • The annotation is of subtype Text and the document's permissions do not include EditNotes (see PermissionFlags). • The annotation is of any other subtype and the document's permissions do not include Edit. ### AddNewAnnotation ```csharp Annotation Datalogics.PDFL.Page.AddNewAnnotation(int addAfter, string subType, Rect initialRect) ``` **Parameters** - `addAfter` (`int`): Where to add the annotation in the page's annotation array. Passing a value of -2 adds the annotation to the end of the array (this is generally what you should do unless you have a need to place the annotation at a special location in the array). Passing a value of -1 adds the annotation to the beginning of the array. Passing other negative values produces undefined results. - `subType` (`string`): The subtype of the annotation to add. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A pointer to a rectangle specifying the annotation's bounds, specified in user space coordinates. **Returns:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md) The newly created annotation. (Deprecated, function may be removed in the future. Instead, use the constructor for Annotation or a subclass of Annotation.) Adds an annotation to the page. This method is equivalent to calling PDPageCreateAnnot() followed by PDPageAddAnnot(). **Exceptions** - `pdErrOpNotPermitted`: is raised if: • The annotation is of subtype Text and the document's permissions do not include EditNotes (see PermissionFlags). • The annotation is of any other subtype and the document's permissions do not include Edit. ### AddQRBarcode ```csharp bool Datalogics.PDFL.Page.AddQRBarcode(QREncodeParams params_) ``` **Parameters** - `params_` ([`QREncodeParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/QREncodeParams.md)) **Returns:** `bool` if True, the Barcode was successfully added to the Page. Add a QR Two-Dimensional Barcode encoded with the specified Params to the specified PDF page as an image. ### AddQRBarcode ```csharp void Datalogics.PDFL.Page.AddQRBarcode(string textToEncode, double x, double y, double width, double height) ``` **Parameters** - `textToEncode` (`string`): The Text to be encoded in the barcode - `x` (`double`): The horizontal location on the page in points - `y` (`double`): The vertical location on the page in points - `width` (`double`): The width of the barcode image in points - `height` (`double`): The height of the barcode image in points **Returns:** `void` Add a QR Two-Dimensional Barcode encoded with the specified Text to the page as an image. ### AsPDFObject ```csharp PDFObject Datalogics.PDFL.Page.AsPDFObject() ``` **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) Non-owning handle to this page as a generic PDFObject. Suitable for storing in dicts/arrays as an indirect reference. ### ColorConvertContent ```csharp bool Datalogics.PDFL.Page.ColorConvertContent(ColorConvertParams params_) ``` **Parameters** - `params_` ([`ColorConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorConvertParams.md)) **Returns:** `bool` True if color conversion occurred. False if nothing was color converted. Convert the colors (in place) in a page as specified by the params block by applying an ICC profile to the objects contained in the page. ### CreateAnnotation ```csharp Annotation Datalogics.PDFL.Page.CreateAnnotation(string subType, Rect initialRect) ``` **Parameters** - `subType` (`string`): The subtype of the annotation to add. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A pointer to a rectangle specifying the annotation's bounds, specified in user space coordinates. **Returns:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md) The newly created annotation. (Deprecated, function may be removed in the future. Instead, use the constructor for Annotation or a subclass of Annotation.) Creates a new annotation, associated with the specified page's Document, but not added to the page. Use AddAnnotation to add the annotation to the page. **Exceptions** - `pdErrOpNotPermitted`: is raised if: • The annotation is of subtype Text and the document's permissions do not include EditNotes (see PermissionFlags). • The annotation is of any other subtype and the document's permissions do not include Edit. ### Dispose ```csharp void Datalogics.PDFL.Page.Dispose() ``` **Returns:** `void` ### DrawContents ```csharp System.Byte[] Datalogics.PDFL.Page.DrawContents(DrawParams drawParams) ``` **Parameters** - `drawParams` ([`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md)): Parameters for the drawing operation **Returns:** `System.Byte[]` an array of bytes containing the image. Draw the contents of the page into a bitmap, and return the raw bitmap data as an array of bytes arranged in left to right, top to bottom order. Each row of the bitmap is aligned onto a four-byte boundary. The amount of data returned depends on the destRect parameter. Using integer arithmetic: stride = (width * components + 3) & ~3 array_size = stride * height ### DrawContents ```csharp System.Collections.Generic.List< System.Drawing.Bitmap > Datalogics.PDFL.Page.DrawContents(DrawParams drawParams, System.Collections.Generic.IList< SeparationColorSpace > separations) ``` **Parameters** - `drawParams` ([`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md)): Parameters for the drawing operation. - `separations` ([`System.Collections.Generic.IList< SeparationColorSpace >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md)): List of colorants, where each SeparationColorSpace was constructed from an ink and a page. Their tint transforms and alternates will be ignored **Returns:** `System.Collections.Generic.List< System.Drawing.Bitmap >` List, that contains a bitmap of each ink Draw the contents of this page to a list of grayscale bitmaps ### DrawContents ```csharp void Datalogics.PDFL.Page.DrawContents(System.Drawing.Bitmap bitmap, DrawParams parms) ``` **Parameters** - `bitmap` (`System.Drawing.Bitmap`): the image into which to rasterize the page. - `parms` ([`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md)): Parameters for the drawing operation. **Returns:** `void` Draw the contents of this page to an image. ### DrawContents ```csharp void Datalogics.PDFL.Page.DrawContents(System.Drawing.Bitmap bitmap, Matrix matrix, Rect updateRect) ``` **Parameters** - `bitmap` (`System.Drawing.Bitmap`): the image into which to rasterize the page. - `matrix` ([`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md)): A matrix to concatenate onto the default page matrix. It is useful for converting from page to window coordinates and for scaling. - `updateRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): the rectangle to draw, specified in user coordinates. Any objects outside the updateRect will not be drawn. **Returns:** `void` Draw the contents of this page to an image. NOTE: This overload is deprecated, you should use the overload DrawContents(Bitmap, DrawParams). ### DrawContents ```csharp void Datalogics.PDFL.Page.DrawContents(System.Drawing.IDeviceContext dc, DrawParams parms) ``` **Parameters** - `dc` (`System.Drawing.IDeviceContext`): A device context onto which to draw the page. - `parms` ([`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md)): Parameters for the drawing operation. **Returns:** `void` Draw the contents of this page to a device context. ### DrawContents ```csharp void Datalogics.PDFL.Page.DrawContents(System.Drawing.IDeviceContext dc, Matrix matrix, Rect updateRect) ``` **Parameters** - `dc` (`System.Drawing.IDeviceContext`): A device context onto which to draw the page. - `matrix` ([`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md)): A matrix to concatenate onto the default page matrix. It is useful for converting from page to window coordinates and for scaling. - `updateRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): the rectangle to draw, specified in user coordinates. Any objects outside the updateRect will not be drawn. **Returns:** `void` Draw the contents of this page to a device context. ### FlattenOptionalContent ```csharp bool Datalogics.PDFL.Page.FlattenOptionalContent() ``` **Returns:** `bool` true if the page was successfully flattened, false otherwise. Flattens optional content on the page. This page will be replaced with a version that has no optional content. The new version of the page will contain only what was visible on the page when the call was made. The document's default optional content context will be used to determine visibility of optional content. The optional content information formerly associated with content on the page will NOT be deleted from the document, as it is possible for optional content groups to contain items on multiple pages. ### FlattenOptionalContent ```csharp bool Datalogics.PDFL.Page.FlattenOptionalContent(OptionalContentContext occ) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which content is checked for visibility. **Returns:** `bool` true if the page was successfully flattened, false otherwise. Flattens optional content on the page. This page will be replaced with a version that has no optional content. The new version of the page will contain only what was visible on the page when the call was made. The optional content information formerly associated with content on the page will NOT be deleted from the document, as it is possible for optional content groups to contain items on multiple pages. ### GetAnnotation ```csharp Annotation Datalogics.PDFL.Page.GetAnnotation(int annotIndex) ``` **Parameters** - `annotIndex` (`int`): The index of the annotation to get on a page. The first annotation on a page has an index of zero. **Returns:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md) The indexed annotation object. Gets the annotIndex annotation on the page. ### GetBitmap ```csharp System.Drawing.Bitmap Datalogics.PDFL.Page.GetBitmap(Rect exportRect, PageImageParams pip) ``` **Parameters** - `exportRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A Rect describing the region of the page to export, specified in user space coordinates. One user unit corresponds to 1/72 inch. To export the entire page, set this parameter to the page's CropBox. User space coordinates correspond to the **unrotated** page; the rotation specified in Page.Rotation is not taken into account with these coordinates. - `pip` ([`PageImageParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageImageParams.md)): Additional parameters for the exported image, including the exported image's pixel width, pixel height, and resolution. If these parameters are not specified, the pixel width and height of the returned image are calculated using the exportRect and a resolution of 300.0. **Returns:** `System.Drawing.Bitmap` Export a region of a PDF page to a System.Drawing.Bitmap. A particular size in pixels can be specified for the exported Bitmap by setting ImageParams.PixelWidth and/or ImageParams.PixelHeight. If the exportRect is smaller than the PDF page and pip.PixelWidth and pip.PixelHeight are set, then the resulting image will be of the size pip.PixelWidth x pip.PixelHeight and contain the area of the page inside the exportRect, scaled to fit. It is also possible to use this function by specifying only pip.PixelWidth or only pip.PixelHeight. When only one is specified, the function will calculate the other. ### GetImage ```csharp Image Datalogics.PDFL.Page.GetImage(Rect exportRect) ``` **Parameters** - `exportRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A Rect describing the region of the page to export, specified in user space coordinates. One user unit corresponds to 1/72 inch. To export the entire page, set this parameter to the page's CropBox. User space coordinates correspond to the unrotated page; the rotation specified in Page.Rotation is not taken into account with these coordinates. **Returns:** [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md) An Image containing the rendered page region. Export a region of a PDF page to an Image object. If the exportRect is smaller than the PDF page, then the pixel width and pixel height of the resulting image will be calculated from the exportRect and a resolution of 300.0, containing the area of the page inside the exportRect, scaled to fit. If a specific pixel size or resolution is desired, use the version of GetImage that takes a PageImageParams as a parameter. ### GetImage ```csharp Image Datalogics.PDFL.Page.GetImage(Rect exportRect, PageImageParams ImageParams) ``` **Parameters** - `exportRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A Rect describing the region of the page to export, specified in user space coordinates. One user unit corresponds to 1/72 inch. To export the entire page, set this parameter to the page's CropBox. User space coordinates correspond to the unrotated page; the rotation specified in Page.Rotation is not taken into account with these coordinates. - `ImageParams` ([`PageImageParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageImageParams.md)): A PageImageParams containing additional parameters for the exported image, including the exported image's pixel width, pixel height, and resolution. If these parameters are not specified, the pixel width and pixel height of the image are calculated using the exportRect and a resolution of 300.0. **Returns:** [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md) An Image containing the rendered page region. Export a region of a PDF page to an Image object. This version of GetImage can be used to specify a particular size in pixels for the exported image by setting ImageParams.PixelWidth and/or ImageParams.PixelHeight. If the exportRect is smaller than the PDF page and ImageParams.PixelWidth and ImageParams.PixelHeight are set, then the resulting image will be of the size ImageParams.PixelWidth x ImageParams.PixelHeight and contain the area of the page inside the exportRect, scaled to fit. It is also possible to use this function by specifying only ImageParams.PixelWidth or only ImageParams.PixelHeight. When only one is specified, the function will calculate the other. ### GetImage ```csharp Image Datalogics.PDFL.Page.GetImage(Rect exportRect, PageImageParams ImageParams, System.Collections.Generic.IList< SeparationColorSpace > spaces) ``` **Parameters** - `exportRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A Rect describing the region of the page to export, specified in user space coordinates. One user unit corresponds to 1/72 inch. To export the entire page, set this parameter to the page's CropBox. User space coordinates correspond to the unrotated page; the rotation specified in Page.Rotation is not taken into account with these coordinates. - `ImageParams` ([`PageImageParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageImageParams.md)): A PageImageParams containing additional parameters for the exported image, including the exported image's pixel width, pixel height, and resolution. If these parameters are not specified, the pixel width and pixel height of the image are calculated using the exportRect and a resolution of 300.0. - `spaces` ([`System.Collections.Generic.IList< SeparationColorSpace >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md)): A collection of SeparationColorSpace objects. This parameter is used to specify page's inks to be drawn. Each SeparationColorSpace must be constructed from an ink and a page. Their tint transforms and alternates will be ignored. **Returns:** [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md) An Image containing the rendered page region. Export a region of a PDF page to an Image object. This version of GetImage can be used to specify a particular size in pixels for the exported image by setting ImageParams.PixelWidth and/or ImageParams.PixelHeight. It renders specified page's inks and ignores colorSpace parameter from ImageParams. This function always renders the page in DeviceN colorspace. If the exportRect is smaller than the PDF page and ImageParams.PixelWidth and ImageParams.PixelHeight are set, then the resulting image will be of the size ImageParams.PixelWidth x ImageParams.PixelHeight and contain the area of the page inside the exportRect, scaled to fit. It is also possible to use this function by specifying only ImageParams.PixelWidth or only ImageParams.PixelHeight. When only one is specified, the function will calculate the other. ### GetImageSeparations ```csharp ImageCollection Datalogics.PDFL.Page.GetImageSeparations(Rect exportRect, PageImageParams ImageParams, System.Collections.Generic.IList< SeparationColorSpace > spaces, RenderProgressProc progressProc) ``` **Parameters** - `exportRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A Rect describing the region of the page to export, specified in user space coordinates. - `ImageParams` ([`PageImageParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageImageParams.md)): A PageImageParams containing additional parameters for the exported image, including the exported image's pixel width, pixel height, and resolution. - `spaces` ([`System.Collections.Generic.IList< SeparationColorSpace >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md)): A collection of SeparationColorSpace class additional parameter for specifying colorants for bitmap rendering. - `progressProc` ([`RenderProgressProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RenderProgressProc.md)): A callback to report rendering progress. **Returns:** [`ImageCollection`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ImageCollection.md) An ImageCollection containing one Image per separation colorant. Export a region of a PDF page using the specified Separation ColorSpaces to an Image Collection object, with a progress callback. ### GetImageSeparations ```csharp ImageCollection Datalogics.PDFL.Page.GetImageSeparations(Rect exportRect, PageImageParams ImageParams, System.Collections.Generic.IList< SeparationColorSpace > spacesCollection) ``` **Parameters** - `exportRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A Rect describing the region of the page to export, specified in user space coordinates. One user unit corresponds to 1/72 inch. To export the entire page, set this parameter to the page's CropBox. User space coordinates correspond to the unrotated page; the rotation specified in Page.Rotation is not taken into account with these coordinates. - `ImageParams` ([`PageImageParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageImageParams.md)): A PageImageParams containing additional parameters for the exported image, including the exported image's pixel width, pixel height, and resolution. If these parameters are not specified, the pixel width and pixel height of the image are calculated using the exportRect and a resolution of 300.0. - `spacesCollection` ([`System.Collections.Generic.IList< SeparationColorSpace >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md)): A collection of SeparationColorSpace class additional parameter for specifying colorants for bitmap rendering. Each SeparationColorSpace must be constructed from an ink and a page. Their tint transforms and alternates will be ignored. **Returns:** [`ImageCollection`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ImageCollection.md) An ImageCollection containing one Image per separation colorant. Export a region of a PDF page using the specified Separation ColorSpaces to an Image Collection object. This version of GetImage can be used to specify a particular size in pixels for the exported image by setting ImageParams.PixelWidth and/or ImageParams.PixelHeight. If the exportRect is smaller than the PDF page and ImageParams.PixelWidth and ImageParams.PixelHeight are set, then the resulting image will be of the size ImageParams.PixelWidth x ImageParams.PixelHeight and contain the area of the page inside the exportRect, scaled to fit. It is also possible to use this function by specifying only ImageParams.PixelWidth or only ImageParams.PixelHeight. When only one is specified, the function will calculate the other. ### GetOutputPreviewImage ```csharp Image Datalogics.PDFL.Page.GetOutputPreviewImage(Rect exportRect, PageImageParams ImageParams, System.Collections.Generic.IList< SeparationColorSpace > spaces) ``` **Parameters** - `exportRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A Rect describing the region of the page to export, specified in user space coordinates. One user unit corresponds to 1/72 inch. To export the entire page, set this parameter to the page's CropBox. User space coordinates correspond to the unrotated page; the rotation specified in Page.Rotation is not taken into account with these coordinates. - `ImageParams` ([`PageImageParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageImageParams.md)): A PageImageParams containing additional parameters for the exported image, including the exported image's pixel width, pixel height, and resolution. If these parameters are not specified, the pixel width and pixel height of the image are calculated using the exportRect and a resolution of 300.0. - `spaces` ([`System.Collections.Generic.IList< SeparationColorSpace >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md)): A collection of SeparationColorSpace class additional parameter for specifying colorants for bitmap rendering. Each SeparationColorSpace must be constructed from an ink and a page. **Returns:** [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md) An Image representing the output preview of the page region. Create an Output Preview image used when Soft Proofing a document prior to actual printing. ### GetOutputPreviewImage ```csharp Image Datalogics.PDFL.Page.GetOutputPreviewImage(Rect exportRect, PageImageParams ImageParams, System.Collections.Generic.IList< SeparationColorSpace > spaces, bool simulateOverprint) ``` **Parameters** - `exportRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A Rect describing the region of the page to export, specified in user space coordinates. One user unit corresponds to 1/72 inch. To export the entire page, set this parameter to the page's CropBox. User space coordinates correspond to the unrotated page; the rotation specified in Page.Rotation is not taken into account with these coordinates. - `ImageParams` ([`PageImageParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageImageParams.md)): A PageImageParams containing additional parameters for the exported image, including the exported image's pixel width, pixel height, and resolution. If these parameters are not specified, the pixel width and pixel height of the image are calculated using the exportRect and a resolution of 300.0. - `spaces` ([`System.Collections.Generic.IList< SeparationColorSpace >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md)): A collection of SeparationColorSpace class additional parameter for specifying colorants for bitmap rendering. Each SeparationColorSpace must be constructed from an ink and a page. - `simulateOverprint` (`bool`): A flag that controls if Overprint is simulated or not for Spot Colorants. NOTE: A file with Overprinting, Process, and Spot Colorants can yield a different appearance when Simulation is enabled compared to when it's not. **Returns:** [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md) An Image representing the output preview of the page region. Create an Output Preview image used when Soft Proofing a document prior to actual printing. ### HasTransparency ```csharp bool Datalogics.PDFL.Page.HasTransparency(bool includeAnnotAppearances) ``` **Parameters** - `includeAnnotAppearances` (`bool`): If true, annotation appearances are included in the check; if false, annotation appearances will be ignored. **Returns:** `bool` true if the page uses transparency features, false otherwise. Checks whether a page uses any transparency features. Note: To determine whether a page uses transparency, the resources of the page must be enumerated (though the page contents do not need to be parsed). The page resources may not be optimized for slow (browser-based) connections, so calling Page.HasTransparency() before the page has been downloaded may cause unpleasant read behavior and performance problems. ### ListInks ```csharp System.Collections.Generic.IList< Ink > Datalogics.PDFL.Page.ListInks() ``` **Returns:** [`System.Collections.Generic.IList< Ink >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Ink.md) A list of Ink objects representing the inks used on this page. Retrieve a list of all inks present on a page. ### ListInks ```csharp System.Collections.Generic.IList< Ink > Datalogics.PDFL.Page.ListInks(bool includeOPI) ``` **Parameters** - `includeOPI` (`bool`): If true, include inks contained in OPI dictionaries. **Returns:** [`System.Collections.Generic.IList< Ink >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Ink.md) A list of Ink objects representing the inks used on this page. Retrieve a list of all inks present on a page. ### MakeSeparations ```csharp void Datalogics.PDFL.Page.MakeSeparations(SeparationParams params_) ``` **Parameters** - `params_` ([`SeparationParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationParams.md)) **Returns:** `void` Generate print color separations for a page. ### RecognizePageContents ```csharp void Datalogics.PDFL.Page.RecognizePageContents(Document doc, OCREngine engine) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document the page being OCR'd belongs to - `engine` ([`OCREngine`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OCREngine.md)): The OCR engine instance that will be used to OCR document **Returns:** `void` Run optical character recognition (OCR) on a page. ### RemoveAnnotation ```csharp void Datalogics.PDFL.Page.RemoveAnnotation(int annotIndex) ``` **Parameters** - `annotIndex` (`int`): The index (into the page's annotation array) of the annotation to remove. **Returns:** `void` Removes an annotation from the specified page. Annotations are stored in arrays, which are automatically compressed when an annotation is removed. For this reason, if you use a loop in which you remove annotations, structure the code so the loop processes from the highest to the lowest index. If you loop the other direction, you will skip over annotations immediately following ones you remove. **Exceptions** - `pdErrOpNotPermitted`: is raised if: • The annotation is of subtype Text and the document's permissions do not include EditNotes (see PermissionFlags). • The annotation is of any other subtype and the document's permissions do not include Edit. ### UpdateContent ```csharp void Datalogics.PDFL.Page.UpdateContent() ``` **Returns:** `void` Commits in-memory edits to the Page's Content back into the Page, using the same compression filters the content was previously encoded with. Edits made through the Content object returned by GetContent are held in memory until UpdateContent is called. Document.Save does not implicitly commit content edits; a Page that has been edited but not committed will be saved in its pre-edit state. --- # PageDeleteFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageDeleteFlags **Namespace:** `Datalogics::PDFL` ## Values - `Normal = 1`: Normal page deletion. - `DoNotParseStructureTree = 2`: Do not parse Structure Tree. For documents with a complicated Structure Tree, parsing can be exhorbitantly slow. Set this flag to bypass processing it. --- # PageImageParams Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageImageParams ```csharp class PageImageParams : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Used to manage converting a PDF page to an image. The Page Image Parameters are a set of parameters used to control converting a PDF page to an image, such as a PNG, JPG, or BMP. The parameters include pixel height & width, color space, resolution, so on. **Referenced by:** [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md) **Uses types:** [`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md), [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`DrawFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/DrawFlags.md), [`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md), [`SmoothFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SmoothFlags.md) ## Constructors ### PageImageParams ```csharp Datalogics.PDFL.PageImageParams.PageImageParams() ``` *constructor* Construct default PageImageParams. Initializes with DeviceRGB color space, no smoothing, zero pixel dimensions, 300 dpi resolution, relative colorimetric render intent, and black point compensation enabled. ### PageImageParams ```csharp Datalogics.PDFL.PageImageParams.PageImageParams(ColorSpace ColorSpace, SmoothFlags Smoothing, int PixelWidth, int PixelHeight, double HorizontalResolution, double VerticalResolution, DrawFlags PageDrawFlags) ``` *constructor* **Parameters** - `ColorSpace` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The desired color space for the image, DEVICERGB, DEVICECMYK or DEVICEGRAY only. - `Smoothing` ([`SmoothFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SmoothFlags.md)): Indicates what parts of PDF Page (text, image, art, none) are to be smoothed in rendering to an image. Note these flags can be or'd together - `PixelWidth` (`int`): The desired witdth in pixels of the output image. - `PixelHeight` (`int`): The desired height in pixels of the output image. - `HorizontalResolution` (`double`): The desired horizontal resolution in pixels/inch of the output image. If you pass in 0.0, 300.0 dpi is used. - `VerticalResolution` (`double`): The desired vertical resolution in pixels/inch of the output image. If you pass in 0.0, 300.0 dpi is used. - `PageDrawFlags` ([`DrawFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/DrawFlags.md)): An OR of the flags from DrawFlags which control how the PDF page is to be drawn. Set up the parameters for rendering a PDF page to an image. Horizontal and Vertical Resolution have to be either both zero or both non-zero. ## Properties ### BlackPointCompensation ```csharp bool Datalogics.PDFL.PageImageParams.BlackPointCompensation { get; set; } ``` The BlackPointCompensation setting. Default is true if not explicitly set. ### BypassCopyPerm ```csharp bool Datalogics.PDFL.PageImageParams.BypassCopyPerm { get; set; } ``` The BypassCopyPerm allows to bypass copy permitions. ### CalibrateDeviceSpacesWhenPrinting ```csharp bool Datalogics.PDFL.PageImageParams.CalibrateDeviceSpacesWhenPrinting { get; set; } ``` Sets if Device spaces should be treated as calibrated to the associated working profile (when true), otherwise it treats them as uncalibrated (when false) when printing. ### HorizontalResolution ```csharp double Datalogics.PDFL.PageImageParams.HorizontalResolution { get; set; } ``` The desired horizontal resolution in pixels/inch of the output image. Defaults to 300 dpi. Must not be negative. Horizontal and vertical resolution must be either both zero or both non-zero. ### ICCProfile ```csharp ColorProfile Datalogics.PDFL.PageImageParams.ICCProfile { get; set; } ``` Gets the ICC Profile of the colorspace to be used for rendering from a known value. NOTE: The ICCProfileCustomPath must not be set for this property to be used. The profile must be compatible with the ColorSpace property value, which can't be set to ICCBased either. ### ICCProfileCustomPath ```csharp string Datalogics.PDFL.PageImageParams.ICCProfileCustomPath { get; set; } ``` Gets the ICC Profile of the colorspace to be used for rendering from a custom file path. NOTE: The ICCProfile is ignored when this property is a non-empty string. The profile must be compatible with the ColorSpace property value, which can't be set to ICCBased either. ### ImageColorSpace ```csharp ColorSpace Datalogics.PDFL.PageImageParams.ImageColorSpace { get; set; } ``` The ColorSpace used in exporting a PDF page to an image. Must be one of DeviceGray, DeviceRGB, DeviceRGBA, DeviceCMYK, DeviceN, or ICCBased. ### PageDrawFlags ```csharp DrawFlags Datalogics.PDFL.PageImageParams.PageDrawFlags { get; set; } ``` The DrawFlags used for rendering a PDF page to an image. An OR of the flags from DrawFlags which control how the PDF page is drawn. ### PixelHeight ```csharp int Datalogics.PDFL.PageImageParams.PixelHeight { get; set; } ``` The height in pixels of the image to be created from a PDF page. If not specified (zero), the rendered PDF page size will be used. PixelWidth and PixelHeight must be either both zero or both non-zero. ### PixelWidth ```csharp int Datalogics.PDFL.PageImageParams.PixelWidth { get; set; } ``` The width in pixels of the image to be created from a PDF page. If not specified (zero), the rendered PDF page size will be used. PixelWidth and PixelHeight must be either both zero or both non-zero. ### RenderIntent ```csharp RenderIntent Datalogics.PDFL.PageImageParams.RenderIntent { get; set; } ``` The RenderIntent used to specify color translation for colors outside gamut of the color profile used. The default is relative colorimetric. ### Smoothing ```csharp SmoothFlags Datalogics.PDFL.PageImageParams.Smoothing { get; set; } ``` The SmoothFlags used in exporting a PDF page to an image. Indicates what parts of the PDF page (text, image, art, none) are to be smoothed when rendering to an image. These flags can be OR'd together. ### ThinLineHeuristics ```csharp bool Datalogics.PDFL.PageImageParams.ThinLineHeuristics { get; set; } ``` The ThinLineHeuristics setting. Determines whether thin lines will be fattened non-linearly or the stroke adjust will be applied to thin rectangles. ### UseDeviceNForImageSeparations ```csharp bool Datalogics.PDFL.PageImageParams.UseDeviceNForImageSeparations { get; set; } ``` Gets the UseDeviceNForImageSeparations setting, which indicates when the GetImageSeparations() method is called if a DeviceN colorspace will be used for rasterization. When false, if only Process colorants are provided to GetImageSeparations() then it's rendered using DeviceCMYK. When true, then it's rendered using DeviceN. ### VerticalResolution ```csharp double Datalogics.PDFL.PageImageParams.VerticalResolution { get; set; } ``` The desired vertical resolution in pixels/inch of the output image. Defaults to 300 dpi. Must not be negative. Horizontal and vertical resolution must be either both zero or both non-zero. ## Methods ### Dispose ```csharp void Datalogics.PDFL.PageImageParams.Dispose() ``` **Returns:** `void` --- # PageInsertFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageInsertFlags **Namespace:** `Datalogics::PDFL` ## Values - `None = 0`: Do not insert bookmarks, threads, or document data. - `Bookmarks = 1`: Insert bookmarks as well as pages. - `All = 4096`: Insert all Catalog and Info dictionary values as well as pages. The bookmark tree of the inserted document is merged into the bookmark tree of the target document by copying it as a new first-level subtree of that document's bookmark tree root, of which it becomes the last child. If the target document has no bookmark tree, it acquires one identical to the bookmark tree from the source document. - `Threads = 2`: Insert articles as well. - `DoNotMergeFonts = 8`: Do not merge duplicate fonts on merge: may result in larger files when saved, but can show performance benefits when inserting a page that uses a large number of fonts - `DoNotResolveInvalidStructureParentReferences = 16`: Do not resolve invalid Parent References in the Structure Tree. This is not necessary in most cases and can show performance benefits for a document with a complicated Structure Tree. - `DoNotRemovePageInheritance = 32`: Do not remove page inheritance. This can slow down the performance when document has very large page tree. --- # PageLabel Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageLabel ```csharp class PageLabel : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Describes numbering labels for a range of pages. PageLabel describes how to construct a label string for a range of pages. It contains information on number style, any prefixes, and a starting position within the document. Note that a single PageLabel describes the label string for several pages all pages up until the first page covered by the next PageLabel, or the end of the document. Also note that if a Document has any PageLabels, there must be one that starts at page index 0. This will be automatically created if the user does not supply one. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) **Uses types:** [`NumberStyle`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/NumberStyle.md) ## Constructors ### PageLabel ```csharp Datalogics.PDFL.PageLabel.PageLabel(int start, NumberStyle ns) ``` *constructor* **Parameters** - `start` (`int`): Starting page index in the Document for this range - `ns` ([`NumberStyle`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/NumberStyle.md)): Numbering style for this range Convenience constructor creates a range with no prefix starting with number 1. ### PageLabel ```csharp Datalogics.PDFL.PageLabel.PageLabel(int start, NumberStyle ns, string p, int first) ``` *constructor* **Parameters** - `start` (`int`): Starting page index in the Document for this range - `ns` ([`NumberStyle`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/NumberStyle.md)): Numbering style for this range - `p` (`string`): Prefix string for this range - `first` (`int`): First number appearing on a page in this range Public constructor ## Properties ### EndPageIndex ```csharp int Datalogics.PDFL.PageLabel.EndPageIndex { get; } ``` The zero-based ending page index for this page label range. You cannot set the end index for a range; you must change the start index for the following range. A value of -1 means the end index for this PageLabel is unknown (e.g. when the label has not yet been added to a Document). ### FirstNumberInRange ```csharp int Datalogics.PDFL.PageLabel.FirstNumberInRange { get; set; } ``` The first numeric value used for page labels in this range. Must be greater than or equal to 1. ### NumberStyle ```csharp NumberStyle Datalogics.PDFL.PageLabel.NumberStyle { get; set; } ``` The NumberStyle used for generating page labels in this range. ### Prefix ```csharp string Datalogics.PDFL.PageLabel.Prefix { get; set; } ``` The prefix string prepended to page labels in this range. For example, a prefix of "A-" with decimal numbering starting at 1 would produce labels "A-1", "A-2", "A-3", etc. ### StartPageIndex ```csharp int Datalogics.PDFL.PageLabel.StartPageIndex { get; set; } ``` The zero-based starting page index for this page label range in the Document. ## Methods ### Dispose ```csharp void Datalogics.PDFL.PageLabel.Dispose() ``` **Returns:** `void` ### ToString ```csharp override string Datalogics.PDFL.PageLabel.ToString() ``` **Returns:** `override string` A string describing this PageLabel. Returns a string representation of this PageLabel. The string includes the start page, end page, number style, prefix, and first page number of this label range. --- # PageMarkFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageMarkFlags **Namespace:** `Datalogics::PDFL` ## Description Bit flags indicating which page marks are emitted for color separations. ## Values - `ColorBars = 1`: Emit color bar marks for verifying color reproduction. - `RegistrationMarks = 2`: Emit registration marks for aligning color separations. - `CropMarks = 4`: Emit crop marks indicating where the page should be trimmed. - `BleedMarks = 8`: Emit bleed marks indicating the bleed area boundary. - `PageInfo = 16`: Emit page information such as the file name and date. - `TrimMarks = 32`: Emit trim marks indicating the finished page dimensions. - `SlurMarks = 64`: Emit slur marks for detecting imaging distortion. --- # PageMode Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageMode **Namespace:** `Datalogics::PDFL` ## Description An enumerated data type used to describe the page view mode of a Document. ## Values - `NoPreference = 0`: Leave the PageMode as is (default for a new Document) - `DocumentOnly = 1`: Display the Document without Bookmarks or Thumbnails (appears in the Document structure as "UseNone") - `Bookmarks = 3`: Display the Document with the Bookmarks panel open (appears in the Document structure as "UseOutlines") - `Thumbnails = 2`: Display the Document with the Thumbnails panel open - `Fullscreen = 4`: Display the Document in full-screen mode - `OptionalContent = 6`: Display the Document with the Layers panel open - `Attachments = 7`: Display the Document with its attachments --- # PageRange Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageRange ```csharp class PageRange : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Specifies a range of pages in a document (page numbers begin with 0). **Referenced by:** [`PrintParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintParams.md), [`WatermarkParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WatermarkParams.md) **Uses types:** [`PageSpec`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageSpec.md) ## Constructors ### PageRange ```csharp Datalogics.PDFL.PageRange.PageRange() ``` *constructor* Specifies a range of pages in a document (page numbers begin with 0). ### PageRange ```csharp Datalogics.PDFL.PageRange.PageRange(int argStartPage, int argEndPage, PageSpec argPageSpec) ``` *constructor* **Parameters** - `argStartPage` (`int`) - `argEndPage` (`int`) - `argPageSpec` ([`PageSpec`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageSpec.md)) Specifies a range of pages in a document (page numbers begin with 0). ### PageRange ```csharp Datalogics.PDFL.PageRange.PageRange(int argStartPage, int argEndPage, PageSpec argPageSpec, int argPagePaperSource) ``` *constructor* **Parameters** - `argStartPage` (`int`) - `argEndPage` (`int`) - `argPageSpec` ([`PageSpec`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageSpec.md)) - `argPagePaperSource` (`int`) Specifies a range of pages in a document (page numbers begin with 0). ## Properties ### EndPage ```csharp int Datalogics.PDFL.PageRange.EndPage { get; set; } ``` The ending page number. ### PagePaperSource ```csharp short Datalogics.PDFL.PageRange.PagePaperSource { get; set; } ``` The paper source of a printer device for a particular PageRange. NOTE: This property is only relevant if printing and only on Windows. A value of 0 indicates this setting has no effect. ### PageSpec ```csharp PageSpec Datalogics.PDFL.PageRange.PageSpec { get; set; } ``` ### StartPage ```csharp int Datalogics.PDFL.PageRange.StartPage { get; set; } ``` The starting page number. ## Methods ### Dispose ```csharp void Datalogics.PDFL.PageRange.Dispose() ``` **Returns:** `void` --- # PageRenderWarning Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageRenderWarning **Namespace:** `Datalogics::PDFL` ## Values - `NeedAppearancesFlagWarning = 0x01`: The NeedAppearances flag is on in the AcroForm dictionary and some content may not render - `AnnotRTSWarning = 0x02`: One or more Annotations contain Rich Text String Content and will not render if the NormalAppearance stream is not set - `AnnotMissingNormalAppearanceWarning = 0x04`: One or more Annotations of an unsupported type are missing its NormalAppearance stream and will not render - `LessImageDataThanExpectedWarning = 0x08`: An image on the page lacks sufficient data, if rendered the missing data will be filled in by white pixels. --- # PageRotation Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageRotation **Namespace:** `Datalogics::PDFL` ## Values - `Rotate0 = 0`: Rotate 0 degrees. - `Rotate90 = 90`: Rotate 90 degrees. - `Rotate180 = 180`: Rotate 180 degrees. - `Rotate270 = 270`: Rotate 270 degrees. --- # PageSegmentationMode Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageSegmentationMode **Namespace:** `Datalogics::PDFL` ## Description Specify how the OCR engine will view the page, and how it detects text segments. ## Values - `OSDOnly = 0`: Orientation and script detection (OSD). - `AutomaticOSD = 1`: Automatic page segmentation with OSD. - `Automatic = 2`: Automatic without OSD. - `SingleColumn = 3`: Assume a single column of text. - `SingleBlockVertical = 4`: Assume a single block of vertically aligned text. - `SingleBlock = 5`: Assume a single block of text. - `SingleLine = 6`: Assume a single line of text. - `SingleWord = 7`: Assume a single word. - `CircleWord = 8`: Assume a single word in a circle. - `SingleChar = 9`: Assume a single char. - `SparseText = 10`: Find all text in no particular order. - `SparseTextOSD = 11`: Sparse text with OSD. - `RawLine = 12`: Treat as a raw line with no input processing. --- # PageSpec Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageSpec **Namespace:** `Datalogics::PDFL` ## Description Page range specifications ## Values - `AllPages = -3`: All pages - `OddPagesOnly = -4`: Odd pages only - `EvenPagesOnly = -5`: Even pages only --- # PageTilingMode Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageTilingMode **Namespace:** `Datalogics::PDFL` ## Description PageTilingMode ## Values - `None = 0`: Print all pages normally - `TileAllPages = 1`: Use tiling settings for all pages - `TileLargePages = 2`: Use tiling only for pages larger than size indicated in PDTileRec of tileInfo --- # PaperSource Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PaperSource ```csharp class PaperSource : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Defines a set of paper trays in a printer that can be used to select the paper source when printing. ## Fields ### Auto ```csharp static const int Datalogics.PDFL.PaperSource.Auto ``` *static* Auto select based on paper size ### Cassette ```csharp static const int Datalogics.PDFL.PaperSource.Cassette ``` *static* Use paper from the cassette tray ### EnvMaual ```csharp static const int Datalogics.PDFL.PaperSource.EnvMaual ``` *static* Use paper from the envelope manual feed ### Envelope ```csharp static const int Datalogics.PDFL.PaperSource.Envelope ``` *static* Use paper from the envelope tray ### First ```csharp static const int Datalogics.PDFL.PaperSource.First ``` *static* Use paper from the upper tray ### FormSource ```csharp static const int Datalogics.PDFL.PaperSource.FormSource ``` *static* Use paper from the forms tray ### LargeCapacity ```csharp static const int Datalogics.PDFL.PaperSource.LargeCapacity ``` *static* Use paper from the large capacity tray ### LargeFMT ```csharp static const int Datalogics.PDFL.PaperSource.LargeFMT ``` *static* Use paper from the large forms tray ### Last ```csharp static const int Datalogics.PDFL.PaperSource.Last ``` *static* Use paper from the forms tray ### Lower ```csharp static const int Datalogics.PDFL.PaperSource.Lower ``` *static* Use paper from the lower tray ### Manual ```csharp static const int Datalogics.PDFL.PaperSource.Manual ``` *static* Use paper from the manual feed ### Middle ```csharp static const int Datalogics.PDFL.PaperSource.Middle ``` *static* Use paper from the middle tray ### OnlyOne ```csharp static const int Datalogics.PDFL.PaperSource.OnlyOne ``` *static* Use paper from the upper tray ### SmallFMT ```csharp static const int Datalogics.PDFL.PaperSource.SmallFMT ``` *static* Use paper from the small forms tray ### Tractor ```csharp static const int Datalogics.PDFL.PaperSource.Tractor ``` *static* Use paper from the tractor feed ### Upper ```csharp static const int Datalogics.PDFL.PaperSource.Upper ``` *static* Use paper from the upper tray ### UseSystemDefault ```csharp static const int Datalogics.PDFL.PaperSource.UseSystemDefault ``` *static* Use the default paper source ### User ```csharp static const int Datalogics.PDFL.PaperSource.User ``` *static* Use paper from device specific trays by setting PaperSource to a value larger than User ## Methods ### Dispose ```csharp void Datalogics.PDFL.PaperSource.Dispose() ``` **Returns:** `void` --- # Path Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Path ```csharp class Path : Element ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) ## Description A path in a PDF file defines shapes. Paths in PDF files are used to draw lines, define filled areas, and define boundaries for clipping graphics. A path is composed of straight and curved line segments. **Referenced by:** [`Path`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Path.md) **Uses types:** [`Clip`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Clip.md), [`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md), [`GraphicState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GraphicState.md), [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`Path`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Path.md), [`PathPaintOpFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PathPaintOpFlags.md), [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md), [`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md), [`Segment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Segment.md) ## Constructors ### Path ```csharp Datalogics.PDFL.Path.Path() ``` *constructor* Create a path. ### Path ```csharp Datalogics.PDFL.Path.Path(GraphicState graphicState) ``` *constructor* **Parameters** - `graphicState` ([`GraphicState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GraphicState.md)): the initial graphic state for the path Create a path with a given graphic state. ## Properties ### BoundingBox ```csharp Rect Datalogics.PDFL.Element.BoundingBox { get; } ``` The bounding box for this element. The bounding box is a rectangle that is guaranteed to encompass the element, but it is not guaranteed to be the smallest box that could contain the element. For example, if the element is a Path that contains an arc, the bounding box encompasses the bezier control points, and not just the curve itself. ### Clip ```csharp Clip Datalogics.PDFL.Element.Clip { get; set; } ``` Gets the current Clip for an Element. ### GraphicState ```csharp GraphicState Datalogics.PDFL.Path.GraphicState { get; set; } ``` Get the graphic state of the current path. May return null if this element does not have a GraphicState. ### Matrix ```csharp Matrix Datalogics.PDFL.Element.Matrix { get; set; } ``` The transformation matrix for the element. ### PaintOp ```csharp PathPaintOpFlags Datalogics.PDFL.Path.PaintOp { get; set; } ``` Gets the fill and stroke attributes of a path. ### Segments ```csharp System.Collections.Generic.IList Datalogics.PDFL.Path.Segments { get; set; } ``` Get the segments of the path. Returns a list of Segment objects, one for each segment in the path. ## Methods ### AddCurve ```csharp void Datalogics.PDFL.Path.AddCurve(Point Point1, Point Point2, Point Point3) ``` **Parameters** - `Point1` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): first Bezier control point - `Point2` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): second Bezier control point - `Point3` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the ending Point of the Bezier curve which will also be the current point of the current path. **Returns:** `void` Adds a Bezier curve from the current path using the first two points specified as Bezier control points ending at the third point. The new current point is then set to the third point. ### AddCurveV ```csharp void Datalogics.PDFL.Path.AddCurveV(Point Point1, Point Point2) ``` **Parameters** - `Point1` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): first Bezier control point - `Point2` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the ending Point of the Bezier curve which will also be the new current point of the path. **Returns:** `void` Adds a Bezier curve from the current path. This extends from the current path to the point Point2 using the current point and the first point specified as Bezier control points ending at the second point. The new current point is then set to the second point. ### AddCurveY ```csharp void Datalogics.PDFL.Path.AddCurveY(Point Point1, Point Point2) ``` **Parameters** - `Point1` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): first Bezier control point - `Point2` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): second Bezier control point and the ending Point of the Bezier curve which will also be the new current point of the path. **Returns:** `void` Adds a Bezier curve from the current path. This extends from the current path to the point Point2 using the two points specified as Bezier control points ending at the second point. The new current point is then set to the second point. ### AddLine ```csharp void Datalogics.PDFL.Path.AddLine(Point Point) ``` **Parameters** - `Point` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the coordinates of the endpoint of the new line. **Returns:** `void` Adds a line to the current path from the current path position. The given point becomes the new current position. ### AddRect ```csharp void Datalogics.PDFL.Path.AddRect(Point Point, double Width, double Height) ``` **Parameters** - `Point` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the coordinates of the lower left corner of the new rectangle. - `Width` (`double`): the width of the new rectangle. - `Height` (`double`): the height of the new rectangle. **Returns:** `void` Adds a rectangle to the current path with the lower left corner at the give point, and with the width and height specified. ### Clone ```csharp new Path Datalogics.PDFL.Path.Clone() ``` **Returns:** `new Path` The copied path. Makes a copy of the path. Make a copy of an path to obtain a new path that has a distinct set of attributes. ### Clone ```csharp new Path Datalogics.PDFL.Path.Clone(ElementCloneFlags cloneFlags) ``` **Parameters** - `cloneFlags` ([`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md)): Flags that modify the cloning operation. **Returns:** `new Path` The copied path. Makes a copy of the path. Make a copy of an path to obtain a new path that has a distinct set of attributes. ### ClosePath ```csharp void Datalogics.PDFL.Path.ClosePath() ``` **Returns:** `void` Closes the current subpath. ### ColorConvert ```csharp Path Datalogics.PDFL.Path.ColorConvert(Document document, ColorProfile prof, RenderIntent intent, bool embed) ``` **Parameters** - `document` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document the element belongs to. - `prof` ([`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md)): The ICC ColorProfile to be applied. - `intent` ([`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md)): The ICC Rendering Intent for the ColorProfile - `embed` (`bool`): If true, embed the color space and make the object calibrated. If it is false and the target profile is CMYK, RGB, or Gray, the colors space of the resulting object, after conversion, will be DeviceCMYK, DeviceRGB, or DeviceGray, respectively. **Returns:** [`Path`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Path.md) A new Path with the applied ICC ColorProfile. Applies the specified ICC ColorProfile to the Path ### Dispose ```csharp void Datalogics.PDFL.Element.Dispose() ``` **Returns:** `void` ### MoveTo ```csharp void Datalogics.PDFL.Path.MoveTo(Point Point) ``` **Parameters** - `Point` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the coordinates of the new current point. **Returns:** `void` Moves the current point of the path to the given point. ### Rotate ```csharp void Datalogics.PDFL.Element.Rotate(double theta) ``` **Parameters** - `theta` (`double`): The rotation angle in degrees. **Returns:** `void` Rotate an element by theta degrees counterclockwise using the matrix [ cos T sin T -sin T cos T 0 0 ]. ### Scale ```csharp void Datalogics.PDFL.Element.Scale(double sx, double sy) ``` **Parameters** - `sx` (`double`): The horizontal scale factor. - `sy` (`double`): The vertical scale factor. **Returns:** `void` Scale an element by (sx,sy) units using the matrix [ sx 0 0 sy 0 0 ]. ### Translate ```csharp void Datalogics.PDFL.Element.Translate(double tx, double ty) ``` **Parameters** - `tx` (`double`): The horizontal translation distance in user space units. - `ty` (`double`): The vertical translation distance in user space units. **Returns:** `void` Translate an element by (tx,ty) units using the matrix [ 1 0 0 1 tx ty ]. --- # PathOperators Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PathOperators **Namespace:** `Datalogics::PDFL` ## Description Enumerated data type for path segment operators in PDEPath elements. Each value corresponds to a PDF path construction operator (moveto, lineto, curveto, etc.). ## Values - `Move = 0`: Designates the m (moveto) operator, which moves the current point. - `Line = 1`: Designates the l (lineto) operator, which appends a straight line segment from the current point. - `Curve = 2`: Designates the c (curveto) operator, which appends a bezier curve to the path. - `RectPath = 3`: Designates the re operator, which adds a rectangle to the current path. - `Close = 4`: Designates the h (closepath) operator, which closes the current sub-path. --- # PathPaintOpFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PathPaintOpFlags **Namespace:** `Datalogics::PDFL` ## Description Flags indicating the different paint operations for a Path. These flags control whether a path is stroked, filled, or both, and which fill rule is used. ## Values - `Neither = 0x00`: The path is neither stroked or filled. - `Stroke = 0x01`: Stroke the path, as with the S (stroke) operator. - `Fill = 0x02`: Fill the path, using the nonzero winding rule to determine the region to fill, as with the f (fill) operator. - `EoFill = 0x04`: Fill the path, using the even/odd rule to determine the region to fill, as with the f* (eofill) operator. --- # Pattern Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Pattern ```csharp class Pattern : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` **Derived classes:** [`ShadingPattern`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ShadingPattern.md) ## Description A pattern is used to fill an area to be painted. A tiling pattern consists of a repeating graphical figure that is replicated across an area to be filled in, or painted. A shading pattern provides smoothly varying gradients of color, to produce a transition between colors across an area. **Referenced by:** [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md) **Uses types:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Properties ### PDFObject ```csharp PDFObject Datalogics.PDFL.Pattern.PDFObject { get; } ``` Gets the underlying PDF object for this pattern. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Pattern.Dispose() ``` **Returns:** `void` ### ToString ```csharp override string Datalogics.PDFL.Pattern.ToString() ``` **Returns:** `override string` A string describing this Pattern. Convert a pattern to a string representation. --- # PDDocFormsType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDDocFormsType **Namespace:** `Datalogics::PDFL` ## Values - `None = 1`: Document contains no Forms. - `DynamicXFA = 2`: Document contains Dynamic XFA Forms. - `StaticXFA = 3`: Document contains Static XFA Forms. - `AcroForms = 4`: Document contains AcroForms. --- # PDETextFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDETextFlags **Namespace:** `Datalogics::PDFL` ## Description Flags that control how text is accessed or measured within a PDEText object. ## Values - `KPDETextRun = 0x0001`: Text run. - `KPDETextChar = 0x0002`: Character (text run with only one character). - `KPDETextPageSpace = 0x0004`: Obtain the advance width in page space. - `KPDETextGetBounds = 0x0008`: Fill in the left and right bounds of the text run's bounding box. --- # PDFAConvertParams Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFAConvertParams ```csharp class PDFAConvertParams : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Parameters for converting a document to PDF/A compliance. These parameters control how a Document is converted to the PDF/A standard. • `RemoveAllAnnotations` if true, will remove all Annotations and Actions from the output • `IgnoreFontErrors` if true, will try to rasterize the page when fonts cannot be embedded • `AbortIfXFAIsPresent` if true, will abort conversion process if XFA form entry is detected • `NoValidationErrors` if true, will ignore validation errors • `RasterizationResolution` rasterization resolution; if 0, use 72 DPI • `ValidateImplementationLimitsOfDocument` Validate PDF Implementation Limits of the Document. PDF/A is an ISO-standard version the PDF format. It is designed to be used with PDF files that need to be archived and stored for long periods. For example, the fonts in a PDF/A file are embedded in the file itself, rather than accessed through a link to a font directory on a local server. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) ## Constructors ### PDFAConvertParams ```csharp Datalogics.PDFL.PDFAConvertParams.PDFAConvertParams() ``` *constructor* Default constructor for PDFAConvertParams. Initializes with RemoveAllAnnotations = false, IgnoreFontErrors = true, AbortIfXFAIsPresent = false, NoValidationErrors = false, RasterizationResolution = 72, and ValidateImplementationLimitsOfDocument = true. ### PDFAConvertParams ```csharp Datalogics.PDFL.PDFAConvertParams.PDFAConvertParams(bool RemoveAllAnnotations, bool IgnoreFontErrors, bool AbortIfXFAIsPresent) ``` *constructor* **Parameters** - `RemoveAllAnnotations` (`bool`): Remove all annotations whether legal or illegal. - `IgnoreFontErrors` (`bool`): Rasterize a page when fonts cannot be embedded. - `AbortIfXFAIsPresent` (`bool`): Abort when XFA is present for PDF/A-1. Parameters for converting to PDF/A. ### PDFAConvertParams ```csharp Datalogics.PDFL.PDFAConvertParams.PDFAConvertParams(bool removeAllAnnotations, bool ignoreFontErrors, bool abortIfXFAIsPresent, bool noValidationErrors, ushort rasterizationResolution) ``` *constructor* **Parameters** - `removeAllAnnotations` (`bool`): Remove all annotations whether legal or illegal. - `ignoreFontErrors` (`bool`): Rasterize a page when fonts cannot be embedded. - `abortIfXFAIsPresent` (`bool`): Abort when XFA is present for PDF/A-1. - `noValidationErrors` (`bool`): Ignore validation errors. - `rasterizationResolution` (`ushort`): Rasterization resolution. Parameters for converting to PDF/A. ### PDFAConvertParams ```csharp Datalogics.PDFL.PDFAConvertParams.PDFAConvertParams(bool removeAllAnnotations, bool ignoreFontErrors, bool abortIfXFAIsPresent, bool noValidationErrors, ushort rasterizationResolution, bool validateImplementationLimitsOfDocument) ``` *constructor* **Parameters** - `removeAllAnnotations` (`bool`): Remove all annotations whether legal or illegal. - `ignoreFontErrors` (`bool`): Rasterize a page when fonts cannot be embedded. - `abortIfXFAIsPresent` (`bool`): Abort when XFA is present for PDF/A-1. - `noValidationErrors` (`bool`): Ignore validation errors. - `rasterizationResolution` (`ushort`): Rasterization resolution. - `validateImplementationLimitsOfDocument` (`bool`): Validate PDF Implementation Limits of the Document. Parameters for converting to PDF/A. ## Properties ### AbortIfXFAIsPresent ```csharp bool Datalogics.PDFL.PDFAConvertParams.AbortIfXFAIsPresent { get; set; } ``` The presence of XFA can result in some loss of data in output PDF/A-1 file as the PDFProcessor does not support XFA. However you can choose to abort the conversion if XFA is present by setting this parameter to true. By default we will not abort if XFA is present for PDF/A-1. By default we will not abort if XFA is present for PDF/A-1. If false we will convert even if XFA is found. If true we will abort the process if XFA is found. ### IgnoreFontErrors ```csharp bool Datalogics.PDFL.PDFAConvertParams.IgnoreFontErrors { get; set; } ``` If we encounter any errors like unembeddable fonts etc. while conversion then we try to rasterize the current page on which the error occured. However the client can modify this behavior by setting the value of this parameter to false in which case we will throw an error if we encounter any problems while conversion. By default we will rasterize the page on error. If true we will try to rasterize the current page if any error occured. If false we will abort and throw an exception if any error occured. ### NoValidationErrors ```csharp bool Datalogics.PDFL.PDFAConvertParams.NoValidationErrors { get; set; } ``` Permit validation errors to be ignored When true, PDF Implementation Limits (as defined in the PDF Specification of the PDF/A target) of the page are ignored. When false, PDF Implementation Limits of the Page are checked and if violated will cause the Page to be rasterized as a fallback mechanism when IgnoreFontErrors is true or simply raise an error if IgnoreFontErrors is false. ### ProfileDesc ```csharp string Datalogics.PDFL.PDFAConvertParams.ProfileDesc { get; set; } ``` The Output Intent of a PDF/A document may be any valid CMYK Profile for CMYK Conversion, and any valid RGB profile for RGB conversion. This parameter allows the user to specify a particular profile for this conversion by description. When this parameter is not present, the profile "U.S. Web Coated (SWOP) v2" will be used for CMYK Conversions, and "sRGB IEC61966-2.1" for RGB conversions. If this description is present, and specifies a profile of the wrong color family, or specifies a profile which cannot be located in resources, an exception will be raised. ### RasterizationResolution ```csharp ushort Datalogics.PDFL.PDFAConvertParams.RasterizationResolution { get; set; } ``` Permit user to select rasterization resolution When this value is zero, we will rasterize at 72 DPI (Legacy Behaviour). Otherwise, we will interpret the value as the desired resolution. ### RemoveAllAnnotations ```csharp bool Datalogics.PDFL.PDFAConvertParams.RemoveAllAnnotations { get; set; } ``` Some of the standards like PDF/A prohibit the presence of some types of Annotations and Actions in order to comply with those standards. By default we will filter all illegal Annotations and Actions. If false we will filter out all illegal Annotations and Actions (according to the standard being used) while retaining the legal ones. If true this will remove all the Annotations and Actions from the output PDF/A compliant file. ### ValidateImplementationLimitsOfDocument ```csharp bool Datalogics.PDFL.PDFAConvertParams.ValidateImplementationLimitsOfDocument { get; set; } ``` Validate PDF Implementation Limits (as defined in the PDF Specification of the PDF/A target) of the Document. When true. PDF Implementation Limits are checked and if violated raise an error. When false, PDF Implementation Limits are not checked. Note this option applies to the Whole document versus only Pages in the NoValidationErrors option. NOTE: It's recommended NoValidationErrors be set to false, IgnoreFontErrors be set to false, and ValidateImplementationLimitsOfDocument be set to true for getting the best quality output that adheres to the specification. ## Methods ### Dispose ```csharp void Datalogics.PDFL.PDFAConvertParams.Dispose() ``` **Returns:** `void` --- # PDFAConvertResult Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFAConvertResult ```csharp class PDFAConvertResult ``` **Namespace:** `Datalogics::PDFL` ## Description Contains a PDF document if the conversion is successful; returns null if the conversion fails. PDF/A is an ISO-standard version the PDF format, lighter and designed to be used with PDF files that need to be archived for long periods. For example, the fonts in a PDF/A file are embedded in the file itself, and not accessed from the host machine. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`SaveFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SaveFlags.md) ## Constructors ### PDFAConvertResult ```csharp Datalogics.PDFL.PDFAConvertResult.PDFAConvertResult(Document doc, SaveFlags flags) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)) - `flags` ([`SaveFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SaveFlags.md)) ## Properties ### PDFADocument ```csharp Document Datalogics.PDFL.PDFAConvertResult.PDFADocument { get; set; } ``` Return the PDF/A compliant version of the document. ### PDFASaveFlags ```csharp SaveFlags Datalogics.PDFL.PDFAConvertResult.PDFASaveFlags { get; set; } ``` Return the SaveFlags that must be used when saving the PDF/A compliant document. You *must* use these SaveFlags when saving the PDF/A document, or you risk breaking PDF/A compliance. --- # PDFAConvertType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFAConvertType **Namespace:** `Datalogics::PDFL` ## Description Specifies the PDF/A conformance level and color space for conversion. Each value corresponds to a specific PDF/A standard (1a, 1b, 2a, 2b, 2u, 3a, 3b, 3u, 4, 4e, 4f) combined with a target color space (RGB or CMYK). ## Values - `RGB1a = 0`: Convert to PDF/A-1a RGB - `CMYK1a = 1`: Convert to PDF/A-1a CMYK - `RGB1b = 2`: Convert to PDF/A-1b RGB - `CMYK1b = 3`: Convert to PDF/A-1b CMYK - `RGB2a = 4`: Convert to PDF/A-2a RGB - `CMYK2a = 5`: Convert to PDF/A-2a CMYK - `RGB2b = 6`: Convert to PDF/A-2b RGB - `CMYK2b = 7`: Convert to PDF/A-2b CMYK - `RGB2u = 8`: Convert to PDF/A-2u RGB - `CMYK2u = 9`: Convert to PDF/A-2u CMYK - `RGB3a = 10`: Convert to PDF/A-3a RGB - `CMYK3a = 11`: Convert to PDF/A-3a CMYK - `RGB3b = 12`: Convert to PDF/A-3b RGB - `CMYK3b = 13`: Convert to PDF/A-3b CMYK - `RGB3u = 14`: Convert to PDF/A-3u RGB - `CMYK3u = 15`: Convert to PDF/A-3u CMYK - `RGB4 = 16`: Convert to PDF/A-4 RGB - `CMYK4 = 17`: Convert to PDF/A-4 CMYK - `RGB4e = 18`: Convert to PDF/A-4e RGB - `CMYK4e = 19`: Convert to PDF/A-4e CMYK - `RGB4f = 20`: Convert to PDF/A-4f RGB - `CMYK4f = 21`: Convert to PDF/A-4f CMYK --- # PDFArray Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFArray ```csharp class PDFArray : PDFObject ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Description Represents an array of data elements within a PDF document. All objects in a PDF document are built from a collection of simpler objects that represent fundamental datatypes like numbers, strings and arrays. PDFObject and its subclasses allow direct access and manipulation of these simple objects. Some subclasses represent single data elements. For example, PDFInteger represents a single integer value. Others represent a collection of PDFObjects, like PDFArray, an indexed array of data elements. A PDFArray is a heterogenous collection object that gathers other PDFObjects (including other PDFArrays) into an indexed list. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict.md), [`PDFStream`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFStream.md), [`ViewDestination`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ViewDestination.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`PDFObjectComparison`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison.md), [`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md) ## Constructors ### PDFArray ```csharp Datalogics.PDFL.PDFArray.PDFArray(Document doc, bool indirect) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): Document object containing this PDFArray - `indirect` (`bool`): flag marking this as an indirect PDFObject General constructor ### PDFArray ```csharp Datalogics.PDFL.PDFArray.PDFArray(PDFObject docFromObj, bool indirect) ``` *constructor* **Parameters** - `docFromObj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The new PDFArray will be created in the same document as this object. - `indirect` (`bool`): flag marking this as an indirect PDFObject General constructor ## Properties ### Document ```csharp Document Datalogics.PDFL.PDFObject.Document { get; } ``` The Document of which this object is a member. Returns null if the Document is not known by PDFL, or if it is a temporary document. If the Document is not null, then it shares the same internal data with other Document objects that refer to the same file. Document objects returned this way do not contribute to the internal count that keeps the Document open, and will become invalid if the main reference to the document is disposed. ### Generation ```csharp int Datalogics.PDFL.PDFObject.Generation { get; } ``` The generation number for this object. Only indirect objects have a generation number. **Exceptions** - `ApplicationException`: direct objects do not have a generation number. ### ID ```csharp int Datalogics.PDFL.PDFObject.ID { get; } ``` The ID number for this object. Only indirect objects have an ID number. **Exceptions** - `ApplicationException`: direct objects do not have an ID number. ### Indirect ```csharp bool Datalogics.PDFL.PDFObject.Indirect { get; } ``` Indicates if this object is indirect or direct. ### Length ```csharp int Datalogics.PDFL.PDFArray.Length { get; } ``` The number of elements in this array. ### PDFHashValue ```csharp int Datalogics.PDFL.PDFObject.PDFHashValue { get; } ``` The 32-bit hash value for this object. The hash value is used internally to quickly access the object, and is not generally useful for PDFObject users. Note that two PDFObjects with equal hash values are not necessarily equal; use Equals() to check for equality. ## Methods ### Add ```csharp void Datalogics.PDFL.PDFArray.Add(PDFObject object_) ``` **Parameters** - `object_` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)) **Returns:** `void` Adds an object to the end of the array ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone() ``` **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object. Makes a new copy of this PDFObject in memory, in the same document and using same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(Document doc) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The target document in which to create the copy. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the specified document. Makes a new copy of this PDFObject in memory, in the supplied document, using the same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(Document doc, bool indirect) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The target document in which to create the copy. - `indirect` (`bool`): If true, the copy will be an indirect object; if false, it will be direct. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the specified document. Makes a new copy of this PDFObject in memory, in the supplied document, using supplied direct/indirect setting. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(PDFObject obj) ``` **Parameters** - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The reference object whose document will be used for the copy. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the same document as obj. Makes a new copy of this PDFObject in memory, in the same document as another object, using the same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(PDFObject obj, bool indirect) ``` **Parameters** - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The reference object whose document will be used for the copy. - `indirect` (`bool`): If true, the copy will be an indirect object; if false, it will be direct. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the same document as obj. Makes a new copy of this PDFObject in memory, in the same document as another object, using supplied direct/indirect setting. ### CompareTo ```csharp PDFObjectComparison Datalogics.PDFL.PDFObject.CompareTo(PDFObject rhs) ``` **Parameters** - `rhs` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): the other PDFObject to compare. **Returns:** [`PDFObjectComparison`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison.md) A PDFObjectComparison value that relates this object to the rhs object Compares this object to another object. The result is useful for ordering or sorting PDFObjects. No other significance should be attached to the result. In particular, an unequal result indicates nothing about the type of either object. The result is valid only within a single instance of the document. ### Destroy ```csharp void Datalogics.PDFL.PDFObject.Destroy() ``` **Returns:** `void` Destroys this object. This method does nothing if this object is a direct scalar object. If a composite object (an array, dictionary or stream) is destroyed: • All the direct objects in it are automatically destroyed. • The indirect objects in it are not destroyed. ### Dispose ```csharp void Datalogics.PDFL.PDFObject.Dispose() ``` **Returns:** `void` ### EnumPDFObjects ```csharp bool Datalogics.PDFL.PDFObject.EnumPDFObjects(PDFObjectEnumProc enumProc) ``` **Parameters** - `enumProc` ([`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md)): A user-supplied callback to call for each element of the object. of obj. Neither proc nor any routine called by proc may modify the object. Doing so can produce undefined results or errors. For example, if the object is an array, enumProc must not call Remove(); if the object is a dictionary, enumProc must not call Put(). **Returns:** `bool` Returns true if every call to enumProc returned true. As soon as any call to enumProc returns false, the enumeration stops and EnumPDFObject() returns false. Enumerates the elements of a PDFObject by calling a user-supplied procedure for each component of the object. • For scalars or strings, the proc is not called, and CosObjEnum() returns true. • For dictionaries, proc is called for each key-value pair. The order in which the key-value pairs are enumerated is undefined. • For arrays, proc is called with each element as the first paramater to proc, and the NULL object as the second parameter. Array elements are enumerated in ascending order of index. • For streams, proc is called once, with the stream's dictionary as the first parameter to the proc and the NULL object as the second parameter. ### Equals ```csharp override bool Datalogics.PDFL.PDFObject.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### Get ```csharp PDFObject Datalogics.PDFL.PDFArray.Get(int index) ``` **Parameters** - `index` (`int`): the position of the object to retrieve. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) Returns the object at the given index. ### Insert ```csharp void Datalogics.PDFL.PDFArray.Insert(int index, PDFObject object_) ``` **Parameters** - `index` (`int`): the position at which to insert. - `object_` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)) **Returns:** `void` Inserts an object at the given index, displacing existing objects. All objects following this will have their index increased by one. ### Put ```csharp void Datalogics.PDFL.PDFArray.Put(int index, PDFObject obj) ``` **Parameters** - `index` (`int`): the position at which to place the object. - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): the object to place at the given index. **Returns:** `void` Puts an object at the given index, replacing the existing item. The index can be greater than the current length of the array; the array will be extended and the empty slots filled with null objects. ### Remove ```csharp void Datalogics.PDFL.PDFArray.Remove(PDFObject object_) ``` **Parameters** - `object_` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)) **Returns:** `void` Removes the first object that matches the given object. The length of the array is reduced by 1. ### RemoveAt ```csharp void Datalogics.PDFL.PDFArray.RemoveAt(int index) ``` **Parameters** - `index` (`int`): the position of the object to remove. **Returns:** `void` Removes the object at the given index. The length of the array is reduced by 1. ### ToString ```csharp override string Datalogics.PDFL.PDFArray.ToString() ``` **Returns:** `override string` --- # PDFBoolean Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFBoolean ```csharp class PDFBoolean : PDFObject ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Description Represents a boolean data element within a PDF document. All objects in a PDF document are built from a collection of simpler objects that represent fundamental datatypes like numbers, strings and arrays. PDFObject and its subclasses allow direct access and manipulation of these simple objects. Some subclasses represent single data elements. For example, PDFBoolean represents a single boolean value. Others represent a collection of PDFObjects, such as PDFArray, an indexed array of data elements. A PDFBoolean represents a single boolean value, and may be inserted into any collection object. **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`PDFObjectComparison`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison.md), [`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md) ## Constructors ### PDFBoolean ```csharp Datalogics.PDFL.PDFBoolean.PDFBoolean(bool value, Document doc, bool indirect) ``` *constructor* **Parameters** - `value` (`bool`): Boolean value of this PDFBoolean - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): Document object containing this PDFBoolean - `indirect` (`bool`): flag marking this as an indirect PDFObject General constructor ### PDFBoolean ```csharp Datalogics.PDFL.PDFBoolean.PDFBoolean(bool value, PDFObject docFromObj, bool indirect) ``` *constructor* **Parameters** - `value` (`bool`): Boolean value of this PDFBoolean - `docFromObj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The new PDFArray will be created in the same document as this object. - `indirect` (`bool`): flag marking this as an indirect PDFObject General constructor ## Properties ### Document ```csharp Document Datalogics.PDFL.PDFObject.Document { get; } ``` The Document of which this object is a member. Returns null if the Document is not known by PDFL, or if it is a temporary document. If the Document is not null, then it shares the same internal data with other Document objects that refer to the same file. Document objects returned this way do not contribute to the internal count that keeps the Document open, and will become invalid if the main reference to the document is disposed. ### Generation ```csharp int Datalogics.PDFL.PDFObject.Generation { get; } ``` The generation number for this object. Only indirect objects have a generation number. **Exceptions** - `ApplicationException`: direct objects do not have a generation number. ### ID ```csharp int Datalogics.PDFL.PDFObject.ID { get; } ``` The ID number for this object. Only indirect objects have an ID number. **Exceptions** - `ApplicationException`: direct objects do not have an ID number. ### Indirect ```csharp bool Datalogics.PDFL.PDFObject.Indirect { get; } ``` Indicates if this object is indirect or direct. ### PDFHashValue ```csharp int Datalogics.PDFL.PDFObject.PDFHashValue { get; } ``` The 32-bit hash value for this object. The hash value is used internally to quickly access the object, and is not generally useful for PDFObject users. Note that two PDFObjects with equal hash values are not necessarily equal; use Equals() to check for equality. ### Value ```csharp bool Datalogics.PDFL.PDFBoolean.Value { get; } ``` Boolean value of this object. ## Methods ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone() ``` **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object. Makes a new copy of this PDFObject in memory, in the same document and using same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(Document doc) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The target document in which to create the copy. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the specified document. Makes a new copy of this PDFObject in memory, in the supplied document, using the same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(Document doc, bool indirect) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The target document in which to create the copy. - `indirect` (`bool`): If true, the copy will be an indirect object; if false, it will be direct. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the specified document. Makes a new copy of this PDFObject in memory, in the supplied document, using supplied direct/indirect setting. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(PDFObject obj) ``` **Parameters** - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The reference object whose document will be used for the copy. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the same document as obj. Makes a new copy of this PDFObject in memory, in the same document as another object, using the same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(PDFObject obj, bool indirect) ``` **Parameters** - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The reference object whose document will be used for the copy. - `indirect` (`bool`): If true, the copy will be an indirect object; if false, it will be direct. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the same document as obj. Makes a new copy of this PDFObject in memory, in the same document as another object, using supplied direct/indirect setting. ### CompareTo ```csharp PDFObjectComparison Datalogics.PDFL.PDFObject.CompareTo(PDFObject rhs) ``` **Parameters** - `rhs` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): the other PDFObject to compare. **Returns:** [`PDFObjectComparison`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison.md) A PDFObjectComparison value that relates this object to the rhs object Compares this object to another object. The result is useful for ordering or sorting PDFObjects. No other significance should be attached to the result. In particular, an unequal result indicates nothing about the type of either object. The result is valid only within a single instance of the document. ### Destroy ```csharp void Datalogics.PDFL.PDFObject.Destroy() ``` **Returns:** `void` Destroys this object. This method does nothing if this object is a direct scalar object. If a composite object (an array, dictionary or stream) is destroyed: • All the direct objects in it are automatically destroyed. • The indirect objects in it are not destroyed. ### Dispose ```csharp void Datalogics.PDFL.PDFObject.Dispose() ``` **Returns:** `void` ### EnumPDFObjects ```csharp bool Datalogics.PDFL.PDFObject.EnumPDFObjects(PDFObjectEnumProc enumProc) ``` **Parameters** - `enumProc` ([`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md)): A user-supplied callback to call for each element of the object. of obj. Neither proc nor any routine called by proc may modify the object. Doing so can produce undefined results or errors. For example, if the object is an array, enumProc must not call Remove(); if the object is a dictionary, enumProc must not call Put(). **Returns:** `bool` Returns true if every call to enumProc returned true. As soon as any call to enumProc returns false, the enumeration stops and EnumPDFObject() returns false. Enumerates the elements of a PDFObject by calling a user-supplied procedure for each component of the object. • For scalars or strings, the proc is not called, and CosObjEnum() returns true. • For dictionaries, proc is called for each key-value pair. The order in which the key-value pairs are enumerated is undefined. • For arrays, proc is called with each element as the first paramater to proc, and the NULL object as the second parameter. Array elements are enumerated in ascending order of index. • For streams, proc is called once, with the stream's dictionary as the first parameter to the proc and the NULL object as the second parameter. ### Equals ```csharp override bool Datalogics.PDFL.PDFObject.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.PDFBoolean.ToString() ``` **Returns:** `override string` A string describing this PDFBoolean and its properties, including its value. Returns a string representation of this PDFBoolean. --- # PDFDict Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict ```csharp class PDFDict : PDFObject ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Description Represents an associative collection of data elements within a PDF document. All objects in a PDF document are built from a collection of simpler objects that represent fundamental datatypes like numbers, strings and arrays. PDFObject and its subclasses allow direct access and manipulation of these simple objects. Some subclasses represent single data elements, such as PDFInteger, which represents a single integer value. Other subclasses represent a collection of PDFObjects, like PDFArray, an indexed array of data elements. A PDFDict is a heterogenous collection object that maps other PDFObjects (including other PDFDicts) to PDFName objects. **Referenced by:** [`Action`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Action.md), [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md), [`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md), [`CircleAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CircleAnnotation.md), [`Container`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Container.md), [`DeviceNColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DeviceNColorSpace.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`ExtendedGraphicState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ExtendedGraphicState.md), [`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md), [`FreeTextAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FreeTextAnnotation.md), [`GoToAction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GoToAction.md), [`HighlightAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/HighlightAnnotation.md), [`InkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/InkAnnotation.md), [`LaunchAction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LaunchAction.md), [`LineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LineAnnotation.md), [`LinkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LinkAnnotation.md), [`NameTree`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NameTree.md), [`NumberTree`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NumberTree.md), [`OptionalContentConfig`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentConfig.md), [`OptionalContentGroup`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentGroup.md), [`PDFStream`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFStream.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`PolyLineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolyLineAnnotation.md), [`PolygonAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolygonAnnotation.md), [`Redaction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Redaction.md), [`RemoteGoToAction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RemoteGoToAction.md), [`SquareAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SquareAnnotation.md), [`StructElement`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructElement.md), [`StructTreeRoot`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructTreeRoot.md), [`TextMarkupAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextMarkupAnnotation.md), [`URIAction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/URIAction.md), [`UnderlineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/UnderlineAnnotation.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFName`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFName.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`PDFObjectComparison`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison.md), [`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md) ## Constructors ### PDFDict ```csharp Datalogics.PDFL.PDFDict.PDFDict(Document doc, bool indirect) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): Document object containing this PDFDict - `indirect` (`bool`): flag marking this as an indirect PDFObject General constructor ### PDFDict ```csharp Datalogics.PDFL.PDFDict.PDFDict(PDFObject docFromObj, bool indirect) ``` *constructor* **Parameters** - `docFromObj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The new PDFArray will be created in the same document as this object. - `indirect` (`bool`): flag marking this as an indirect PDFObject General constructor ## Properties ### Document ```csharp Document Datalogics.PDFL.PDFObject.Document { get; } ``` The Document of which this object is a member. Returns null if the Document is not known by PDFL, or if it is a temporary document. If the Document is not null, then it shares the same internal data with other Document objects that refer to the same file. Document objects returned this way do not contribute to the internal count that keeps the Document open, and will become invalid if the main reference to the document is disposed. ### Generation ```csharp int Datalogics.PDFL.PDFObject.Generation { get; } ``` The generation number for this object. Only indirect objects have a generation number. **Exceptions** - `ApplicationException`: direct objects do not have a generation number. ### ID ```csharp int Datalogics.PDFL.PDFObject.ID { get; } ``` The ID number for this object. Only indirect objects have an ID number. **Exceptions** - `ApplicationException`: direct objects do not have an ID number. ### Indirect ```csharp bool Datalogics.PDFL.PDFObject.Indirect { get; } ``` Indicates if this object is indirect or direct. ### Keys ```csharp System.Collections.Generic.IList Datalogics.PDFL.PDFDict.Keys { get; } ``` Get a list of all keys in the dictionary ### PDFHashValue ```csharp int Datalogics.PDFL.PDFObject.PDFHashValue { get; } ``` The 32-bit hash value for this object. The hash value is used internally to quickly access the object, and is not generally useful for PDFObject users. Note that two PDFObjects with equal hash values are not necessarily equal; use Equals() to check for equality. ### XMPMetadata ```csharp string Datalogics.PDFL.PDFDict.XMPMetadata { get; set; } ``` The XMP metadata associated with this dictionary. NULL if there is no such data. Note: PDFL will not attempt to verify that obj is one of the objects specified to allow XMP metadata by the PDF reference. ## Methods ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone() ``` **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object. Makes a new copy of this PDFObject in memory, in the same document and using same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(Document doc) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The target document in which to create the copy. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the specified document. Makes a new copy of this PDFObject in memory, in the supplied document, using the same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(Document doc, bool indirect) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The target document in which to create the copy. - `indirect` (`bool`): If true, the copy will be an indirect object; if false, it will be direct. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the specified document. Makes a new copy of this PDFObject in memory, in the supplied document, using supplied direct/indirect setting. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(PDFObject obj) ``` **Parameters** - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The reference object whose document will be used for the copy. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the same document as obj. Makes a new copy of this PDFObject in memory, in the same document as another object, using the same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(PDFObject obj, bool indirect) ``` **Parameters** - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The reference object whose document will be used for the copy. - `indirect` (`bool`): If true, the copy will be an indirect object; if false, it will be direct. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the same document as obj. Makes a new copy of this PDFObject in memory, in the same document as another object, using supplied direct/indirect setting. ### CompareTo ```csharp PDFObjectComparison Datalogics.PDFL.PDFObject.CompareTo(PDFObject rhs) ``` **Parameters** - `rhs` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): the other PDFObject to compare. **Returns:** [`PDFObjectComparison`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison.md) A PDFObjectComparison value that relates this object to the rhs object Compares this object to another object. The result is useful for ordering or sorting PDFObjects. No other significance should be attached to the result. In particular, an unequal result indicates nothing about the type of either object. The result is valid only within a single instance of the document. ### Contains ```csharp bool Datalogics.PDFL.PDFDict.Contains(PDFName key) ``` **Parameters** - `key` ([`PDFName`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFName.md)): A PDFName for the key **Returns:** `bool` true if the given key exists Tests whether the given key exists in the dictionary ### Contains ```csharp bool Datalogics.PDFL.PDFDict.Contains(string key) ``` **Parameters** - `key` (`string`): A string representing the name for the key **Returns:** `bool` true if the given key exists Tests whether the given key exists in the dictionary ### Destroy ```csharp void Datalogics.PDFL.PDFObject.Destroy() ``` **Returns:** `void` Destroys this object. This method does nothing if this object is a direct scalar object. If a composite object (an array, dictionary or stream) is destroyed: • All the direct objects in it are automatically destroyed. • The indirect objects in it are not destroyed. ### Dispose ```csharp void Datalogics.PDFL.PDFObject.Dispose() ``` **Returns:** `void` ### EnumPDFObjects ```csharp bool Datalogics.PDFL.PDFObject.EnumPDFObjects(PDFObjectEnumProc enumProc) ``` **Parameters** - `enumProc` ([`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md)): A user-supplied callback to call for each element of the object. of obj. Neither proc nor any routine called by proc may modify the object. Doing so can produce undefined results or errors. For example, if the object is an array, enumProc must not call Remove(); if the object is a dictionary, enumProc must not call Put(). **Returns:** `bool` Returns true if every call to enumProc returned true. As soon as any call to enumProc returns false, the enumeration stops and EnumPDFObject() returns false. Enumerates the elements of a PDFObject by calling a user-supplied procedure for each component of the object. • For scalars or strings, the proc is not called, and CosObjEnum() returns true. • For dictionaries, proc is called for each key-value pair. The order in which the key-value pairs are enumerated is undefined. • For arrays, proc is called with each element as the first paramater to proc, and the NULL object as the second parameter. Array elements are enumerated in ascending order of index. • For streams, proc is called once, with the stream's dictionary as the first parameter to the proc and the NULL object as the second parameter. ### Equals ```csharp override bool Datalogics.PDFL.PDFObject.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### Get ```csharp PDFObject Datalogics.PDFL.PDFDict.Get(PDFName key) ``` **Parameters** - `key` ([`PDFName`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFName.md)): A PDFName for the key **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A PDFObject matching the key Returns the object matching the given key. **Exceptions** - `ApplicationException`: if no matching key was found ### Get ```csharp PDFObject Datalogics.PDFL.PDFDict.Get(string key) ``` **Parameters** - `key` (`string`): A string representing the name for the key **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A PDFObject matching the key Returns the object matching the given key string. **Exceptions** - `ApplicationException`: if no matching key was found ### Put ```csharp void Datalogics.PDFL.PDFDict.Put(PDFName key, PDFObject obj) ``` **Parameters** - `key` ([`PDFName`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFName.md)): A PDFName for the key - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): A PDFObject to add to the dictionary **Returns:** `void` Puts an object with the matching key into the dictionary, adding the entry if the key is not already present. ### Put ```csharp void Datalogics.PDFL.PDFDict.Put(string key, PDFObject obj) ``` **Parameters** - `key` (`string`): A string representing the name for the key - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): A PDFObject to add to the dictionary **Returns:** `void` Puts an object with the matching key string into the dictionary, adding the entry if the key is not already present. ### Remove ```csharp void Datalogics.PDFL.PDFDict.Remove(PDFName key) ``` **Parameters** - `key` ([`PDFName`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFName.md)): A PDFName for the key **Returns:** `void` Removes a key/object pair from the dictionary. **Exceptions** - `ApplicationException`: if no matching key was found ### Remove ```csharp void Datalogics.PDFL.PDFDict.Remove(string key) ``` **Parameters** - `key` (`string`): A string representing the name for the key **Returns:** `void` Removes a key/object pair from the dictionary. **Exceptions** - `ApplicationException`: if no matching key was found ### ToString ```csharp override string Datalogics.PDFL.PDFDict.ToString() ``` **Returns:** `override string` A string describing this PDFDict and its properties. Returns a string representation of this PDFDict. --- # PDFInteger Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFInteger ```csharp class PDFInteger : PDFObject ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Description Represents an integer data element within a PDF document. All objects in a PDF document are built from a collection of simpler objects that represent fundamental datatypes like numbers, strings and arrays. PDFObject and its subclasses allow direct access and manipulation of these simple objects. Some subclasses represent single data elements. For example, PDFInteger represents a single integer value. Others represent a collection of PDFObjects, such as PDFArray, an indexed array of data elements. A PDFInteger represents a single integer value, and may be inserted into any collection object. **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`PDFObjectComparison`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison.md), [`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md) ## Constructors ### PDFInteger ```csharp Datalogics.PDFL.PDFInteger.PDFInteger(int value, Document doc, bool indirect) ``` *constructor* **Parameters** - `value` (`int`): Integer value of this PDFInteger - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): Document object containing this PDFInteger - `indirect` (`bool`): flag marking this as an indirect PDFObject General constructor ### PDFInteger ```csharp Datalogics.PDFL.PDFInteger.PDFInteger(int value, PDFObject docFromObj, bool indirect) ``` *constructor* **Parameters** - `value` (`int`): Integer value of this PDFInteger - `docFromObj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The new PDFArray will be created in the same document as this object. - `indirect` (`bool`): flag marking this as an indirect PDFObject General constructor ## Properties ### Document ```csharp Document Datalogics.PDFL.PDFObject.Document { get; } ``` The Document of which this object is a member. Returns null if the Document is not known by PDFL, or if it is a temporary document. If the Document is not null, then it shares the same internal data with other Document objects that refer to the same file. Document objects returned this way do not contribute to the internal count that keeps the Document open, and will become invalid if the main reference to the document is disposed. ### Generation ```csharp int Datalogics.PDFL.PDFObject.Generation { get; } ``` The generation number for this object. Only indirect objects have a generation number. **Exceptions** - `ApplicationException`: direct objects do not have a generation number. ### ID ```csharp int Datalogics.PDFL.PDFObject.ID { get; } ``` The ID number for this object. Only indirect objects have an ID number. **Exceptions** - `ApplicationException`: direct objects do not have an ID number. ### Indirect ```csharp bool Datalogics.PDFL.PDFObject.Indirect { get; } ``` Indicates if this object is indirect or direct. ### PDFHashValue ```csharp int Datalogics.PDFL.PDFObject.PDFHashValue { get; } ``` The 32-bit hash value for this object. The hash value is used internally to quickly access the object, and is not generally useful for PDFObject users. Note that two PDFObjects with equal hash values are not necessarily equal; use Equals() to check for equality. ### Value ```csharp int Datalogics.PDFL.PDFInteger.Value { get; } ``` Integer value of this object. ## Methods ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone() ``` **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object. Makes a new copy of this PDFObject in memory, in the same document and using same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(Document doc) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The target document in which to create the copy. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the specified document. Makes a new copy of this PDFObject in memory, in the supplied document, using the same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(Document doc, bool indirect) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The target document in which to create the copy. - `indirect` (`bool`): If true, the copy will be an indirect object; if false, it will be direct. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the specified document. Makes a new copy of this PDFObject in memory, in the supplied document, using supplied direct/indirect setting. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(PDFObject obj) ``` **Parameters** - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The reference object whose document will be used for the copy. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the same document as obj. Makes a new copy of this PDFObject in memory, in the same document as another object, using the same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(PDFObject obj, bool indirect) ``` **Parameters** - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The reference object whose document will be used for the copy. - `indirect` (`bool`): If true, the copy will be an indirect object; if false, it will be direct. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the same document as obj. Makes a new copy of this PDFObject in memory, in the same document as another object, using supplied direct/indirect setting. ### CompareTo ```csharp PDFObjectComparison Datalogics.PDFL.PDFObject.CompareTo(PDFObject rhs) ``` **Parameters** - `rhs` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): the other PDFObject to compare. **Returns:** [`PDFObjectComparison`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison.md) A PDFObjectComparison value that relates this object to the rhs object Compares this object to another object. The result is useful for ordering or sorting PDFObjects. No other significance should be attached to the result. In particular, an unequal result indicates nothing about the type of either object. The result is valid only within a single instance of the document. ### Destroy ```csharp void Datalogics.PDFL.PDFObject.Destroy() ``` **Returns:** `void` Destroys this object. This method does nothing if this object is a direct scalar object. If a composite object (an array, dictionary or stream) is destroyed: • All the direct objects in it are automatically destroyed. • The indirect objects in it are not destroyed. ### Dispose ```csharp void Datalogics.PDFL.PDFObject.Dispose() ``` **Returns:** `void` ### EnumPDFObjects ```csharp bool Datalogics.PDFL.PDFObject.EnumPDFObjects(PDFObjectEnumProc enumProc) ``` **Parameters** - `enumProc` ([`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md)): A user-supplied callback to call for each element of the object. of obj. Neither proc nor any routine called by proc may modify the object. Doing so can produce undefined results or errors. For example, if the object is an array, enumProc must not call Remove(); if the object is a dictionary, enumProc must not call Put(). **Returns:** `bool` Returns true if every call to enumProc returned true. As soon as any call to enumProc returns false, the enumeration stops and EnumPDFObject() returns false. Enumerates the elements of a PDFObject by calling a user-supplied procedure for each component of the object. • For scalars or strings, the proc is not called, and CosObjEnum() returns true. • For dictionaries, proc is called for each key-value pair. The order in which the key-value pairs are enumerated is undefined. • For arrays, proc is called with each element as the first paramater to proc, and the NULL object as the second parameter. Array elements are enumerated in ascending order of index. • For streams, proc is called once, with the stream's dictionary as the first parameter to the proc and the NULL object as the second parameter. ### Equals ```csharp override bool Datalogics.PDFL.PDFObject.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.PDFInteger.ToString() ``` **Returns:** `override string` A string describing this PDFInteger and its properties, including its value. Returns a string representation of this PDFInteger. --- # PDFlattenerColorCompSet Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFlattenerColorCompSet **Namespace:** `Datalogics::PDFL` ## Description Enumeration for setting the compression scheme for the Flattened Color images. ## Values - `KPDFlattenerJpegCompression = 0`: JPEG compression for flattened color images. - `KPDFlattenerZipCompression = 1`: ZIP (Flate) compression for flattened color images. - `KPDFlattenerJpeg2000Compression = 2`: JPEG2000 compression for flattened color images. --- # PDFlattenerGrayscaleCompSet Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFlattenerGrayscaleCompSet **Namespace:** `Datalogics::PDFL` ## Description Enumeration for setting the compression scheme for the Flattened Grayscale images. ## Values - `KPDFlattenerGrayJpegCompression = 0`: JPEG compression for flattened grayscale images. - `KPDFlattenerGrayZipCompression = 1`: ZIP (Flate) compression for flattened grayscale images. - `KPDFlattenerGrayJpeg2000Compression = 2`: JPEG2000 compression for flattened grayscale images. --- # PDFlattenerMonochromeCompSet Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFlattenerMonochromeCompSet **Namespace:** `Datalogics::PDFL` ## Description Enumeration for setting the compression scheme for the Flattened Monochrome images. ## Values - `KPDFlattenerMonoCCITTGroup3Compression = 0`: CCITT Group 3 (fax) compression for flattened monochrome images. - `KPDFlattenerMonoCCITTGroup4Compression = 1`: CCITT Group 4 (fax) compression for flattened monochrome images. - `KPDFlattenerMonoZipCompression = 2`: ZIP (Flate) compression for flattened monochrome images. - `KPDFlattenerMonoRunLengthCompression = 3`: Run-length encoding compression for flattened monochrome images. --- # PDFlattenerQualitySetting Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFlattenerQualitySetting **Namespace:** `Datalogics::PDFL` ## Description Enumeration for setting the Quality setting for the JPEG or JPEG2000 images. ## Values - `KPDFlattenerMinimum = 0`: Minimum quality setting, smallest file size. - `KPDFlattenerLow = 1`: Low quality setting. - `KPDFlattenerMedium = 2`: Medium quality setting, balancing file size and image quality. - `KPDFlattenerHigh = 3`: High quality setting. - `KPDFlattenerMaximum = 4`: Maximum quality setting, largest file size. - `KPDFlattenerJpeg2000Lossless = 5`: Lossless compression; valid only for the JPEG2000 compression scheme. --- # PDFName Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFName ```csharp class PDFName : PDFObject ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Description Represents a name data element within a PDF document. All objects in a PDF document are built from a collection of simpler objects that represent fundamental datatypes like numbers, strings and arrays. PDFObject and its subclasses allow direct access and manipulation of these simple objects. Some subclasses represent single data elements. For example, PDFName represents a single name value. Others represent a collection of PDFObjects, such as PDFArray, an indexed array of data elements. A PDFName represents a single indivisible name token, and may be inserted into any collection object. It may also be used as a key in a PDFDictionary. **Referenced by:** [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`PDFObjectComparison`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison.md), [`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md) ## Constructors ### PDFName ```csharp Datalogics.PDFL.PDFName.PDFName(string value, Document doc, bool indirect) ``` *constructor* **Parameters** - `value` (`string`): String value representing this PDFName - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): Document object containing this PDFName - `indirect` (`bool`): flag marking this as an indirect PDFObject General constructor ### PDFName ```csharp Datalogics.PDFL.PDFName.PDFName(string value, PDFObject docFromObj, bool indirect) ``` *constructor* **Parameters** - `value` (`string`): String value representing this PDFName - `docFromObj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The new PDFArray will be created in the same document as this object. - `indirect` (`bool`): flag marking this as an indirect PDFObject General constructor ## Properties ### Document ```csharp Document Datalogics.PDFL.PDFObject.Document { get; } ``` The Document of which this object is a member. Returns null if the Document is not known by PDFL, or if it is a temporary document. If the Document is not null, then it shares the same internal data with other Document objects that refer to the same file. Document objects returned this way do not contribute to the internal count that keeps the Document open, and will become invalid if the main reference to the document is disposed. ### Generation ```csharp int Datalogics.PDFL.PDFObject.Generation { get; } ``` The generation number for this object. Only indirect objects have a generation number. **Exceptions** - `ApplicationException`: direct objects do not have a generation number. ### ID ```csharp int Datalogics.PDFL.PDFObject.ID { get; } ``` The ID number for this object. Only indirect objects have an ID number. **Exceptions** - `ApplicationException`: direct objects do not have an ID number. ### Indirect ```csharp bool Datalogics.PDFL.PDFObject.Indirect { get; } ``` Indicates if this object is indirect or direct. ### PDFHashValue ```csharp int Datalogics.PDFL.PDFObject.PDFHashValue { get; } ``` The 32-bit hash value for this object. The hash value is used internally to quickly access the object, and is not generally useful for PDFObject users. Note that two PDFObjects with equal hash values are not necessarily equal; use Equals() to check for equality. ### Value ```csharp string Datalogics.PDFL.PDFName.Value { get; } ``` String value of this object. ## Methods ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone() ``` **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object. Makes a new copy of this PDFObject in memory, in the same document and using same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(Document doc) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The target document in which to create the copy. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the specified document. Makes a new copy of this PDFObject in memory, in the supplied document, using the same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(Document doc, bool indirect) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The target document in which to create the copy. - `indirect` (`bool`): If true, the copy will be an indirect object; if false, it will be direct. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the specified document. Makes a new copy of this PDFObject in memory, in the supplied document, using supplied direct/indirect setting. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(PDFObject obj) ``` **Parameters** - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The reference object whose document will be used for the copy. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the same document as obj. Makes a new copy of this PDFObject in memory, in the same document as another object, using the same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(PDFObject obj, bool indirect) ``` **Parameters** - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The reference object whose document will be used for the copy. - `indirect` (`bool`): If true, the copy will be an indirect object; if false, it will be direct. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the same document as obj. Makes a new copy of this PDFObject in memory, in the same document as another object, using supplied direct/indirect setting. ### CompareTo ```csharp PDFObjectComparison Datalogics.PDFL.PDFObject.CompareTo(PDFObject rhs) ``` **Parameters** - `rhs` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): the other PDFObject to compare. **Returns:** [`PDFObjectComparison`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison.md) A PDFObjectComparison value that relates this object to the rhs object Compares this object to another object. The result is useful for ordering or sorting PDFObjects. No other significance should be attached to the result. In particular, an unequal result indicates nothing about the type of either object. The result is valid only within a single instance of the document. ### Destroy ```csharp void Datalogics.PDFL.PDFObject.Destroy() ``` **Returns:** `void` Destroys this object. This method does nothing if this object is a direct scalar object. If a composite object (an array, dictionary or stream) is destroyed: • All the direct objects in it are automatically destroyed. • The indirect objects in it are not destroyed. ### Dispose ```csharp void Datalogics.PDFL.PDFObject.Dispose() ``` **Returns:** `void` ### EnumPDFObjects ```csharp bool Datalogics.PDFL.PDFObject.EnumPDFObjects(PDFObjectEnumProc enumProc) ``` **Parameters** - `enumProc` ([`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md)): A user-supplied callback to call for each element of the object. of obj. Neither proc nor any routine called by proc may modify the object. Doing so can produce undefined results or errors. For example, if the object is an array, enumProc must not call Remove(); if the object is a dictionary, enumProc must not call Put(). **Returns:** `bool` Returns true if every call to enumProc returned true. As soon as any call to enumProc returns false, the enumeration stops and EnumPDFObject() returns false. Enumerates the elements of a PDFObject by calling a user-supplied procedure for each component of the object. • For scalars or strings, the proc is not called, and CosObjEnum() returns true. • For dictionaries, proc is called for each key-value pair. The order in which the key-value pairs are enumerated is undefined. • For arrays, proc is called with each element as the first paramater to proc, and the NULL object as the second parameter. Array elements are enumerated in ascending order of index. • For streams, proc is called once, with the stream's dictionary as the first parameter to the proc and the NULL object as the second parameter. ### Equals ```csharp override bool Datalogics.PDFL.PDFObject.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.PDFName.ToString() ``` **Returns:** `override string` A string describing this PDFName, including its value and properties. Returns a string representation of this PDFName object. The returned string includes property information and the name value in a human-readable format. --- # PDFObject Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject ```csharp class PDFObject : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` **Derived classes:** [`PDFArray`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFArray.md), [`PDFBoolean`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFBoolean.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`PDFInteger`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFInteger.md), [`PDFName`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFName.md), [`PDFReal`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFReal.md), [`PDFStream`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFStream.md), [`PDFString`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFString.md) ## Description Represents the underlying simple data element of an object in a PDF document. All objects in a PDF document are built from a collection of simpler objects that represent fundamental datatypes like numbers, strings and arrays. PDFObject and its subclasses allow direct access and manipulation of these simple objects. Some subclasses represent single data elements. For example, PDFInteger represents a single integer value. Others represent a collection of PDFObjects, such as PDFArray, an indexed array of data elements. PDFObject is the superclass of these simple objects. A PDFObject cannot be directly instantiated, but any of its subclasses may. Any PDFObject may be either direct or indirect. A direct object exists within its collection object (such as a PDFArray) and can be referenced only within that collection object. An indirect object exists outside of any collection object and can be referenced by many collection objects. **Referenced by:** [`AxialShadingPattern`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/AxialShadingPattern.md), [`CalGrayColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CalGrayColorSpace.md), [`CalRGBColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CalRGBColorSpace.md), [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`DeviceNColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DeviceNColorSpace.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`FileSpecification`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FileSpecification.md), [`ICCBasedColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ICCBasedColorSpace.md), [`IndexedColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/IndexedColorSpace.md), [`LabColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LabColorSpace.md), [`NameTree`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NameTree.md), [`NamedColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NamedColorSpace.md), [`NumberTree`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NumberTree.md), [`PDFArray`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFArray.md), [`PDFBoolean`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFBoolean.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`PDFInteger`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFInteger.md), [`PDFName`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFName.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md), [`PDFReal`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFReal.md), [`PDFStream`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFStream.md), [`PDFString`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFString.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`Pattern`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Pattern.md), [`RemoteDestination`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RemoteDestination.md), [`SeparationColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md), [`ShadingPattern`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ShadingPattern.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`PDFObjectComparison`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison.md), [`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md) ## Properties ### Document ```csharp Document Datalogics.PDFL.PDFObject.Document { get; } ``` The Document of which this object is a member. Returns null if the Document is not known by PDFL, or if it is a temporary document. If the Document is not null, then it shares the same internal data with other Document objects that refer to the same file. Document objects returned this way do not contribute to the internal count that keeps the Document open, and will become invalid if the main reference to the document is disposed. ### Generation ```csharp int Datalogics.PDFL.PDFObject.Generation { get; } ``` The generation number for this object. Only indirect objects have a generation number. **Exceptions** - `ApplicationException`: direct objects do not have a generation number. ### ID ```csharp int Datalogics.PDFL.PDFObject.ID { get; } ``` The ID number for this object. Only indirect objects have an ID number. **Exceptions** - `ApplicationException`: direct objects do not have an ID number. ### Indirect ```csharp bool Datalogics.PDFL.PDFObject.Indirect { get; } ``` Indicates if this object is indirect or direct. ### PDFHashValue ```csharp int Datalogics.PDFL.PDFObject.PDFHashValue { get; } ``` The 32-bit hash value for this object. The hash value is used internally to quickly access the object, and is not generally useful for PDFObject users. Note that two PDFObjects with equal hash values are not necessarily equal; use Equals() to check for equality. ## Methods ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone() ``` **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object. Makes a new copy of this PDFObject in memory, in the same document and using same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(Document doc) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The target document in which to create the copy. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the specified document. Makes a new copy of this PDFObject in memory, in the supplied document, using the same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(Document doc, bool indirect) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The target document in which to create the copy. - `indirect` (`bool`): If true, the copy will be an indirect object; if false, it will be direct. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the specified document. Makes a new copy of this PDFObject in memory, in the supplied document, using supplied direct/indirect setting. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(PDFObject obj) ``` **Parameters** - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The reference object whose document will be used for the copy. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the same document as obj. Makes a new copy of this PDFObject in memory, in the same document as another object, using the same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(PDFObject obj, bool indirect) ``` **Parameters** - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The reference object whose document will be used for the copy. - `indirect` (`bool`): If true, the copy will be an indirect object; if false, it will be direct. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the same document as obj. Makes a new copy of this PDFObject in memory, in the same document as another object, using supplied direct/indirect setting. ### CompareTo ```csharp PDFObjectComparison Datalogics.PDFL.PDFObject.CompareTo(PDFObject rhs) ``` **Parameters** - `rhs` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): the other PDFObject to compare. **Returns:** [`PDFObjectComparison`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison.md) A PDFObjectComparison value that relates this object to the rhs object Compares this object to another object. The result is useful for ordering or sorting PDFObjects. No other significance should be attached to the result. In particular, an unequal result indicates nothing about the type of either object. The result is valid only within a single instance of the document. ### Destroy ```csharp void Datalogics.PDFL.PDFObject.Destroy() ``` **Returns:** `void` Destroys this object. This method does nothing if this object is a direct scalar object. If a composite object (an array, dictionary or stream) is destroyed: • All the direct objects in it are automatically destroyed. • The indirect objects in it are not destroyed. ### Dispose ```csharp void Datalogics.PDFL.PDFObject.Dispose() ``` **Returns:** `void` ### EnumPDFObjects ```csharp bool Datalogics.PDFL.PDFObject.EnumPDFObjects(PDFObjectEnumProc enumProc) ``` **Parameters** - `enumProc` ([`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md)): A user-supplied callback to call for each element of the object. of obj. Neither proc nor any routine called by proc may modify the object. Doing so can produce undefined results or errors. For example, if the object is an array, enumProc must not call Remove(); if the object is a dictionary, enumProc must not call Put(). **Returns:** `bool` Returns true if every call to enumProc returned true. As soon as any call to enumProc returns false, the enumeration stops and EnumPDFObject() returns false. Enumerates the elements of a PDFObject by calling a user-supplied procedure for each component of the object. • For scalars or strings, the proc is not called, and CosObjEnum() returns true. • For dictionaries, proc is called for each key-value pair. The order in which the key-value pairs are enumerated is undefined. • For arrays, proc is called with each element as the first paramater to proc, and the NULL object as the second parameter. Array elements are enumerated in ascending order of index. • For streams, proc is called once, with the stream's dictionary as the first parameter to the proc and the NULL object as the second parameter. ### Equals ```csharp override bool Datalogics.PDFL.PDFObject.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.PDFObject.ToString() ``` **Returns:** `override string` A string describing this PDFObject. Returns a string representation of this PDFObject. The string includes the object's indirect status, and if indirect, its ID and generation number. --- # PDFObjectComparison Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison **Namespace:** `Datalogics::PDFL` ## Description Comparisons between two PDFObjects. Represents the result of comparing two PDFObject instances for ordering purposes. ## Values - `Less = 0`: The first object is ordered before the second object. - `Equal = 1`: The two objects are equal. - `Greater = 2`: The first object is ordered after the second object. --- # PDFObjectEnumProc Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc ```csharp class PDFObjectEnumProc : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Represents callback function for Document.EnumIndirectPDFObjects & PDFObject.Enum. Enum is short for Enumerate. The class considers a list of indirect PDF objects. The callback function calls each object, and considers each object one by one, and continues to call and review each object until it finds and selects the object that is needed. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`NameTree`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NameTree.md), [`PDFArray`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFArray.md), [`PDFBoolean`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFBoolean.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`PDFInteger`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFInteger.md), [`PDFName`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFName.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`PDFReal`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFReal.md), [`PDFStream`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFStream.md), [`PDFString`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFString.md) **Uses types:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Constructors ### PDFObjectEnumProc ```csharp Datalogics.PDFL.PDFObjectEnumProc.PDFObjectEnumProc() ``` *constructor* Represents callback function for Document.EnumIndirectPDFObjects & PDFObject.Enum. Enum is short for Enumerate. The class considers a list of indirect PDF objects. The callback function calls each object, and considers each object one by one, and continues to call and review each object until it finds and selects the object that is needed. ## Methods ### Call ```csharp virtual bool Datalogics.PDFL.PDFObjectEnumProc.Call(PDFObject pdfObject, PDFObject pdfObjectValue) ``` **Parameters** - `pdfObject` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)) - `pdfObjectValue` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)) **Returns:** `bool` ### Dispose ```csharp void Datalogics.PDFL.PDFObjectEnumProc.Dispose() ``` **Returns:** `void` --- # PDFOptimizationCompressQuality Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFOptimizationCompressQuality **Namespace:** `Datalogics::PDFL` ## Description Specifies the quality level for lossy image compression during PDF optimization. Higher quality values produce larger files with better visual fidelity. ## Values - `PDFOptimizerCompressQualityUnset = 0`: Quality has not been set; the optimizer will use its default. - `PDFOptimizerCompressMinimum = 1`: Minimum quality, resulting in the smallest file size. - `PDFOptimizerCompressLowQuality = 2`: Low quality compression. - `PDFOptimizerCompressMediumQuality = 3`: Medium quality compression, balancing size and fidelity. - `PDFOptimizerCompressHighQuality = 4`: High quality compression. - `PDFOptimizerCompressMaximumQuality = 5`: Maximum quality compression, resulting in the largest file size among lossy options. - `PDFOptimizerCompressLossless = 6`: Lossless compression, preserving the original image data exactly. --- # PDFOptimizer Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFOptimizer ```csharp class PDFOptimizer : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Implementation of the PDF Optimizer function. Use the PDFOptimizer object to accumulate options for the Optimization, and to Optimize documents. **Uses types:** [`CancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CancelProc.md), [`CompressImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType.md), [`CompressQuality`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressQuality.md), [`CompressionType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressionType.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`ObjectCompressionType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ObjectCompressionType.md), [`OptimizerOption`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/OptimizerOption.md), [`ProgressMonitor`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ProgressMonitor.md) ## Constructors ### PDFOptimizer ```csharp Datalogics.PDFL.PDFOptimizer.PDFOptimizer() ``` *constructor* Construct a CPDFOptimizer, with default Options. ## Properties ### MajorVersion ```csharp short Datalogics.PDFL.PDFOptimizer.MajorVersion { get; set; } ``` Get the value of the Major Version of the optimized document. ### MinorVersion ```csharp short Datalogics.PDFL.PDFOptimizer.MinorVersion { get; set; } ``` Get the value of the Minor Version of the optimized document. ### ObjectCompression ```csharp ObjectCompressionType Datalogics.PDFL.PDFOptimizer.ObjectCompression { get; set; } ``` Get the value of the Object Compression of the optimized document. ## Methods ### Dispose ```csharp void Datalogics.PDFL.PDFOptimizer.Dispose() ``` **Returns:** `void` ### GetCompressionQuality ```csharp CompressQuality Datalogics.PDFL.PDFOptimizer.GetCompressionQuality(CompressImageType type) ``` **Parameters** - `type` ([`CompressImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType.md)): The image color type (Color, Gray, or BW) to query. **Returns:** [`CompressQuality`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressQuality.md) The compression quality level for the specified color model. Get the value of the Compression Quality for a given color model. ### GetMaxResolution ```csharp int Datalogics.PDFL.PDFOptimizer.GetMaxResolution(CompressImageType type) ``` **Parameters** - `type` ([`CompressImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType.md)): The image color type (Color, Gray, or BW) to query. **Returns:** `int` The maximum resolution in DPI above which images will be downsampled. Get the value of the Max DPI for a given color model. ### GetOption ```csharp bool Datalogics.PDFL.PDFOptimizer.GetOption(OptimizerOption option) ``` **Parameters** - `option` ([`OptimizerOption`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/OptimizerOption.md)): The optimization option to query. **Returns:** `bool` true if the option is enabled, false if it is disabled. Get the value of a single Optimizer Option. ### GetRecompressionType ```csharp CompressionType Datalogics.PDFL.PDFOptimizer.GetRecompressionType(CompressImageType type) ``` **Parameters** - `type` ([`CompressImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType.md)): The image color type (Color, Gray, or BW) to query. **Returns:** [`CompressionType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressionType.md) The compression type that will be applied to images of the specified color model. Get the value of the Recompression Type for a given color model. ### GetResampleToResolution ```csharp int Datalogics.PDFL.PDFOptimizer.GetResampleToResolution(CompressImageType type) ``` **Parameters** - `type` ([`CompressImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType.md)): The image color type (Color, Gray, or BW) to query. **Returns:** `int` The target resolution in DPI to which images will be downsampled. Get the value of the Resample To DPI for a given color model. ### Optimize ```csharp void Datalogics.PDFL.PDFOptimizer.Optimize(Document doc, System.IO.Stream stream) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)) - `stream` (`System.IO.Stream`) **Returns:** `void` ### Optimize ```csharp void Datalogics.PDFL.PDFOptimizer.Optimize(Document doc, System.IO.Stream stream, ProgressMonitor progressMonitor, CancelProc cancelProc) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)) - `stream` (`System.IO.Stream`) - `progressMonitor` ([`ProgressMonitor`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ProgressMonitor.md)) - `cancelProc` ([`CancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CancelProc.md)) **Returns:** `void` ### Optimize ```csharp void Datalogics.PDFL.PDFOptimizer.Optimize(Document document, string newPath) ``` **Parameters** - `document` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document to optimize. - `newPath` (`string`): The file system path where the optimized document will be saved. **Returns:** `void` Perform the Optimization of a single document, saving the result in a new file. ### Optimize ```csharp void Datalogics.PDFL.PDFOptimizer.Optimize(Document document, string newPath, ProgressMonitor progressMonitor, CancelProc cancelProc) ``` **Parameters** - `document` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document to optimize. - `newPath` (`string`): The file system path where the optimized document will be saved. - `progressMonitor` ([`ProgressMonitor`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ProgressMonitor.md)): An optional progress monitor callback, or NULL. - `cancelProc` ([`CancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CancelProc.md)): An optional cancellation callback, or NULL. **Returns:** `void` Perform the Optimization of a single document, saving the result in a new file. ### SetCompressionQuality ```csharp void Datalogics.PDFL.PDFOptimizer.SetCompressionQuality(CompressImageType type, CompressQuality value) ``` **Parameters** - `type` ([`CompressImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType.md)): The image color type (Color, Gray, or BW) to set. - `value` ([`CompressQuality`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressQuality.md)): The compression quality level to apply. **Returns:** `void` Set the value for the Compression Quality for a given color model. Any image that recompressed, regardless of the reason, will use this Quality for the Quality value of the specific compression type. ### SetMaxResolution ```csharp void Datalogics.PDFL.PDFOptimizer.SetMaxResolution(CompressImageType type, int value) ``` **Parameters** - `type` ([`CompressImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType.md)): The image color type (Color, Gray, or BW) to set. - `value` (`int`): The maximum resolution in DPI. **Returns:** `void` Set the value for the Max DPI for a given color model. Any image above this resolution will be down sampled, if the Downsampling option is true for this color model. ### SetOption ```csharp void Datalogics.PDFL.PDFOptimizer.SetOption(OptimizerOption option, bool value) ``` **Parameters** - `option` ([`OptimizerOption`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/OptimizerOption.md)): The optimization option to set. - `value` (`bool`): true to enable the option, false to disable it. **Returns:** `void` Set the value of a single Optimizer option. ### SetRecompressionType ```csharp void Datalogics.PDFL.PDFOptimizer.SetRecompressionType(CompressImageType type, CompressionType value) ``` **Parameters** - `type` ([`CompressImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType.md)): The image color type (Color, Gray, or BW) to set. - `value` ([`CompressionType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressionType.md)): The compression type to apply. **Returns:** `void` Set the value for the recompression Type for a given color model. Any image that is downsampled will be compressed using this method, if the Downsampling option is true for this color model. Any image that is not downsampled, will be converted to this compression type, if it is not already compressed in this type, and the Recompression option for this color model is true. ### SetResampleToResolution ```csharp void Datalogics.PDFL.PDFOptimizer.SetResampleToResolution(CompressImageType type, int value) ``` **Parameters** - `type` ([`CompressImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType.md)): The image color type (Color, Gray, or BW) to set. - `value` (`int`): The target resolution in DPI. **Returns:** `void` Set the value for the Resample To DPI for a given color model. Any image will be downsampled to this resolution, if the Downsampling option is true for this color model. --- # PDFOptimizerCompressImageType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFOptimizerCompressImageType **Namespace:** `Datalogics::PDFL` ## Description Specifies the category of images to target during PDF optimization compression. ## Values - `PDFOptimizerColor = 1`: Target color images for compression. - `PDFOptimizerGray = 2`: Target grayscale images for compression. - `PDFOptimizerMonochrome = 3`: Target monochrome (black and white) images for compression. --- # PDFOptimizerCompressionType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFOptimizerCompressionType **Namespace:** `Datalogics::PDFL` ## Description Specifies the compression algorithm to use when recompressing images during PDF optimization. ## Values - `PDFOptimizerRecompressNone = 0`: Do not recompress. Used only when the original image is not compressed. - `PDFOptimizerRecompressSame = 1`: Recompress using the same compression as the original image. - `PDFOptimizerRecompressFlate = 2`: Recompress the image using Flate (zip/deflate) compression. - `PDFOptimizerRecompressJpeg = 3`: Recompress the image using JPEG compression. - `PDFOptimizerRecompressJP2k = 4`: Recompress the image using JPEG 2000 compression. - `PDFOptimizerRecompressJBig = 5`: Recompress the image using JBIG2 compression. - `PDFOptimizerRecompressCCITTG4 = 6`: Recompress the image using CCITT Group 4 compression. - `PDFOptimizerRecompressCCITTG3 = 7`: Recompress the image using CCITT Group 3 compression. - `PDFOptimizerRecompressFlateJpeg = 8`: Recompress using Flate for lossless portions and JPEG for lossy portions. --- # PDFOptimizerObjectCompressionType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFOptimizerObjectCompressionType **Namespace:** `Datalogics::PDFL` ## Description Specifies the object-level stream compression strategy during PDF optimization. ## Values - `PDFOptimizerObjectCompressionAll = 0`: Compress all objects into object streams. - `PDFOptimizerObjectCompressionNone = 1`: Do not use object stream compression for any objects. - `PDFOptimizerObjectCompressionStructure = 2`: Compress only document structure objects into object streams. - `PDFOptimizerObjectCompressionLeaveUnchanged = 3`: Leave the existing object compression unchanged. --- # PDFOptimizerOption Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFOptimizerOption **Namespace:** `Datalogics::PDFL` ## Values - `PDFOptimizerDownsampleColor = 1` - `PDFOptimizerRecompressColor = 2` - `PDFOptimizerDownsampleGray = 3` - `PDFOptimizerRecompressGray = 4` - `PDFOptimizerDownsampleBW = 5` - `PDFOptimizerRecompressBW = 6` - `PDFOptimizerDownsampleRecompressOnlyIfSmaller = 7` - `PDFOptimizerDiscardAlternateImages = 8` - `PDFOptimizerSubsetAllEmbeddedFonts = 9` - `PDFOptimizerRemoveAllEmbeddedFonts = 10` - `PDFOptimizerRemoveAllBase14Fonts = 11` - `PDFOptimizerMergeDuplicateFonts = 12` - `PDFOptimizerDiscardBookmarks = 13` - `PDFOptimizerDiscardAcroforms = 14` - `PDFOptimizerDiscardOutputIntent = 15` - `PDFOptimizerDiscardThumbnails = 16` - `PDFOptimizerDiscardPageLabels = 17` - `PDFOptimizerDiscardNameTrees = 18` - `PDFOptimizerDiscardStructureTrees = 19` - `PDFOptimizerDiscardFileAttachments = 20` - `PDFOptimizerDiscardXMPPadding = 21` - `PDFOptimizerDiscardUnusedForms = 22` - `PDFOptimizerDiscardPieceData = 23` - `PDFOptimizerCompressStreams = 24` - `PDFOptimizerReplaceLZW = 25` - `PDFOptimizerDiscardMetadata = 26` - `PDFOptimizerDiscardDocumentInfo = 27` - `PDFOptimizerOptimizeContentStreams = 28` - `PDFOptimizerLinearize = 29` - `PDFOptimizerDiscardDuplicateForms = 30` - `PDFOptimizerDiscardDuplicateObjects = 31` - `PDFOptimizerDiscardASCIIFilters = 32` - `PDFOptimizerDiscardComments = 33` - `PDFOptimizerDiscardAnnotations = 34` - `PDFOptimizerDiscardJavaScriptActions = 35` - `PDFOptimizerFlattenOptionalContent = 36` - `PDFOptimizerResubsetSubsetFonts = 37` - `PDFOptimizerDownConvert16To8BpcImages = 38` - `PDFOptimizerDiscardUnusedImages = 39` - `PDFOptimizerDiscardUnusedFonts = 40` - `PDFOptimizerLastOption = 41` --- # PDFProcessorPDFAConversionOption Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFProcessorPDFAConversionOption **Namespace:** `Datalogics::PDFL` ## Description Specifies which PDF/A standard and color space to use when converting a document to PDF/A. ## Values - `KPDFProcessorConvertToPDFA1aRGB = 0`: Convert to PDF/A-1a with an RGB output color profile. - `KPDFProcessorConvertToPDFA1aCMYK = 1`: Convert to PDF/A-1a with a CMYK output color profile. - `KPDFProcessorConvertToPDFA1bRGB = 2`: Convert to PDF/A-1b with an RGB output color profile. - `KPDFProcessorConvertToPDFA1bCMYK = 3`: Convert to PDF/A-1b with a CMYK output color profile. - `KPDFProcessorConvertToPDFA2aRGB = 4`: Convert to PDF/A-2a with an RGB output color profile. - `KPDFProcessorConvertToPDFA2aCMYK = 5`: Convert to PDF/A-2a with a CMYK output color profile. - `KPDFProcessorConvertToPDFA2bRGB = 6`: Convert to PDF/A-2b with an RGB output color profile. - `KPDFProcessorConvertToPDFA2bCMYK = 7`: Convert to PDF/A-2b with a CMYK output color profile. - `KPDFProcessorConvertToPDFA2uRGB = 8`: Convert to PDF/A-2u with an RGB output color profile. - `KPDFProcessorConvertToPDFA2uCMYK = 9`: Convert to PDF/A-2u with a CMYK output color profile. - `KPDFProcessorConvertToPDFA3aRGB = 10`: Convert to PDF/A-3a with an RGB output color profile. - `KPDFProcessorConvertToPDFA3aCMYK = 11`: Convert to PDF/A-3a with a CMYK output color profile. - `KPDFProcessorConvertToPDFA3bRGB = 12`: Convert to PDF/A-3b with an RGB output color profile. - `KPDFProcessorConvertToPDFA3bCMYK = 13`: Convert to PDF/A-3b with a CMYK output color profile. - `KPDFProcessorConvertToPDFA3uRGB = 14`: Convert to PDF/A-3u with an RGB output color profile. - `KPDFProcessorConvertToPDFA3uCMYK = 15`: Convert to PDF/A-3u with a CMYK output color profile. - `KPDFProcessorConvertToPDFA4RGB = 16`: Convert to PDF/A-4 with an RGB output color profile. - `KPDFProcessorConvertToPDFA4CMYK = 17`: Convert to PDF/A-4 with a CMYK output color profile. - `KPDFProcessorConvertToPDFA4eRGB = 18`: Convert to PDF/A-4e with an RGB output color profile. - `KPDFProcessorConvertToPDFA4eCMYK = 19`: Convert to PDF/A-4e with a CMYK output color profile. - `KPDFProcessorConvertToPDFA4fRGB = 20`: Convert to PDF/A-4f with an RGB output color profile. - `KPDFProcessorConvertToPDFA4fCMYK = 21`: Convert to PDF/A-4f with a CMYK output color profile. --- # PDFProcessorPDFXConversionOption Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFProcessorPDFXConversionOption **Namespace:** `Datalogics::PDFL` ## Description Specifies which PDF/X standard to use when converting a document to PDF/X. ## Values - `KPDFProcessorConvertToPDFX1a2001 = 0`: Convert to PDF/X-1a:2001 standard. - `KPDFProcessorConvertToPDFX32003 = 1`: Convert to PDF/X-3:2003 standard. - `KPDFProcessorConvertToPDFX42010 = 2`: Convert to PDF/X-4:2010 standard. - `KPDFProcessorConvertToPDFX62020 = 3`: Convert to PDF/X-6:2020 standard. --- # PDFReal Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFReal ```csharp class PDFReal : PDFObject ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Description Represents a floating point data element within a PDF document. All objects in a PDF document are built from a collection of simpler objects that represent fundamental datatypes like numbers, strings and arrays. PDFObject and its subclasses allow direct access and manipulation of these simple objects. Some subclasses represent single data elements. For example, PDFReal represents a single floating point value. Others represent a collection of PDFObjects, such as PDFArray, an indexed array of data elements. A PDFReal represents a single floating point value, and may be inserted into any collection object. **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`PDFObjectComparison`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison.md), [`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md) ## Constructors ### PDFReal ```csharp Datalogics.PDFL.PDFReal.PDFReal(double value, Document doc, bool indirect) ``` *constructor* **Parameters** - `value` (`double`): Double value of this PDFReal - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): Document object containing this PDFReal - `indirect` (`bool`): flag marking this as an indirect PDFObject General constructor ### PDFReal ```csharp Datalogics.PDFL.PDFReal.PDFReal(double value, PDFObject docFromObj, bool indirect) ``` *constructor* **Parameters** - `value` (`double`): Double value of this PDFReal - `docFromObj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The new PDFArray will be created in the same document as this object. - `indirect` (`bool`): flag marking this as an indirect PDFObject General constructor ## Properties ### Document ```csharp Document Datalogics.PDFL.PDFObject.Document { get; } ``` The Document of which this object is a member. Returns null if the Document is not known by PDFL, or if it is a temporary document. If the Document is not null, then it shares the same internal data with other Document objects that refer to the same file. Document objects returned this way do not contribute to the internal count that keeps the Document open, and will become invalid if the main reference to the document is disposed. ### Generation ```csharp int Datalogics.PDFL.PDFObject.Generation { get; } ``` The generation number for this object. Only indirect objects have a generation number. **Exceptions** - `ApplicationException`: direct objects do not have a generation number. ### ID ```csharp int Datalogics.PDFL.PDFObject.ID { get; } ``` The ID number for this object. Only indirect objects have an ID number. **Exceptions** - `ApplicationException`: direct objects do not have an ID number. ### Indirect ```csharp bool Datalogics.PDFL.PDFObject.Indirect { get; } ``` Indicates if this object is indirect or direct. ### PDFHashValue ```csharp int Datalogics.PDFL.PDFObject.PDFHashValue { get; } ``` The 32-bit hash value for this object. The hash value is used internally to quickly access the object, and is not generally useful for PDFObject users. Note that two PDFObjects with equal hash values are not necessarily equal; use Equals() to check for equality. ### Value ```csharp double Datalogics.PDFL.PDFReal.Value { get; } ``` Floating-point value of this object. ## Methods ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone() ``` **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object. Makes a new copy of this PDFObject in memory, in the same document and using same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(Document doc) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The target document in which to create the copy. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the specified document. Makes a new copy of this PDFObject in memory, in the supplied document, using the same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(Document doc, bool indirect) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The target document in which to create the copy. - `indirect` (`bool`): If true, the copy will be an indirect object; if false, it will be direct. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the specified document. Makes a new copy of this PDFObject in memory, in the supplied document, using supplied direct/indirect setting. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(PDFObject obj) ``` **Parameters** - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The reference object whose document will be used for the copy. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the same document as obj. Makes a new copy of this PDFObject in memory, in the same document as another object, using the same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(PDFObject obj, bool indirect) ``` **Parameters** - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The reference object whose document will be used for the copy. - `indirect` (`bool`): If true, the copy will be an indirect object; if false, it will be direct. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the same document as obj. Makes a new copy of this PDFObject in memory, in the same document as another object, using supplied direct/indirect setting. ### CompareTo ```csharp PDFObjectComparison Datalogics.PDFL.PDFObject.CompareTo(PDFObject rhs) ``` **Parameters** - `rhs` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): the other PDFObject to compare. **Returns:** [`PDFObjectComparison`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison.md) A PDFObjectComparison value that relates this object to the rhs object Compares this object to another object. The result is useful for ordering or sorting PDFObjects. No other significance should be attached to the result. In particular, an unequal result indicates nothing about the type of either object. The result is valid only within a single instance of the document. ### Destroy ```csharp void Datalogics.PDFL.PDFObject.Destroy() ``` **Returns:** `void` Destroys this object. This method does nothing if this object is a direct scalar object. If a composite object (an array, dictionary or stream) is destroyed: • All the direct objects in it are automatically destroyed. • The indirect objects in it are not destroyed. ### Dispose ```csharp void Datalogics.PDFL.PDFObject.Dispose() ``` **Returns:** `void` ### EnumPDFObjects ```csharp bool Datalogics.PDFL.PDFObject.EnumPDFObjects(PDFObjectEnumProc enumProc) ``` **Parameters** - `enumProc` ([`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md)): A user-supplied callback to call for each element of the object. of obj. Neither proc nor any routine called by proc may modify the object. Doing so can produce undefined results or errors. For example, if the object is an array, enumProc must not call Remove(); if the object is a dictionary, enumProc must not call Put(). **Returns:** `bool` Returns true if every call to enumProc returned true. As soon as any call to enumProc returns false, the enumeration stops and EnumPDFObject() returns false. Enumerates the elements of a PDFObject by calling a user-supplied procedure for each component of the object. • For scalars or strings, the proc is not called, and CosObjEnum() returns true. • For dictionaries, proc is called for each key-value pair. The order in which the key-value pairs are enumerated is undefined. • For arrays, proc is called with each element as the first paramater to proc, and the NULL object as the second parameter. Array elements are enumerated in ascending order of index. • For streams, proc is called once, with the stream's dictionary as the first parameter to the proc and the NULL object as the second parameter. ### Equals ```csharp override bool Datalogics.PDFL.PDFObject.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.PDFReal.ToString() ``` **Returns:** `override string` A string describing this PDFReal, including its value and properties. Returns a string representation of this PDFReal object. The returned string includes property information and the floating-point value in a human-readable format. --- # PDFStream Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFStream ```csharp class PDFStream : PDFObject ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Description Represents a stream of data within a PDF document. All objects in a PDF document are built from a collection of simpler objects that represent fundamental datatypes like numbers, strings and arrays. PDFObject and its subclasses allow direct access and manipulation of these simple objects. Some subclasses represent single data elements (e.g. PDFInteger represents a single integer value); other subclasses represent a collection of PDFObjects (e.g. PDFArray is an indexed array of data elements). A PDFStream represents a stream of unsigned bytes, and may be inserted into any collection object. It includes a dictionary that describes how the data in the stream is encoded and other useful information about the stream. A PDFStream is always an indirect object. PDFStreams can be encoded using built-in filters. These filters include compression schemes for most popular image formats, and text encoding translators to permit safe transmission of the document over the Internet. The data in a PDFStream will be automatically encoded when it is created; the user can read either the encoded (raw) or decoded (filtered) data. PDFStreams can be used for any large collection of data that need not be read into memory all at once, including image data, multimedia data or XML markup. **Referenced by:** [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`ICCBasedColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ICCBasedColorSpace.md), [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md), [`PostScript`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PostScript.md), [`PostScriptCalculatorFunction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PostScriptCalculatorFunction.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFArray`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFArray.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`PDFObjectComparison`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison.md), [`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md), [`PDFStreamOpenMode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFStreamOpenMode.md) ## Constructors ### PDFStream ```csharp Datalogics.PDFL.PDFStream.PDFStream(System.IO.Stream stream, Document doc, PDFDict encoding_dict, PDFArray encoding_params) ``` *constructor* **Parameters** - `stream` (`System.IO.Stream`): System.IO.Stream which will provide data for this PDFStream - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): Document object containing this PDFStream - `encoding_dict` ([`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md)): PDFDict describing properties of this stream, including the encoding - `encoding_params` ([`PDFArray`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFArray.md)): PDFArray describing parameters for encoding this stream General constructor ### PDFStream ```csharp Datalogics.PDFL.PDFStream.PDFStream(System.IO.Stream stream, PDFObject docFromObj, PDFDict encoding_dict, PDFArray encoding_params) ``` *constructor* **Parameters** - `stream` (`System.IO.Stream`): System.IO.Stream which will provide data for this PDFStream - `docFromObj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The new PDFArray will be created in the same document as this object. - `encoding_dict` ([`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md)): PDFDict describing properties of this stream, including the encoding - `encoding_params` ([`PDFArray`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFArray.md)): PDFArray describing parameters for encoding this stream General constructor ## Properties ### Dict ```csharp PDFDict Datalogics.PDFL.PDFStream.Dict { get; } ``` The encoding dictionary for the stream. This includes all required information for decoding the stream, such as filter names and decode parameters. ### Document ```csharp Document Datalogics.PDFL.PDFObject.Document { get; } ``` The Document of which this object is a member. Returns null if the Document is not known by PDFL, or if it is a temporary document. If the Document is not null, then it shares the same internal data with other Document objects that refer to the same file. Document objects returned this way do not contribute to the internal count that keeps the Document open, and will become invalid if the main reference to the document is disposed. ### FilteredStream ```csharp System.IO.Stream Datalogics.PDFL.PDFStream.FilteredStream { get; } ``` ### Generation ```csharp int Datalogics.PDFL.PDFObject.Generation { get; } ``` The generation number for this object. Only indirect objects have a generation number. **Exceptions** - `ApplicationException`: direct objects do not have a generation number. ### ID ```csharp int Datalogics.PDFL.PDFObject.ID { get; } ``` The ID number for this object. Only indirect objects have an ID number. **Exceptions** - `ApplicationException`: direct objects do not have an ID number. ### Indirect ```csharp bool Datalogics.PDFL.PDFObject.Indirect { get; } ``` Indicates if this object is indirect or direct. ### Length ```csharp int Datalogics.PDFL.PDFStream.Length { get; } ``` The encoded length of the stream in bytes. ### PDFHashValue ```csharp int Datalogics.PDFL.PDFObject.PDFHashValue { get; } ``` The 32-bit hash value for this object. The hash value is used internally to quickly access the object, and is not generally useful for PDFObject users. Note that two PDFObjects with equal hash values are not necessarily equal; use Equals() to check for equality. ### StreamPos ```csharp int Datalogics.PDFL.PDFStream.StreamPos { get; } ``` The byte offset of this stream in the PDF file. **Exceptions** - `ApplicationException`: will be thrown if the document has not been saved since creating the stream ### UnfilteredStream ```csharp System.IO.Stream Datalogics.PDFL.PDFStream.UnfilteredStream { get; } ``` ## Methods ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone() ``` **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object. Makes a new copy of this PDFObject in memory, in the same document and using same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(Document doc) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The target document in which to create the copy. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the specified document. Makes a new copy of this PDFObject in memory, in the supplied document, using the same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(Document doc, bool indirect) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The target document in which to create the copy. - `indirect` (`bool`): If true, the copy will be an indirect object; if false, it will be direct. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the specified document. Makes a new copy of this PDFObject in memory, in the supplied document, using supplied direct/indirect setting. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(PDFObject obj) ``` **Parameters** - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The reference object whose document will be used for the copy. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the same document as obj. Makes a new copy of this PDFObject in memory, in the same document as another object, using the same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(PDFObject obj, bool indirect) ``` **Parameters** - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The reference object whose document will be used for the copy. - `indirect` (`bool`): If true, the copy will be an indirect object; if false, it will be direct. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the same document as obj. Makes a new copy of this PDFObject in memory, in the same document as another object, using supplied direct/indirect setting. ### CompareTo ```csharp PDFObjectComparison Datalogics.PDFL.PDFObject.CompareTo(PDFObject rhs) ``` **Parameters** - `rhs` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): the other PDFObject to compare. **Returns:** [`PDFObjectComparison`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison.md) A PDFObjectComparison value that relates this object to the rhs object Compares this object to another object. The result is useful for ordering or sorting PDFObjects. No other significance should be attached to the result. In particular, an unequal result indicates nothing about the type of either object. The result is valid only within a single instance of the document. ### Destroy ```csharp void Datalogics.PDFL.PDFObject.Destroy() ``` **Returns:** `void` Destroys this object. This method does nothing if this object is a direct scalar object. If a composite object (an array, dictionary or stream) is destroyed: • All the direct objects in it are automatically destroyed. • The indirect objects in it are not destroyed. ### Dispose ```csharp void Datalogics.PDFL.PDFObject.Dispose() ``` **Returns:** `void` ### EnumPDFObjects ```csharp bool Datalogics.PDFL.PDFObject.EnumPDFObjects(PDFObjectEnumProc enumProc) ``` **Parameters** - `enumProc` ([`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md)): A user-supplied callback to call for each element of the object. of obj. Neither proc nor any routine called by proc may modify the object. Doing so can produce undefined results or errors. For example, if the object is an array, enumProc must not call Remove(); if the object is a dictionary, enumProc must not call Put(). **Returns:** `bool` Returns true if every call to enumProc returned true. As soon as any call to enumProc returns false, the enumeration stops and EnumPDFObject() returns false. Enumerates the elements of a PDFObject by calling a user-supplied procedure for each component of the object. • For scalars or strings, the proc is not called, and CosObjEnum() returns true. • For dictionaries, proc is called for each key-value pair. The order in which the key-value pairs are enumerated is undefined. • For arrays, proc is called with each element as the first paramater to proc, and the NULL object as the second parameter. Array elements are enumerated in ascending order of index. • For streams, proc is called once, with the stream's dictionary as the first parameter to the proc and the NULL object as the second parameter. ### Equals ```csharp override bool Datalogics.PDFL.PDFObject.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### GetFilteredStream ```csharp System.IO.Stream Datalogics.PDFL.PDFStream.GetFilteredStream() ``` **Returns:** `System.IO.Stream` The stream data of this object, decoded according to the filter data in its dictionary. ### GetStream ```csharp System.IO.Stream Datalogics.PDFL.PDFStream.GetStream(PDFStreamOpenMode mode) ``` **Parameters** - `mode` ([`PDFStreamOpenMode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFStreamOpenMode.md)) **Returns:** `System.IO.Stream` The stream data of this object, processed according to the mode ### GetUnfilteredStream ```csharp System.IO.Stream Datalogics.PDFL.PDFStream.GetUnfilteredStream() ``` **Returns:** `System.IO.Stream` The unfiltered data of this stream object. ### SetData ```csharp void Datalogics.PDFL.PDFStream.SetData(System.IO.Stream stream, PDFDict encoding_dict, PDFArray encoding_params) ``` **Parameters** - `stream` (`System.IO.Stream`) - `encoding_dict` ([`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md)) - `encoding_params` ([`PDFArray`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFArray.md)) **Returns:** `void` Replace the data in this PDFStream ### ToString ```csharp override string Datalogics.PDFL.PDFStream.ToString() ``` **Returns:** `override string` A string describing this PDFStream, including its indirect/direct status and ID. Returns a string representation of this PDFStream. --- # PDFStreamOpenMode Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFStreamOpenMode **Namespace:** `Datalogics::PDFL` ## Values - `Raw = 0`: Return the encrypted and encoded (i.e. unfiltered) stream - `Unfiltered = 1`: Return the decrypted but still encoded (i.e. unfiltered) stream - `Filtered = 2`: Return the decrypted and decoded (i.e. filtered) stream --- # PDFString Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFString ```csharp class PDFString : PDFObject ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) ## Description Represents an array of unsigned bytes within a PDF document. A PDFString is a single data element that represents an array of unsigned bytes. It may be inserted into any collection object. PDFString may be a string of human readable text, but this is not required, and it may be stored either as characters or as hex values. **Referenced by:** [`NameTree`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/NameTree.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`PDFObjectComparison`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison.md), [`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md) ## Constructors ### PDFString ```csharp Datalogics.PDFL.PDFString.PDFString(string value, Document doc, bool indirect, bool storedAsHex) ``` *constructor* **Parameters** - `value` (`string`): String stored in this PDFString - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): Document object containing this PDFString - `indirect` (`bool`): flag marking this as an indirect PDFObject - `storedAsHex` (`bool`): flag indicating this PDFString should be stored as hex values String constructor The provided string value is a Unicode string object. If it only contains characters within the PDFDocEncoding character set, it will be stored in that encoding; otherwise it will be stored in the document as UTF-16BE. ### PDFString ```csharp Datalogics.PDFL.PDFString.PDFString(string value, Document doc, bool indirect, bool storedAsHex, bool storedAsUTF16) ``` *constructor* **Parameters** - `value` (`string`): String stored in this PDFString - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): Document object containing this PDFString - `indirect` (`bool`): flag marking this as an indirect PDFObject - `storedAsHex` (`bool`): flag indicating this PDFString should be stored as hex values - `storedAsUTF16` (`bool`): flag indicating this PDFString should be stored as UTF-16BE, even if it could be encoded as PDFDocEncoding String constructor The provided string value is a Unicode string object. If storedAsUTF16 is true, it will be stored in the document at UTF-16BE. Otherwise it will be stored as PDFDocEncoding if it only contains characters within the PDFDocEncoding character set, else it will be stored as UTF-16BE. ### PDFString ```csharp Datalogics.PDFL.PDFString.PDFString(string value, PDFObject docFromObj, bool indirect, bool storedAsHex) ``` *constructor* **Parameters** - `value` (`string`): String stored in this PDFString - `docFromObj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The new PDFString will be created in the same document as this object. - `indirect` (`bool`): flag marking this as an indirect PDFObject - `storedAsHex` (`bool`): flag indicating this PDFString should be stored as hex values String constructor The provided string value is a Unicode string object. If it only contains characters within the PDFDocEncoding character set, it will be stored in that encoding; otherwise it will be stored in the document as UTF-16BE. ### PDFString ```csharp Datalogics.PDFL.PDFString.PDFString(string value, PDFObject docFromObj, bool indirect, bool storedAsHex, bool storedAsUTF16) ``` *constructor* **Parameters** - `value` (`string`): String stored in this PDFString - `docFromObj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The new PDFString will be created in the same document as this object. - `indirect` (`bool`): flag marking this as an indirect PDFObject - `storedAsHex` (`bool`): flag indicating this PDFString should be stored as hex values - `storedAsUTF16` (`bool`): flag indicating this PDFString should be stored as UTF-16BE, even if it could be encoded as PDFDocEncoding String constructor The provided string value is a Unicode string object. If storedAsUTF16 is true, it will be stored in the document at UTF-16BE. Otherwise it will be stored as PDFDocEncoding if it only contains characters within the PDFDocEncoding character set, else it will be stored as UTF-16BE. ### PDFString ```csharp Datalogics.PDFL.PDFString.PDFString(System.Byte[] value, Document doc, bool indirect, bool storedAsHex) ``` *constructor* **Parameters** - `value` (`System.Byte[]`): Array of bytes stored in this PDFString - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): Document object containing this PDFString - `indirect` (`bool`): flag marking this as an indirect PDFObject - `storedAsHex` (`bool`): flag indicating this PDFString should be stored as hex values General constructor ### PDFString ```csharp Datalogics.PDFL.PDFString.PDFString(System.Byte[] value, PDFObject docFromObj, bool indirect, bool storedAsHex) ``` *constructor* **Parameters** - `value` (`System.Byte[]`): Array of bytes stored in this PDFString - `docFromObj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The new PDFString will be created in the same document as this object. - `indirect` (`bool`): flag marking this as an indirect PDFObject - `storedAsHex` (`bool`): flag indicating this PDFString should be stored as hex values General constructor ## Properties ### Bytes ```csharp System.Byte [] Datalogics.PDFL.PDFString.Bytes { get; } ``` The raw byte array of this PDFString. This method returns the raw data of the PDFString, without respect to any encoding. It should be used when the contents of the object represent data instead of human readable text, or when direct access to the underlying data is required. ### Document ```csharp Document Datalogics.PDFL.PDFObject.Document { get; } ``` The Document of which this object is a member. Returns null if the Document is not known by PDFL, or if it is a temporary document. If the Document is not null, then it shares the same internal data with other Document objects that refer to the same file. Document objects returned this way do not contribute to the internal count that keeps the Document open, and will become invalid if the main reference to the document is disposed. ### Generation ```csharp int Datalogics.PDFL.PDFObject.Generation { get; } ``` The generation number for this object. Only indirect objects have a generation number. **Exceptions** - `ApplicationException`: direct objects do not have a generation number. ### ID ```csharp int Datalogics.PDFL.PDFObject.ID { get; } ``` The ID number for this object. Only indirect objects have an ID number. **Exceptions** - `ApplicationException`: direct objects do not have an ID number. ### Indirect ```csharp bool Datalogics.PDFL.PDFObject.Indirect { get; } ``` Indicates if this object is indirect or direct. ### PDFHashValue ```csharp int Datalogics.PDFL.PDFObject.PDFHashValue { get; } ``` The 32-bit hash value for this object. The hash value is used internally to quickly access the object, and is not generally useful for PDFObject users. Note that two PDFObjects with equal hash values are not necessarily equal; use Equals() to check for equality. ### StoredAsHex ```csharp bool Datalogics.PDFL.PDFString.StoredAsHex { get; } ``` Indicates that the data is stored as hexadecimal values. ### Value ```csharp string Datalogics.PDFL.PDFString.Value { get; } ``` The byte array as a native string object. This is a convenience for typical uses where a PDFString holds a human readable string instead of a byte array. The text may be encoded within the PDF as either UTF-16BE or PDFDocEncoding; in either case, it will be converted to a Unicode string object appropriate to the platform. If you need to access the contents of the PDFString object without respect to an encoding, use the Bytes property. ## Methods ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone() ``` **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object. Makes a new copy of this PDFObject in memory, in the same document and using same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(Document doc) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The target document in which to create the copy. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the specified document. Makes a new copy of this PDFObject in memory, in the supplied document, using the same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(Document doc, bool indirect) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The target document in which to create the copy. - `indirect` (`bool`): If true, the copy will be an indirect object; if false, it will be direct. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the specified document. Makes a new copy of this PDFObject in memory, in the supplied document, using supplied direct/indirect setting. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(PDFObject obj) ``` **Parameters** - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The reference object whose document will be used for the copy. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the same document as obj. Makes a new copy of this PDFObject in memory, in the same document as another object, using the same direct/indirect setting as this PDFObject. ### Clone ```csharp PDFObject Datalogics.PDFL.PDFObject.Clone(PDFObject obj, bool indirect) ``` **Parameters** - `obj` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): The reference object whose document will be used for the copy. - `indirect` (`bool`): If true, the copy will be an indirect object; if false, it will be direct. **Returns:** [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md) A new PDFObject that is a copy of this object in the same document as obj. Makes a new copy of this PDFObject in memory, in the same document as another object, using supplied direct/indirect setting. ### CompareTo ```csharp PDFObjectComparison Datalogics.PDFL.PDFObject.CompareTo(PDFObject rhs) ``` **Parameters** - `rhs` ([`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md)): the other PDFObject to compare. **Returns:** [`PDFObjectComparison`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFObjectComparison.md) A PDFObjectComparison value that relates this object to the rhs object Compares this object to another object. The result is useful for ordering or sorting PDFObjects. No other significance should be attached to the result. In particular, an unequal result indicates nothing about the type of either object. The result is valid only within a single instance of the document. ### Destroy ```csharp void Datalogics.PDFL.PDFObject.Destroy() ``` **Returns:** `void` Destroys this object. This method does nothing if this object is a direct scalar object. If a composite object (an array, dictionary or stream) is destroyed: • All the direct objects in it are automatically destroyed. • The indirect objects in it are not destroyed. ### Dispose ```csharp void Datalogics.PDFL.PDFObject.Dispose() ``` **Returns:** `void` ### EnumPDFObjects ```csharp bool Datalogics.PDFL.PDFObject.EnumPDFObjects(PDFObjectEnumProc enumProc) ``` **Parameters** - `enumProc` ([`PDFObjectEnumProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObjectEnumProc.md)): A user-supplied callback to call for each element of the object. of obj. Neither proc nor any routine called by proc may modify the object. Doing so can produce undefined results or errors. For example, if the object is an array, enumProc must not call Remove(); if the object is a dictionary, enumProc must not call Put(). **Returns:** `bool` Returns true if every call to enumProc returned true. As soon as any call to enumProc returns false, the enumeration stops and EnumPDFObject() returns false. Enumerates the elements of a PDFObject by calling a user-supplied procedure for each component of the object. • For scalars or strings, the proc is not called, and CosObjEnum() returns true. • For dictionaries, proc is called for each key-value pair. The order in which the key-value pairs are enumerated is undefined. • For arrays, proc is called with each element as the first paramater to proc, and the NULL object as the second parameter. Array elements are enumerated in ascending order of index. • For streams, proc is called once, with the stream's dictionary as the first parameter to the proc and the NULL object as the second parameter. ### Equals ```csharp override bool Datalogics.PDFL.PDFObject.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.PDFString.ToString() ``` **Returns:** `override string` A string describing this PDFString. Returns a string representation of this PDFString. The string includes the object's indirect status, value, and hex storage flag. --- # PDFXConvertParams Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFXConvertParams ```csharp class PDFXConvertParams : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Parameters for converting a document to PDF/X compliance. These parameters control how a Document is converted to the PDF/X standard. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) ## Constructors ### PDFXConvertParams ```csharp Datalogics.PDFL.PDFXConvertParams.PDFXConvertParams() ``` *constructor* Construct PDF/X conversion parameters with defaults. Defaults: RemoveAllAnnotations = false, AbortIfXFAIsPresent = false. ### PDFXConvertParams ```csharp Datalogics.PDFL.PDFXConvertParams.PDFXConvertParams(bool RemoveAllAnnotations, bool AbortIfXFAIsPresent) ``` *constructor* **Parameters** - `RemoveAllAnnotations` (`bool`): Remove all annotations whether legal or illegal. - `AbortIfXFAIsPresent` (`bool`): Abort when XFA is present. Parameters for converting to PDF/X. ## Properties ### AbortIfXFAIsPresent ```csharp bool Datalogics.PDFL.PDFXConvertParams.AbortIfXFAIsPresent { get; set; } ``` Gets whether conversion is aborted when XFA forms are present. Presence of XFA can result in some loss of data in output PDF/X file as the Library does not support XFA. However client can choose to abort the conversion in case XFA is present by setting this parameter to true. By default we will not abort if XFA is present. If false we will convert even if we detect the XFA form entry in PDDoc. If true we will abort the process. ### ProfileDesc ```csharp string Datalogics.PDFL.PDFXConvertParams.ProfileDesc { get; set; } ``` Gets the Output Intent profile description for the PDF/X conversion. The Output Intent of a PDF/X document may be any valid CMYK Profile For PDF/X-1a or any valid CMYK or RGB Profile for PDF/X-3. This parameter allows the user to specify a particular profile for this conversion by description. When this parameter is not present, the profile "U.S. Web Coated (SWOP) v2" will be used for both. If this description is present, and specifies a profile of the wrong color family, or specifies a profile which cannot be located in resources, an exception will be raised. ### RemoveAllAnnotations ```csharp bool Datalogics.PDFL.PDFXConvertParams.RemoveAllAnnotations { get; set; } ``` Gets whether all annotations and actions are removed during conversion. Some of the standards like PDF/X prohibit the presence of some types of Annotations and Actions in order to comply with those standards. By default we will filter all illegal Annotations and Actions. If false we will filter out all illegal Annotations and Actions (according to the standard being used) while retaining the legal ones. If true this will remove all the Annotations and Actions from the output PDF/X compliant file. ## Methods ### Dispose ```csharp void Datalogics.PDFL.PDFXConvertParams.Dispose() ``` **Returns:** `void` --- # PDFXConvertResult Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFXConvertResult ```csharp class PDFXConvertResult ``` **Namespace:** `Datalogics::PDFL` ## Description Contains a PDF document if the conversion is successful; returns null if the conversion fails. PDF/X is a subset of the PDF ISO standard. The purpose of PDF/X is to facilitate graphics exchange, and it therefore has a series of printing related requirements. For example, in PDF/X-1a all fonts need to be embedded and all images need to be CMYK or spot colors. PDF/X-3 accepts calibrated RGB and CIELAB colors. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`SaveFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SaveFlags.md) ## Constructors ### PDFXConvertResult ```csharp Datalogics.PDFL.PDFXConvertResult.PDFXConvertResult(Document doc, SaveFlags flags) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)) - `flags` ([`SaveFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SaveFlags.md)) ## Properties ### PDFXDocument ```csharp Document Datalogics.PDFL.PDFXConvertResult.PDFXDocument { get; set; } ``` Return the PDF/X compliant version of the document. ### PDFXSaveFlags ```csharp SaveFlags Datalogics.PDFL.PDFXConvertResult.PDFXSaveFlags { get; set; } ``` Return the SaveFlags that must be used when saving the PDF/X compliant document. You *must* use these SaveFlags when saving the PDF/X document, or you risk breaking PDF/X compliance. --- # PDFXConvertType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PDFXConvertType **Namespace:** `Datalogics::PDFL` ## Description Specifies the PDF/X standard version to convert a document to. ## Values - `X1a = 0`: Convert to PDF/X-1a 2001 - `X3 = 1`: Convert to PDF/X-3 2003 - `X4 = 2`: Convert to PDF/X-4 2010 - `X6 = 3`: Convert to PDF/X-6 2020 --- # Performance Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/Performance **Namespace:** `Datalogics::PDFL` ## Description Specify the performance of the OCR engine in an abstract way. In Tesseract, for instance, this changes the OCREngineMode. ## Values - `Default = 0`: Use the engine's default performance mode. - `Faster = 1`: Favor speed over accuracy. - `MoreAccuracy = 2`: Favor accuracy over speed. - `BestAccuracy = 3`: Use the most accurate mode available, at the cost of speed. --- # PermissionFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PermissionFlags **Namespace:** `Datalogics::PDFL` ## Values - `None = 0`: The document has no security data. - `Open = 0x01`: The user can open and decrypt the document. - `Secure = 0x02`: The user can change the document's security settings. - `Print = 0x04`: The user can print the document. Page Setup access is unaffected by this permission, since that affects PDF Viewer's preferences - not the document's. In the Document Security dialog, this corresponds to the Printing entry. - `Edit = 0x08`: The user can edit the document more than adding or modifying text notes (see also EditNotes). In the Document Security dialog, this corresponds to the Changing the Document entry. - `Copy = 0x10`: The user can copy information from the document to the clipboard. In the document restrictions, this corresponds to the Content Copying or Extraction entry. - `EditNotes = 0x20`: The user can add, modify, and delete text notes (see also Edit). In the document restrictions, this corresponds to the Authoring Comments and Form Fields entry. - `SaveAs = 0x40`: The user can perform a Save As.... If both Edit and EditNotes are disallowed, Save will be disabled but Save As... will be enabled. The Save As... menu item is not necessarily disabled even if the user is not permitted to perform a Save As.... - `Ext = 0x80`: Extended permission for document operations beyond the base set. - `FillandSign = 0x100`: Overrides other Permissions bits. It allows the user to fill in or sign existing form or signature fields. - `Accessible = 0x200`: Overrides Copy to enable the Accessibility API. If a document is saved in Rev2 format (Acrobat 4.0 compatible), only the Copy bit is checked to determine the Accessibility API state. - `DocAssembly = 0x400`: Overrides various Edit bits and allows the following operations: page insert/delete/rotate and create bookmark and thumbnail. - `HighPrint = 0x800`: This bit is a supplement to Print. If it is clear (disabled) only low quality printing (Print As Image) is allowed. On UNIX platforms where Print As Image doesn't exist, printing is disabled. - `Owner = 0x8000`: The user is permitted to perform all operations, regardless of the permissions specified by the document. Unless this permission is set, the document's permissions will be reset to those in the document after a full save. - `FormSubmit = 0x10000`: This should be set if the user can submit forms outside of the browser. This bit is a supplement to FillandSign. - `FormSpawnTempl = 0x20000`: This should be set if the user can spawn template pages. This bit will allow page template spawning even if Edit and EditNotes are clear. - `All = -1`: All permissions granted, combining all individual permission flags. - `Settable = 60`: The OR of all operations that can be set by the user in the security restrictions (Print + Edit + Copy + EditNotes). - `User = -4`: All permissions. --- # PermissionRequestOperation Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PermissionRequestOperation **Namespace:** `Datalogics::PDFL` ## Values - `AllOperations = 1`: Check all operations. - `Create = 2`: Generic. - `Delete = 3`: Delete. - `Modify = 4`: Modify. - `Copy = 5`: Copy. - `Accessible = 6`: For accessibility use. - `Select = 7`: For document or page, selecting (not copying) text or graphics. - `Open = 8`: For document open. - `Secure = 9`: For the document: changing security settings. - `PrintHigh = 10`: For the document: regular printing. - `PrintLow = 11`: For the document: low quality printing. - `FillIn = 12`: Form fill-in, or sign the existing field. - `Rotate = 13`: Rotate. - `Crop = 14`: Crop. - `Summarize = 15`: For summarizing notes. - `Insert = 16`: Insert. - `Replace = 17`: For the page. - `Reorder = 18`: For the page. - `FullSave = 19`: For the document. - `Import = 20`: For the notes and image. - `Export = 21`: For the notes. ExportPS should check print. - `AnyOperation = 22`: Used for checking to see if any operation is allowed. - `UnknownOperation = 23`: Used for error checking. - `SubmitStandalone = 24`: Submit forms outside of the browser. - `SpawnTemplate = 25`: Allow the form to spawn template pages. - `Online = 26`: This should be always the last item For annotations and forms: enabling online functionality. - `SummaryView = 27`: For annotations: enabling a summary view of annotations in a PDF Viewer. - `BarcodePlaintext = 28`: For forms: enables form appearance to be rendered as a plain text barcode. --- # Point Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point ```csharp class Point : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Represents a discrete point or space in a PDF. A Point in a PDF document is in the right plane, relative to the origin being the lower left corner of the document. **Referenced by:** [`AxialShadingPattern`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/AxialShadingPattern.md), [`CurveTo`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CurveTo.md), [`CurveToV`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CurveToV.md), [`CurveToY`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CurveToY.md), [`InkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/InkAnnotation.md), [`LineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LineAnnotation.md), [`LineTo`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LineTo.md), [`LinkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LinkAnnotation.md), [`MoveTo`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/MoveTo.md), [`Path`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Path.md), [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md), [`PolyLineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolyLineAnnotation.md), [`PolygonAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolygonAnnotation.md), [`Quad`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md), [`RectSegment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RectSegment.md), [`Text`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Text.md) **Uses types:** [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md) ## Constructors ### Point ```csharp Datalogics.PDFL.Point.Point() ``` *constructor* Create a new point at the origin (0.0, 0.0). ### Point ```csharp Datalogics.PDFL.Point.Point(double nh, double nv) ``` *constructor* **Parameters** - `nh` (`double`): the horizontal coordinate - `nv` (`double`): the vertical coordinate Create a new point at the specified coordinates. ## Properties ### H ```csharp double Datalogics.PDFL.Point.H { get; set; } ``` The horizontal coordinate of the point. ### V ```csharp double Datalogics.PDFL.Point.V { get; set; } ``` The vertical coordinate of the point. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Point.Dispose() ``` **Returns:** `void` ### DistanceTransform ```csharp Point Datalogics.PDFL.Point.DistanceTransform(Matrix arg0) ``` **Parameters** - `arg0` ([`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md)) **Returns:** [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md) A new Point representing the distance-transformed coordinates. Distance Transform the Point by the values in the Matrix parameter. Applies a transformation without any translation component to this Point. This is useful for transforming distances or vectors rather than positions. ### Equals ```csharp override bool Datalogics.PDFL.Point.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.Point.ToString() ``` **Returns:** `override string` A string in the format "( h,v )". Return a string representation of the Point. ### Transform ```csharp Point Datalogics.PDFL.Point.Transform(Matrix arg0) ``` **Parameters** - `arg0` ([`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md)) **Returns:** [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md) A new Point representing the transformed coordinates. Transform the Point by the values in the Matrix parameter. Applies a full affine transformation (including translation) to this Point using the given Matrix. --- # PolygonAnnotation Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolygonAnnotation ```csharp class PolygonAnnotation : Annotation ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md) ## Description A polygon is a closed plane figure bounded by a finite number of line segments. In this case the polygon is created as an annotation added to a PDF file. **Uses types:** [`AnnotationFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AnnotationFlags.md), [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### PolygonAnnotation ```csharp Datalogics.PDFL.PolygonAnnotation.PolygonAnnotation(Page page, Rect initialRect, System.Collections.Generic.IList< Point > vertices) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the PolygonAnnotation is added. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the annotation's bounds, specified in user space coordinates. - `vertices` ([`System.Collections.Generic.IList< Point >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): A list of points representing the coordinates of the vertices, specified in user space. Create a new PolygonAnnotation at the end of a page's annotation array. To create a PolygonAnnotation and place it elsewhere in the page's annotation array, use the version of the constructor that takes an array position. ### PolygonAnnotation ```csharp Datalogics.PDFL.PolygonAnnotation.PolygonAnnotation(Page page, Rect initialRect, System.Collections.Generic.IList< Point > vertices, int addAfter) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the annotation is added. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the annotation's bounds, specified in user space coordinates. - `vertices` ([`System.Collections.Generic.IList< Point >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): A list of points representing the coordinates of the vertices, specified in user space. - `addAfter` (`int`): Where to add the annotation in the page's annotation array. To add the annotation to the end of the array, pass a value of -2 or use the alternate version of this constructor that does not take an index (this is generally what you should do unless you have a need to place the annotation at a special location in the array). Passing a value of -1 adds the annotation to the beginning of the array. Passing other negative values produces undefined results. Create a new PolygonAnnotation at a specific index in the page's annotation array. ## Properties ### AnnotationFeatureLevel ```csharp double Datalogics.PDFL.Annotation.AnnotationFeatureLevel { get; set; } ``` The minimum PDF version necessary to support the features used in this annotation. ### BorderStyle ```csharp string Datalogics.PDFL.PolygonAnnotation.BorderStyle { get; set; } ``` The border style. Can be one of: • S - Solid • D - Dashed. The dash pattern is specified as an array (see DashPattern) • B - Beveled • I - Inset • U - Underline Other border styles may be defined in the future. Default is "S" ### BorderStyleDashPattern ```csharp System.Collections.Generic.IList Datalogics.PDFL.PolygonAnnotation.BorderStyleDashPattern { get; set; } ``` An array defining a pattern of dashes and gaps to be used in drawing a dashed border (border style D). The dash array is a series of numbers that specify the lengths of alternating dashes and gaps. Lengths must be nonnegative, and are expressed in user space units. Default value is [3] ### BorderStyleWidth ```csharp double Datalogics.PDFL.PolygonAnnotation.BorderStyleWidth { get; set; } ``` The border width in points. If this value is 0, no border is drawn. The default is 1.0. ### Color ```csharp Color Datalogics.PDFL.Annotation.Color { get; set; } ``` The color of the annotation. ### Contents ```csharp string Datalogics.PDFL.Annotation.Contents { get; set; } ``` The text contents of the annotation. 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. ### Flags ```csharp AnnotationFlags Datalogics.PDFL.Annotation.Flags { get; set; } ``` The flags for the annotation. ### InteriorColor ```csharp Color Datalogics.PDFL.Annotation.InteriorColor { get; set; } ``` The interior color with which to fill the annotation's rectangle or circle. The color of the border itself can be retrieved from Annotation.Color. ### NormalAppearance ```csharp Form Datalogics.PDFL.Annotation.NormalAppearance { get; set; } ``` The normal appearance of the annotation, represented as a Form XObject. ### Opacity ```csharp double Datalogics.PDFL.Annotation.Opacity { get; set; } ``` The constant opacity value used in painting a Markup annotation. Opacity is a range from 0.0 (fully transparent) to 1.0 (fully opaque). ### OptionalContentMembershipDict ```csharp OptionalContentMembershipDict Datalogics.PDFL.Annotation.OptionalContentMembershipDict { get; set; } ``` The OptionalContentMembershipDict property for this Annotation. Setting this property will attach the Annotation to an OptionalContentMembershipDict; it will then be associated with the OptionalContentGroups and be subject to the VisibilityPolicy and VisibilityExpression of that MembershipDict. By setting this property to null, the Annotation is detached from any OptionalContentMembershipDict. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Annotation.PDFDict { get; } ``` The underlying PDF dictionary for this annotation. Retrieves the PDFDict representation of this annotation object. ### Rect ```csharp Rect Datalogics.PDFL.Annotation.Rect { get; set; } ``` The size and location of the annotation on its page. ### Subtype ```csharp string Datalogics.PDFL.Annotation.Subtype { get; } ``` The annotation's subtype. ### Title ```csharp string Datalogics.PDFL.Annotation.Title { get; set; } ``` The title of the annotation. ### Vertices ```csharp System.Collections.Generic.IList Datalogics.PDFL.PolygonAnnotation.Vertices { get; set; } ``` The vertices that define the polygon annotation, in user space. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Annotation.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Annotation.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### GenerateAppearance ```csharp override Form Datalogics.PDFL.PolygonAnnotation.GenerateAppearance() ``` **Returns:** `override Form` A new Form representing the visual appearance of the polygon, or NULL if the appearance could not be generated (for example, due to an invalid border style). Generate a new appearance stream with the current annotation properties. The resulting Form can then be used to set the annotation's appearance, such as by calling SetNormalAppearance. ### HasRichTextData ```csharp bool Datalogics.PDFL.Annotation.HasRichTextData() ``` **Returns:** `bool` true if the annotation contains Rich Text String content. Checks the annotation for Rich Text String content (PDFReference 1.7 Section 8.6.2). Annotations that contain Rich Text String content and do not have a normal appearance set will not be visible when rendering the page. ### IsCurrentlyVisible ```csharp bool Datalogics.PDFL.Annotation.IsCurrentlyVisible(OptionalContentContext occ) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which to check visibility. **Returns:** `bool` true if the annotation is currently visible. Tests whether an annotation is visible in a given optional content context, considering the current ON-OFF states of the optional-content groups in the optional-content dictionary (OCMD) and the dictionary's visibility policy. If the annotation occurs more than once within the content, this method only checks the visibility of the first occurrence of the annotation. This method determines visibility without considering the visbility of the Content object that the annotation belongs to. To determine the visibility of an annotation while taking the Content's visibility into consideration, use the alternate version of this method. ### ToString ```csharp override string Datalogics.PDFL.Annotation.ToString() ``` **Returns:** `override string` A string describing this annotation, including its type and rectangle. Returns a string representation of this annotation. --- # PolyLineAnnotation Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolyLineAnnotation ```csharp class PolyLineAnnotation : Annotation ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md) ## Description A finite number of line segments in a PDF added as an annotation. A polyline is also called a polygonal chain or piecewise linear curve. It represents a finite number of line segments where the first and last vertex are not connected. In this case, the polyline is added as an annotation to a PDF file. **Uses types:** [`AnnotationFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AnnotationFlags.md), [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`LineEndingStyle`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/LineEndingStyle.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### PolyLineAnnotation ```csharp Datalogics.PDFL.PolyLineAnnotation.PolyLineAnnotation(Page page, Rect initialRect, System.Collections.Generic.IList< Point > vertices) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the PolyLineAnnotation is added. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the annotation's bounds, specified in user space coordinates. - `vertices` ([`System.Collections.Generic.IList< Point >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): A list of points representing the coordinates of the vertices, specified in user space. Create a new PolyLineAnnotation at the end of a page's annotation array. To create a PolyLineAnnotation and place it elsewhere in the page's annotation array, use the version of the constructor that takes an array position. ### PolyLineAnnotation ```csharp Datalogics.PDFL.PolyLineAnnotation.PolyLineAnnotation(Page page, Rect initialRect, System.Collections.Generic.IList< Point > vertices, int addAfter) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the annotation is added. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the annotation's bounds, specified in user space coordinates. - `vertices` ([`System.Collections.Generic.IList< Point >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): A list of points representing the coordinates of the vertices, specified in user space. - `addAfter` (`int`): Where to add the annotation in the page's annotation array. To add the annotation to the end of the array, pass a value of -2 or use the alternate version of this constructor that does not take an index (this is generally what you should do unless you have a need to place the annotation at a special location in the array). Passing a value of -1 adds the annotation to the beginning of the array. Passing other negative values produces undefined results. Create a new PolyLineAnnotation at a specific index in the page's annotation array. ## Properties ### AnnotationFeatureLevel ```csharp double Datalogics.PDFL.Annotation.AnnotationFeatureLevel { get; set; } ``` The minimum PDF version necessary to support the features used in this annotation. ### BorderStyle ```csharp string Datalogics.PDFL.PolyLineAnnotation.BorderStyle { get; set; } ``` The border style. Can be one of: • S - Solid • D - Dashed. The dash pattern is specified as an array (see DashPattern) • B - Beveled • I - Inset • U - Underline Other border styles may be defined in the future. Default is "S" ### BorderStyleDashPattern ```csharp System.Collections.Generic.IList Datalogics.PDFL.PolyLineAnnotation.BorderStyleDashPattern { get; set; } ``` An array defining a pattern of dashes and gaps to be used in drawing a dashed border (border style D). The dash array is a series of numbers that specify the lengths of alternating dashes and gaps. Lengths must be nonnegative, and are expressed in user space units. Default value is [3] ### BorderStyleWidth ```csharp double Datalogics.PDFL.PolyLineAnnotation.BorderStyleWidth { get; set; } ``` The border width in points. If this value is 0, no border is drawn. The default is 1.0. ### Color ```csharp Color Datalogics.PDFL.Annotation.Color { get; set; } ``` The color of the annotation. ### Contents ```csharp string Datalogics.PDFL.Annotation.Contents { get; set; } ``` The text contents of the annotation. 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. ### EndPointEndingStyle ```csharp LineEndingStyle Datalogics.PDFL.PolyLineAnnotation.EndPointEndingStyle { get; set; } ``` The line ending style applied to the last vertex of the polyline. ### Flags ```csharp AnnotationFlags Datalogics.PDFL.Annotation.Flags { get; set; } ``` The flags for the annotation. ### InteriorColor ```csharp Color Datalogics.PDFL.Annotation.InteriorColor { get; set; } ``` The interior color with which to fill the annotation's rectangle or circle. The color of the border itself can be retrieved from Annotation.Color. ### NormalAppearance ```csharp Form Datalogics.PDFL.Annotation.NormalAppearance { get; set; } ``` The normal appearance of the annotation, represented as a Form XObject. ### Opacity ```csharp double Datalogics.PDFL.Annotation.Opacity { get; set; } ``` The constant opacity value used in painting a Markup annotation. Opacity is a range from 0.0 (fully transparent) to 1.0 (fully opaque). ### OptionalContentMembershipDict ```csharp OptionalContentMembershipDict Datalogics.PDFL.Annotation.OptionalContentMembershipDict { get; set; } ``` The OptionalContentMembershipDict property for this Annotation. Setting this property will attach the Annotation to an OptionalContentMembershipDict; it will then be associated with the OptionalContentGroups and be subject to the VisibilityPolicy and VisibilityExpression of that MembershipDict. By setting this property to null, the Annotation is detached from any OptionalContentMembershipDict. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Annotation.PDFDict { get; } ``` The underlying PDF dictionary for this annotation. Retrieves the PDFDict representation of this annotation object. ### Rect ```csharp Rect Datalogics.PDFL.Annotation.Rect { get; set; } ``` The size and location of the annotation on its page. ### StartPointEndingStyle ```csharp LineEndingStyle Datalogics.PDFL.PolyLineAnnotation.StartPointEndingStyle { get; set; } ``` The line ending style applied to the first vertex of the polyline. ### Subtype ```csharp string Datalogics.PDFL.Annotation.Subtype { get; } ``` The annotation's subtype. ### Title ```csharp string Datalogics.PDFL.Annotation.Title { get; set; } ``` The title of the annotation. ### Vertices ```csharp System.Collections.Generic.IList Datalogics.PDFL.PolyLineAnnotation.Vertices { get; set; } ``` ## Methods ### Dispose ```csharp void Datalogics.PDFL.Annotation.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Annotation.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### GenerateAppearance ```csharp override Form Datalogics.PDFL.PolyLineAnnotation.GenerateAppearance() ``` **Returns:** `override Form` A new Form representing the annotation's appearance, or NULL if the graphic state could not be configured (for example, an invalid dash array). Generate a new appearance stream with the current annotation properties. Builds the visual representation of the polyline including its vertices, stroke color, interior color, border style, and line ending styles. The annotation's Rect is updated to match the bounding box of the content. ### HasRichTextData ```csharp bool Datalogics.PDFL.Annotation.HasRichTextData() ``` **Returns:** `bool` true if the annotation contains Rich Text String content. Checks the annotation for Rich Text String content (PDFReference 1.7 Section 8.6.2). Annotations that contain Rich Text String content and do not have a normal appearance set will not be visible when rendering the page. ### IsCurrentlyVisible ```csharp bool Datalogics.PDFL.Annotation.IsCurrentlyVisible(OptionalContentContext occ) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which to check visibility. **Returns:** `bool` true if the annotation is currently visible. Tests whether an annotation is visible in a given optional content context, considering the current ON-OFF states of the optional-content groups in the optional-content dictionary (OCMD) and the dictionary's visibility policy. If the annotation occurs more than once within the content, this method only checks the visibility of the first occurrence of the annotation. This method determines visibility without considering the visbility of the Content object that the annotation belongs to. To determine the visibility of an annotation while taking the Content's visibility into consideration, use the alternate version of this method. ### ToString ```csharp override string Datalogics.PDFL.Annotation.ToString() ``` **Returns:** `override string` A string describing this annotation, including its type and rectangle. Returns a string representation of this annotation. --- # PostScript Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PostScript ```csharp class PostScript : Element ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) ## Description An XObject stream with the subtype PostScript. A PostScript XObject is an XObject stream with the subtype entry of PostScript. The XObject contains a fragment of code expressed in the PostScript language. PostScript External Objects are not recommended. **Uses types:** [`Clip`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Clip.md), [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md), [`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md), [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`PDFStream`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFStream.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### PostScript ```csharp Datalogics.PDFL.PostScript.PostScript(System.IO.Stream stream) ``` *constructor* **Parameters** - `stream` (`System.IO.Stream`): System.IO.Stream stream that contains PostScript code General constructor ## Properties ### BoundingBox ```csharp Rect Datalogics.PDFL.Element.BoundingBox { get; } ``` The bounding box for this element. The bounding box is a rectangle that is guaranteed to encompass the element, but it is not guaranteed to be the smallest box that could contain the element. For example, if the element is a Path that contains an arc, the bounding box encompasses the bezier control points, and not just the curve itself. ### Clip ```csharp Clip Datalogics.PDFL.Element.Clip { get; set; } ``` Gets the current Clip for an Element. ### Matrix ```csharp Matrix Datalogics.PDFL.Element.Matrix { get; set; } ``` The transformation matrix for the element. ### Stream ```csharp PDFStream Datalogics.PDFL.PostScript.Stream { get; } ``` The PDFStream containing the PostScript code for this XObject. ## Methods ### Clone ```csharp Element Datalogics.PDFL.Element.Clone() ``` **Returns:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) The copied element. Makes a copy of the element. Make a copy of an element to obtain a new element that has a distinct set of attributes. Note: TextRun objects may not be cloned. ### Clone ```csharp Element Datalogics.PDFL.Element.Clone(ElementCloneFlags cloneFlags) ``` **Parameters** - `cloneFlags` ([`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md)): Flags that modify the cloning operation. **Returns:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) The copied element. Makes a copy of the element. Make a copy of an element to obtain a new element that has a distinct set of attributes. Note: TextRun objects may not be cloned. ### Dispose ```csharp void Datalogics.PDFL.Element.Dispose() ``` **Returns:** `void` ### Rotate ```csharp void Datalogics.PDFL.Element.Rotate(double theta) ``` **Parameters** - `theta` (`double`): The rotation angle in degrees. **Returns:** `void` Rotate an element by theta degrees counterclockwise using the matrix [ cos T sin T -sin T cos T 0 0 ]. ### Scale ```csharp void Datalogics.PDFL.Element.Scale(double sx, double sy) ``` **Parameters** - `sx` (`double`): The horizontal scale factor. - `sy` (`double`): The vertical scale factor. **Returns:** `void` Scale an element by (sx,sy) units using the matrix [ sx 0 0 sy 0 0 ]. ### Translate ```csharp void Datalogics.PDFL.Element.Translate(double tx, double ty) ``` **Parameters** - `tx` (`double`): The horizontal translation distance in user space units. - `ty` (`double`): The vertical translation distance in user space units. **Returns:** `void` Translate an element by (tx,ty) units using the matrix [ 1 0 0 1 tx ty ]. --- # PostScriptCalculatorFunction Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PostScriptCalculatorFunction ```csharp class PostScriptCalculatorFunction : Function ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md) ## Description A function represented as a stream containing code written in a small subset of the PostScript language. **Uses types:** [`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md), [`PDFStream`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFStream.md) ## Constructors ### PostScriptCalculatorFunction ```csharp Datalogics.PDFL.PostScriptCalculatorFunction.PostScriptCalculatorFunction(System.Collections.Generic.IList< System.Double > domain, System.Collections.Generic.IList< System.Double > range, string code) ``` *constructor* **Parameters** - `domain` (`System.Collections.Generic.IList< System.Double >`): an array of 2 * m numbers, where m is the number of input values - `range` (`System.Collections.Generic.IList< System.Double >`): an array of 2 * n numbers, where n is the number of output values - `code` (`string`): the code of the function, written in a subset of the PostScript language Create PostScript calculator function, represented as a stream containing code written in a small subset of the PostScript language. ## Properties ### Code ```csharp string Datalogics.PDFL.PostScriptCalculatorFunction.Code { get; } ``` The code of the function, written in a subset of the PostScript language. The code defines how input values are transformed into output values. ### Default ```csharp static Function Datalogics.PDFL.Function.Default { get; } ``` *static* Gets the Default named function. A Function representing the Default named function. ### Domain ```csharp System.Collections.Generic.IList Datalogics.PDFL.Function.Domain { get; set; } ``` The domain of the function. Contains 2 * m elements, where m is the number of inputs to the function. Each successive pair of elements gives the minimum and maximum values for one of the inputs. Input values to the function are clamped to these minimum and maximum values. ### Identity ```csharp static Function Datalogics.PDFL.Function.Identity { get; } ``` *static* Gets the Identity named function. A Function representing the Identity named function, which returns its input values unchanged. ### NInputs ```csharp int Datalogics.PDFL.Function.NInputs { get; } ``` The number of inputs to the function. ### NOutputs ```csharp int Datalogics.PDFL.Function.NOutputs { get; } ``` The number of outputs from the function. ### Range ```csharp System.Collections.Generic.IList Datalogics.PDFL.Function.Range { get; set; } ``` The range of the function. Contains 2 * n elements, where n is the number of outputs from the function. Each successive pair of elements gives the minimum and maximum values for one of the outputs. Output values from the function are clamped to these minimum and maximum values. ### Stream ```csharp PDFStream Datalogics.PDFL.PostScriptCalculatorFunction.Stream { get; } ``` The underlying PDF stream for this PostScriptCalculatorFunction. The stream contains the PostScript code that defines the function. ## Methods ### Apply ```csharp virtual System.Collections.Generic.IList< System.Double > Datalogics.PDFL.Function.Apply(System.Collections.Generic.IList< System.Double > args) ``` **Parameters** - `args` (`System.Collections.Generic.IList< System.Double >`): input values for the function. The number of input values must agree with the number of inputs the function takes. **Returns:** `System.Collections.Generic.IList< System.Double >` a list of the result values from the function Apply the function to supplied input values ### Dispose ```csharp void Datalogics.PDFL.Function.Dispose() ``` **Returns:** `void` ### ToString ```csharp override string Datalogics.PDFL.PostScriptCalculatorFunction.ToString() ``` **Returns:** `override string` A string representation of the PostScriptCalculatorFunction, including the number of inputs and outputs, domain, range, and the PostScript code. A string value describing the function. ### operator!= ```csharp static bool Datalogics.PDFL.Function.operator!=(Function a, Function b) ``` *static* **Parameters** - `a` ([`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): The first Function to compare. - `b` ([`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): The second Function to compare. **Returns:** `bool` true if the two Functions are not equal; otherwise, false. Tests two Function objects for inequality. ### operator== ```csharp static bool Datalogics.PDFL.Function.operator==(Function a, Function b) ``` *static* **Parameters** - `a` ([`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): The first Function to compare. - `b` ([`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): The second Function to compare. **Returns:** `bool` true if the two Functions are equal; otherwise, false. Tests two Function objects for equality. --- # PrintCancelProc Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintCancelProc ```csharp class PrintCancelProc : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Print cancellation callback function, a class used to cancel print operations. A PrintCancelProc() is typically passed to some method that takes a long time to complete. At frequent intervals, the method calls the PrintCancelProc(). If the PrintCancelProc() returns true, the method cancels its operation; if the PrintCancelProc() returns false, the method continues. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) ## Constructors ### PrintCancelProc ```csharp Datalogics.PDFL.PrintCancelProc.PrintCancelProc() ``` *constructor* Print cancellation callback function, a class used to cancel print operations. A PrintCancelProc() is typically passed to some method that takes a long time to complete. At frequent intervals, the method calls the PrintCancelProc(). If the PrintCancelProc() returns true, the method cancels its operation; if the PrintCancelProc() returns false, the method continues. ## Methods ### Call ```csharp virtual bool Datalogics.PDFL.PrintCancelProc.Call() ``` **Returns:** `bool` ### Dispose ```csharp void Datalogics.PDFL.PrintCancelProc.Dispose() ``` **Returns:** `void` --- # PrintParams Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintParams ```csharp class PrintParams : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Print settings, primarily used for PostScript printers or output. **Referenced by:** [`PrintUserParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintUserParams.md) **Uses types:** [`Duplex`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/Duplex.md), [`FarEastFont`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/FarEastFont.md), [`Inclusion`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/Inclusion.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OutputType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/OutputType.md), [`PageMarkFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageMarkFlags.md), [`PageRange`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageRange.md), [`PageTilingMode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageTilingMode.md), [`PrintWhat`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PrintWhat.md), [`PrintWhatAnnotFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PrintWhatAnnotFlags.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### PrintParams ```csharp Datalogics.PDFL.PrintParams.PrintParams() ``` *constructor* ## Properties ### ApplyOCGPrintOverrides ```csharp bool Datalogics.PDFL.PrintParams.ApplyOCGPrintOverrides { get; set; } ``` When true, apply print-specific visibility state settings from the optional-content group. ### BinaryOK ```csharp bool Datalogics.PDFL.PrintParams.BinaryOK { get; set; } ``` true if binary data is permitted in the PostScript file, false otherwise. It is overridden by the printer's "Output Protocol" device settings. The default value is true. ### BitmapResolution ```csharp uint Datalogics.PDFL.PrintParams.BitmapResolution { get; set; } ``` DPI for bitmaps. The default is 300. This will only work when you set useFullResolutionJP2KData to false; it should not be less than 50. ### BoundingBox ```csharp Rect Datalogics.PDFL.PrintParams.BoundingBox { get; set; } ``` ### BrokenCRDs ```csharp bool Datalogics.PDFL.PrintParams.BrokenCRDs { get; set; } ``` If true, do not set rendering intent in PostScript stream due to broken non-default CRDs. This is not honored anymore: its value is always false. ### CenterCropBox ```csharp bool Datalogics.PDFL.PrintParams.CenterCropBox { get; set; } ``` true if CropBox output is centered on the page when the CropBox < MediaBox, false otherwise. The default value is true. ### DisableFlattening ```csharp bool Datalogics.PDFL.PrintParams.DisableFlattening { get; set; } ``` Disable flattening of the PDF file; transparency data will be ignored. Also note the preprocessor define below. ### DoOPP ```csharp bool Datalogics.PDFL.PrintParams.DoOPP { get; set; } ``` Do the overprint preview operation. ### DoProofing ```csharp bool Datalogics.PDFL.PrintParams.DoProofing { get; set; } ``` When true, print using proofing settings. ### DoTiling ```csharp PageTilingMode Datalogics.PDFL.PrintParams.DoTiling { get; set; } ``` Determines whether to tile none, all, or only large pages. ### Duplex ```csharp Duplex Datalogics.PDFL.PrintParams.Duplex { get; set; } ``` Sets the duplex mode if the device supports duplex printing. The default value is kPDDuplexOff. ### EmitBG ```csharp bool Datalogics.PDFL.PrintParams.EmitBG { get; set; } ``` Emit black generation. The default is true. ### EmitColorSeps ```csharp bool Datalogics.PDFL.PrintParams.EmitColorSeps { get; set; } ``` Emit images for Level-1 separations. The default value is false. This will be honored only when printing to a printer. ### EmitDeviceExtGState ```csharp bool Datalogics.PDFL.PrintParams.EmitDeviceExtGState { get; set; } ``` When emitting the extended graphics state, if this flag is true, include the device-dependent parameters (overprint, black generation, undercolor removal, transfer, halftone, halftone phase, smoothness, flatness, rendering intent) in addition to the device-independent parameters (font, line width, line cap, line join, miter limit, dash pattern). If this flag is false, only the device-independent parameters will be emitted. This flag overrides emitHalftones; if this is false, then halftones are not emitted. The default is true. ### EmitFlatness ```csharp bool Datalogics.PDFL.PrintParams.EmitFlatness { get; set; } ``` Honors the flatness settings over gstate flatness. ### EmitHalftones ```csharp bool Datalogics.PDFL.PrintParams.EmitHalftones { get; set; } ``` Preserve any halftone screening in the PDF file. The default value is false. ### EmitInRipSeps ```csharp bool Datalogics.PDFL.PrintParams.EmitInRipSeps { get; set; } ``` When true, it requests that separations, one sheet per ink, be generated in the RIP (printer). ### EmitPS ```csharp bool Datalogics.PDFL.PrintParams.EmitPS { get; set; } ``` If true, emit a PostScript file. The default value is true. ### EmitPageClip ```csharp bool Datalogics.PDFL.PrintParams.EmitPageClip { get; set; } ``` Emit page clip. The default is true. ### EmitPageRotation ```csharp bool Datalogics.PDFL.PrintParams.EmitPageRotation { get; set; } ``` Emit a concat at the beginning of each page so that the page is properly rotated. Used when emitting EPS. The default value is false. ### EmitRawData ```csharp bool Datalogics.PDFL.PrintParams.EmitRawData { get; set; } ``` true if adding no unnecessary filters when emitting image data, false otherwise. The default value is false. ### EmitSeparableImagesOnly ```csharp bool Datalogics.PDFL.PrintParams.EmitSeparableImagesOnly { get; set; } ``` If emitting EPS, include only CMYK and gray images. ### EmitTTFontsFirst ```csharp bool Datalogics.PDFL.PrintParams.EmitTTFontsFirst { get; set; } ``` Emit TrueType fonts before any other fonts. The default value is false. ### EmitTransfer ```csharp bool Datalogics.PDFL.PrintParams.EmitTransfer { get; set; } ``` Emit transfer. The default is true. ### EmitUCR ```csharp bool Datalogics.PDFL.PrintParams.EmitUCR { get; set; } ``` Emit undercolor removal. The default is true. ### ExpandToFit ```csharp bool Datalogics.PDFL.PrintParams.ExpandToFit { get; set; } ``` true if small pages are to be scaled up to fit the printer page size, false, otherwise. It overrides the scale. The default value is true. ### FarEastFontOpt ```csharp FarEastFont Datalogics.PDFL.PrintParams.FarEastFontOpt { get; set; } ``` GDI to PS or download CJK fonts PDPDFarEastFont_Print_As_Image will not be honored. ### FlattenInfoExternalDPI ```csharp float Datalogics.PDFL.PrintParams.FlattenInfoExternalDPI { get; set; } ``` Get the resolution for flattening the edges of atomic regions. ExternalDPI for flattening defaults to 144 (72x2). ### GradientResolution ```csharp uint Datalogics.PDFL.PrintParams.GradientResolution { get; set; } ``` DPI for gradients interior to the object (not edges). It can generally be lower than the bitmapResolution. The default is 150. ### HostBasedCM ```csharp bool Datalogics.PDFL.PrintParams.HostBasedCM { get; set; } ``` Do hostBased color management using the destination profile. The default is false, which means doing CSA generation for profiles instead of converting all colors on the host. ### IncBaseFonts ```csharp Inclusion Datalogics.PDFL.PrintParams.IncBaseFonts { get; set; } ``` Embed the base fonts. The default value is kIncludeOncePerDoc. ### IncCIDFonts ```csharp Inclusion Datalogics.PDFL.PrintParams.IncCIDFonts { get; set; } ``` Embed CID fonts. The default value is kIncludeNever. ### IncEmbeddedFonts ```csharp Inclusion Datalogics.PDFL.PrintParams.IncEmbeddedFonts { get; set; } ``` Embed fonts that are embedded in the PDF file. This overrides the incType1Fonts, incTrueTypeFonts, and incCIDFonts fields. The default value is kIncludeWhenNeeded. ### IncOtherResources ```csharp Inclusion Datalogics.PDFL.PrintParams.IncOtherResources { get; set; } ``` Include all other types of resources in the file. The default value is kIncludeByRange. ### IncProcsets ```csharp Inclusion Datalogics.PDFL.PrintParams.IncProcsets { get; set; } ``` Include Procsets in the file. The default value is kIncludeOncePerDoc. This is not honored anymore: its value is always false. Procsets are always emitted at the document level. ### IncTrueTypeFonts ```csharp Inclusion Datalogics.PDFL.PrintParams.IncTrueTypeFonts { get; set; } ``` Embed TrueType fonts. The default value is kIncludeNever. ### IncType1Fonts ```csharp Inclusion Datalogics.PDFL.PrintParams.IncType1Fonts { get; set; } ``` Embed Type 1 fonts. The default value is kIncludeNever. ### InkBlack ```csharp bool Datalogics.PDFL.PrintParams.InkBlack { get; set; } ``` Proofing settings: simulate ink black. ### LastHeight ```csharp int Datalogics.PDFL.PrintParams.LastHeight { get; set; } ``` Used when setPageSize is true to prevent unneeded setpagedevice calls. ### LastWidth ```csharp int Datalogics.PDFL.PrintParams.LastWidth { get; set; } ``` Used when setPageSize is true to prevent unneeded setpagedevice calls. ### LineWidth ```csharp float Datalogics.PDFL.PrintParams.LineWidth { get; set; } ``` The line weight to use for printer marks. ### MacQDPrinter ```csharp bool Datalogics.PDFL.PrintParams.MacQDPrinter { get; set; } ``` true if the printer is a Mac QuickDraw printer, false otherwise. ### MarkStyle ```csharp int Datalogics.PDFL.PrintParams.MarkStyle { get; set; } ``` Specify the style to use for page marks. The PDPrintMarkStyles enum contains possible styles. It applies to print separations. ### Mirrorprint ```csharp int Datalogics.PDFL.PrintParams.Mirrorprint { get; set; } ``` One of the following constants: kPDPrintFlipNone = 0x01 kPDPrintFlipX = 0x02 kPDPrintFlipY = 0x04 kPDPrintFlipXY = 0x08 Mirroring is done in the PostScript output stream. ### Negative ```csharp bool Datalogics.PDFL.PrintParams.Negative { get; set; } ``` When true, invert the plate. ### NumCollatedCopies ```csharp uint Datalogics.PDFL.PrintParams.NumCollatedCopies { get; set; } ``` Enables collation for the viewer. ### OptimizeForSpeed ```csharp bool Datalogics.PDFL.PrintParams.OptimizeForSpeed { get; set; } ``` If true, do it fast; false means PostScript code must be page-independent. If it is set to true, font downloads are forced from kIncludeOnEveryPage to kIncludeOncePerDoc. The default is true. ### OptionalContentContext ```csharp OptionalContentContext Datalogics.PDFL.PrintParams.OptionalContentContext { get; set; } ``` An optional-content context that determines what contents are visible. null uses the document's optional-content context. This context is copied and the copy is used in drawing. This allows a client to change its copy of the context without raising an exception. ### OutputType ```csharp OutputType Datalogics.PDFL.PrintParams.OutputType { get; set; } ``` Print PostScript or EPS with or without a preview. EPS preview generation is not available on UNIX. ### PageRanges ```csharp System.Collections.Generic.IList Datalogics.PDFL.PrintParams.PageRanges { get; set; } ``` Get the page ranges for printing. ### PaperWhite ```csharp bool Datalogics.PDFL.PrintParams.PaperWhite { get; set; } ``` Proofing settings: simulate paper white. ### PrintWhat ```csharp PrintWhat Datalogics.PDFL.PrintParams.PrintWhat { get; set; } ``` Print the document, the document and comments, or document form fields only. ### PrintWhatAnnot ```csharp PrintWhatAnnotFlags Datalogics.PDFL.PrintParams.PrintWhatAnnot { get; set; } ``` Annotation flags which modify PDPrintWhat to enable Pro product behavior. ### PsLevel ```csharp int Datalogics.PDFL.PrintParams.PsLevel { get; set; } ``` PostScript level: 1, 2, or 3. The default value is 3. ### Reverse ```csharp bool Datalogics.PDFL.PrintParams.Reverse { get; set; } ``` If set to true, reverse the order of page output. ### Rotate ```csharp bool Datalogics.PDFL.PrintParams.Rotate { get; set; } ``` Enable the auto-rotating behavior from past versions of PDFL. ### RotateAndCenter ```csharp bool Datalogics.PDFL.PrintParams.RotateAndCenter { get; set; } ``` true if the page is to be rotated to fit the printer's orientation and centered in the printer's page size; false, otherwise. The default value is true. Rotation and centering (true) only occur, however, if the page contents are too wide to fit on a narrow page (or vice versa) and the page contents are less than an inch smaller than the target page in one direction. ### SaveVM ```csharp bool Datalogics.PDFL.PrintParams.SaveVM { get; set; } ``` true means try to save VM when printing to PostScript. The default is true. ### Scale ```csharp float Datalogics.PDFL.PrintParams.Scale { get; set; } ``` The document-wide scale factor. 100.0 = full size. The default value is 100. ### SetPageSize ```csharp bool Datalogics.PDFL.PrintParams.SetPageSize { get; set; } ``` (PostScript level 2 only) Set the page size on each page. Use the media box for outputting to PostScript files, use the crop box for EPS files. Default is false. ### ShrinkToFit ```csharp bool Datalogics.PDFL.PrintParams.ShrinkToFit { get; set; } ``` true if the page is scaled to fit the printer page size, false, otherwise. This field overrides the scale. The default value is true. ### SuppressCJKSubstitution ```csharp bool Datalogics.PDFL.PrintParams.SuppressCJKSubstitution { get; set; } ``` If true, do not do CJK substitution on the printer. This will work only when farEastFontOpt is PDPDFarEastFont_Download_None. ### SuppressCSA ```csharp bool Datalogics.PDFL.PrintParams.SuppressCSA { get; set; } ``` Do not emit CSAs for 4-component (CMYK) colors. This will take precedence over the hostbasedCM settings. ### SuppressOPPWhenNoSpots ```csharp int Datalogics.PDFL.PrintParams.SuppressOPPWhenNoSpots { get; set; } ``` When true, suppress OPP for pages that do not contain spot colors ### TTasCIDT2 ```csharp bool Datalogics.PDFL.PrintParams.TTasCIDT2 { get; set; } ``` When this is set, emit TrueType fonts as CIDType2 instead of as CIDFontType0. ### TTasT42 ```csharp bool Datalogics.PDFL.PrintParams.TTasT42 { get; set; } ``` If including TrueType fonts, convert to Type 42 fonts instead of Type 1 fonts. The default value is false. ### TransparencyQuality ```csharp uint Datalogics.PDFL.PrintParams.TransparencyQuality { get; set; } ``` The transparency flattening quality. The range is 0-100. Lower values flatten faster. Higher values provide better quality. The default is 80, which usually provides good quality at a reasonable speed. ### TrapType ```csharp int Datalogics.PDFL.PrintParams.TrapType { get; set; } ``` The trap type. kPDPrintTrapNone = 0x01 kPDPrintTrapOnHost = 0x02 is NOT SUPPORTED in Acrobat 7 kPDPrintTrapInRIP = 0x04 ### UseExecForm ```csharp bool Datalogics.PDFL.PrintParams.UseExecForm { get; set; } ``` When true, emit execform calls when emitting Form XObjects. ### UseFontAliasNames ```csharp bool Datalogics.PDFL.PrintParams.UseFontAliasNames { get; set; } ``` Used when printing with system fonts. The default value is false. ### UseFullResolutionJP2KData ```csharp bool Datalogics.PDFL.PrintParams.UseFullResolutionJP2KData { get; set; } ``` Determines whether to use the maximum available JPEG2000 resolution. ### UseMaxVM ```csharp bool Datalogics.PDFL.PrintParams.UseMaxVM { get; set; } ``` If true, store all possible resources in VM. ### UseSubFileDecode ```csharp bool Datalogics.PDFL.PrintParams.UseSubFileDecode { get; set; } ``` Add SubFileDecode filter to work around stream problems [false]. The SubFileDecode filter will always be emitted when you print as binary. ### WesternMarksStyle ```csharp bool Datalogics.PDFL.PrintParams.WesternMarksStyle { get; set; } ``` When true, use western style for page marks. It applies to print separations. Obsoleted by markStyle below. ### WhichMarks ```csharp PageMarkFlags Datalogics.PDFL.PrintParams.WhichMarks { get; set; } ``` Page mark indication. It is a bit-wise OR of the PDPageMarkFlags values. It applies to print separations. ## Methods ### Dispose ```csharp void Datalogics.PDFL.PrintParams.Dispose() ``` **Returns:** `void` --- # PrintProgressProc Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintProgressProc ```csharp class PrintProgressProc : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Print progress callback function, a class used to notify print client of the progress during print operations. A PrintProgressProc() is typically passed to some method that takes a long time to complete. At frequent intervals, the method calls the PrintProgressProc(). **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) **Uses types:** [`PrintProgressStage`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PrintProgressStage.md) ## Constructors ### PrintProgressProc ```csharp Datalogics.PDFL.PrintProgressProc.PrintProgressProc() ``` *constructor* Print progress callback function, a class used to notify print client of the progress during print operations. A PrintProgressProc() is typically passed to some method that takes a long time to complete. At frequent intervals, the method calls the PrintProgressProc(). ## Methods ### Call ```csharp virtual void Datalogics.PDFL.PrintProgressProc.Call(int page, int total, float stagePercent, string info, PrintProgressStage stage) ``` **Parameters** - `page` (`int`) - `total` (`int`) - `stagePercent` (`float`) - `info` (`string`) - `stage` ([`PrintProgressStage`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PrintProgressStage.md)) **Returns:** `void` ### Dispose ```csharp void Datalogics.PDFL.PrintProgressProc.Dispose() ``` **Returns:** `void` --- # PrintProgressStage Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PrintProgressStage **Namespace:** `Datalogics::PDFL` ## Values - `PrintProg_CompilingDocumentResources = 1`: Compiling (Document Level) Resources - `PrintProg_CompilingPageResources = 2`: Compiling (Page Level) Resources - `PrintProg_StreamingDocumentFont = 3`: Streaming (Document Level) Font - `PrintProg_StreamingDocumentResource = 4`: Streaming (Document Level) Resource - `PrintProg_StreamingPageFont = 5`: Streaming (Page Level) Font - `PrintProg_StreamingPageResource = 6`: Streaming (Page Level) Resource - `PrintProg_StreamingPageContent = 7`: Streaming (Page Level) Content - `PrintProg_StreamingPageEpilogue = 8`: Page Trailer - `PrintProg_StreamingDocumentEpilogue = 9`: Document Trailer - `PrintProg_StreamingDocumentProcset = 10`: Streaming (Document Level) Procset - `PrintProg_StreamingPageSeparation = 11`: Streaming (Page Level) Separation(s) - `PrintProg_StreamingPageImage = 12`: Streaming (Page Level) Image - `PrintProg_StreamingPageImageOPI = 13`: Streaming (Page Level) OPI Image - `PrintProg_StreamingPageCSA = 14`: Streaming (Page Level) Color Space Array - `PrintProg_StreamingPageCRD = 15`: Streaming (Page Level) Color Rendering Dictionary - `PrintProg_StreamingPageGradient = 16`: Streaming (Page Level) Gradient - `PrintProg_OnHostTrapBeginPage = 17`: Begin Trapping - `PrintProg_SetOnHostTrapProgressPercent = 18`: Trapping - `PrintProg_StreamingPageImageProgressPercent = 19`: Streaming (Page Level) Image - `PrintProg_BeginStreamingTraps = 20`: Streaming (Page Level) Traps - `PrintProg_SetStreamingTrapPercent = 21`: Streaming (Page Level) Traps - `PrintFlat_EnterInFlattener = 100`: Begin Flattening - `PrintFlat_FindObjectsInvolvedInTransparency = 101`: Searching for Transparency - `PrintFlat_TextHeuristics = 102`: Calculating Text Interactions - `PrintFlat_IdentifyingComplexityRegion = 103`: Identifying Region - `PrintFlat_ComputingComplexityRegionClippath = 104`: Identifying Clip Path - `PrintFlat_EnterInPlanarMap = 105`: Planar Mapping - `PrintFlat_FlattenAtomicRegions = 106`: Atomic Regions - `PrintFlat_RasterizingComplexityRegion = 107`: Rasterizing - `PrintPage = 200`: WillPrintPage or DidPrintPage --- # PrintUserParams Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintUserParams ```csharp class PrintUserParams : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A structure used to set parameters for print jobs. Two structures provide settings for setting parameters for print jobs, PrintUserParams and PrintParams. PrintUserParams was created first, and then PrintParams was created as an extension of PrintUserParams, to provide more settings to account for changing technology. When the system seeks to print a document it will pass the content and the print parameters, such as the page size, paper tray, and landscape v. portrait, to the print API in APDFL. If the setting is in PrintParams it will pass the document and parameters to PrintParams and then to PrintUserParams and from there to the print API to complete the printing process. The print logic may take different code paths depending on whether or not the print content is being sent to a printer or to a file, or if the printing uses PostScript or not. When you see a print setting that appears in both PrintUserParams and PrintParams, such as "ShrinktoFit," set the appropriate value in both of these classes. Also, PrintParams offers a variety of settings related to PostScript, but the use of PrintParams is not limited to PostScript. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`FarEastFont`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/FarEastFont.md), [`PrintParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintParams.md) ## Constructors ### PrintUserParams ```csharp Datalogics.PDFL.PrintUserParams.PrintUserParams() ``` *constructor* Constructs a PrintUserParams with default settings. Initializes the print parameters to default values: paper size set to use the media box, emit to printer enabled, emit to file disabled, and zero copies. On macOS, also initializes the system print session, print settings, and page format. ## Properties ### BinaryOK ```csharp int Datalogics.PDFL.PrintUserParams.BinaryOK { get; set; } ``` Gets whether to enable Binary data, 1 turns it on and 0 turns it off. It applies to a Postscript printer. This API is available on Windows and macOS only. ### Collate ```csharp bool Datalogics.PDFL.PrintUserParams.Collate { get; set; } ``` Collate property. ### Command ```csharp string Datalogics.PDFL.PrintUserParams.Command { get; set; } ``` Gets the Optional command line arguments on Unix. It is used only if emitToPrinter is true. For example, "lp" or "lpr" applies to a Postscript printer. This API is available on Unix only. ### DeviceName ```csharp string Datalogics.PDFL.PrintUserParams.DeviceName { get; set; } ``` The unicode name of the device to print to (for example, "Distiller Assistant v3.01"). Available devices can be found in the Windows Registry at HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices. It applies to a printer. ### DoOPP ```csharp int Datalogics.PDFL.PrintUserParams.DoOPP { get; set; } ``` Gets the OverPrint Preview setting, 1 uses it, 0 does not. It applies to a printer. The default is 0. This API is available on Windows and macOS only. ### DriverName ```csharp string Datalogics.PDFL.PrintUserParams.DriverName { get; set; } ``` The unicode name of the driver (for example, "winspool"). See the registry key for deviceName. It applies to the printer. ### EmitHalftones ```csharp int Datalogics.PDFL.PrintUserParams.EmitHalftones { get; set; } ``` Gets the Emit half-tones setting, 1 turns it on, 0 turns it off. It applies to a Postscript printer. This API is available on Windows and macOS only. ### EmitToFile ```csharp bool Datalogics.PDFL.PrintUserParams.EmitToFile { get; set; } ``` Gets whether a Postscript file is created. ### EmitToPrinter ```csharp bool Datalogics.PDFL.PrintUserParams.EmitToPrinter { get; set; } ``` Gets whether to Output the PDF document to a Postscript Printer. ### EndPage ```csharp int Datalogics.PDFL.PrintUserParams.EndPage { get; set; } ``` Gets the page on which to finish printing, using zero-based nubmering. It applies to a printer. This API is only available on Windows and macOS only. ### FarEastFontOpt ```csharp FarEastFont Datalogics.PDFL.PrintUserParams.FarEastFontOpt { get; set; } ``` Gets the Far East Font setting. The default value is DownloadAll. PrintAsImage will not be honored. It applies to a Postscript printer. This API is available on Windows only. ### InFileName ```csharp string Datalogics.PDFL.PrintUserParams.InFileName { get; set; } ``` Unicode name used for the Windows DOCINFO structure (lpszDocName) that points to a NULL-terminated string that specifying the name of the document. In case of printing/exporting to Postscript, this field sets the Title DSC comment in the generated Postscript file. If inFileName was not provided, the Title DSC comment is filled with the name of pdf document. ### NCopies ```csharp int Datalogics.PDFL.PrintUserParams.NCopies { get; set; } ``` Gets the number of copies to print. It applies to a Postscript file. ### OutFileName ```csharp string Datalogics.PDFL.PrintUserParams.OutFileName { get; set; } ``` Unicode name used for the Windows DOCINFO structure (lpszOutput). It points to a NULL-terminated string that specifies the name of an output file. If this pointer is NULL, the output will be sent to the device identified by deviceName, driverName, and portName. It applies to a printer. ### PaperHeight ```csharp ushort Datalogics.PDFL.PrintUserParams.PaperHeight { get; set; } ``` Gets the Height of paper in points. The default value is 792. It applies to a Postscript printer. ### PaperSource ```csharp int Datalogics.PDFL.PrintUserParams.PaperSource { get; set; } ``` Paper source property. ### PaperWidth ```csharp ushort Datalogics.PDFL.PrintUserParams.PaperWidth { get; set; } ``` Gets the Width of paper in points. The default value is 612. It applies to a Postscript printer. ### PortName ```csharp string Datalogics.PDFL.PrintUserParams.PortName { get; set; } ``` The unicode name of the port (for example, "Ne00"). See the registry key for deviceName. It applies to the printer. ### PrintAnnots ```csharp int Datalogics.PDFL.PrintUserParams.PrintAnnots { get; set; } ``` Gets the printing annotations setting, 1 turns it on, 0 turns it off. It applies to a printer. This API is available on Windows and macOS only. ### PrintParams ```csharp PrintParams Datalogics.PDFL.PrintUserParams.PrintParams { get; } ``` Gets the Print Parameter settings. ### PsLevel ```csharp int Datalogics.PDFL.PrintUserParams.PsLevel { get; set; } ``` Gets the Postscript level. It applies to a Postscript printer. This API is available on Windows and macOS only. ### Reverse ```csharp int Datalogics.PDFL.PrintUserParams.Reverse { get; set; } ``` Gets whether to reverses print order, 1 reverses it and 0 does regular order. It applies to a printer. This API is available on Windows and macOS only. ### ShrinkToFit ```csharp bool Datalogics.PDFL.PrintUserParams.ShrinkToFit { get; set; } ``` Gets the Shrink to fit setting, true turns it on, false turns it off. It applies to a Postscript printer. This API is available on Windows and macOS only. ### StartPage ```csharp int Datalogics.PDFL.PrintUserParams.StartPage { get; set; } ``` Gets the page to start printing with, using zero-based numbering. It applies to a printer. This API is only available on Windows and macOS only. ### StartResult ```csharp int Datalogics.PDFL.PrintUserParams.StartResult { get; set; } ``` Gets the Spooler ID from StartDoc. This API is available on Windows and Unix only. ### TransQuality ```csharp int Datalogics.PDFL.PrintUserParams.TransQuality { get; set; } ``` Gets the Transparency flattening quality control. 1 is fastest; 5 is best. The default is 3. It applies to a printer. This API is available on Windows only. ### UseCustomPaperSize ```csharp bool Datalogics.PDFL.PrintUserParams.UseCustomPaperSize { get; set; } ``` Gets whether to force the use of the paper size provided in the PaperWidth and PaperHeight parameters and not search for best fit size provided by printer. SetPageSize must also be set. ## Fields ### UseCropBox ```csharp static const ushort Datalogics.PDFL.PrintUserParams.UseCropBox ``` *static* When paper height and width are initialized to this value the crop box of each individual page will be used to determine the paper size. ### UseMediaBox ```csharp static const ushort Datalogics.PDFL.PrintUserParams.UseMediaBox ``` *static* When paper height and width are initialized to this value the printed product more closely resembles what comes out of most PDF Viewers. This can eliminate some print problems, including PCL blank page problems. ## Methods ### ChoosePaperSourceBySize ```csharp void Datalogics.PDFL.PrintUserParams.ChoosePaperSourceBySize(double width, double height) ``` **Parameters** - `width` (`double`): the desired width of the output in user units - `height` (`double`): the desired height of the output in user units **Returns:** `void` Choose the best paper source for a given width and height. Searches the printer's paper list for the smallest paper size that is greater than or equal to the given width and height, including with rotation, and sets up the job to print with that paper size. To obtain width and height, specify the Right - Left and Top - Bottom of the MediaBox of a representative Page. The printerName and portName must be set. If you use this call in conjunction with PosePrintDialog, UseDefaultPrinter, or UpdateFromPrinterSettings, call this function after those functions. Setting RotateAndCenter to True is recommended with this function. ### Dispose ```csharp void Datalogics.PDFL.PrintUserParams.Dispose() ``` **Returns:** `void` ### EnumeratePaperSources ```csharp System.Collections.Generic.IList< System.String > Datalogics.PDFL.PrintUserParams.EnumeratePaperSources() ``` **Returns:** `System.Collections.Generic.IList< System.String >` Set of the tray/bin names. Enumerates available tray/bin names for the specified printer. ### PaperSourceIdByName ```csharp int Datalogics.PDFL.PrintUserParams.PaperSourceIdByName(string trayName) ``` **Parameters** - `trayName` (`string`): the tray/bin's name whose number need to obtain. **Returns:** `int` Tray/Bin number corresponding to the specified name. Obtain tray/bin number by its name. ### PosePrintDialog ```csharp bool Datalogics.PDFL.PrintUserParams.PosePrintDialog(Document doc) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): a Document which will be used to set the maximum page range in the dialog box. **Returns:** `bool` true if the user accepted the dialog box, false if it was cancelled Set the print parameters by posing a dialog box to the user. The parameters set include the printer, page range, paper size, number of copies, and duplexing mode. Changes to these parameters made by the user will be copied into the corresponding PrintUserParams fields. If you want to override the user's choices, change these fields after calling PosePrintDialog(). ### UpdateFromPrinterSettings ```csharp void Datalogics.PDFL.PrintUserParams.UpdateFromPrinterSettings(System.Drawing.Printing.PrinterSettings settings) ``` **Parameters** - `settings` (`System.Drawing.Printing.PrinterSettings`): Printer settings **Returns:** `void` Update the PrintUserParams from System.Drawing.Printing.PrinterSettings. The following items are updated: startPage endPage driverName deviceName portName nCopies paperWidth paperHeight DEVMODE Use this if you pose the print settings dialog box in your own code. ### UseDefaultPrinter ```csharp void Datalogics.PDFL.PrintUserParams.UseDefaultPrinter(Document doc) ``` **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): a Document which will be used to set the maximum page range. **Returns:** `void` Set the print parameters to the defaults. The parameters set include the printer, page range, paper size, number of copies, and duplexing mode. Operating system defaults for these parameters will be copied into the corresponding PrintUserParams fields. If you want to override the system defaults, change these fields after calling UseDefaultPrinter(). --- # PrintWhat Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PrintWhat **Namespace:** `Datalogics::PDFL` ## Description What portions of the document to print ## Values - `Document = 0`: Print only the document. - `DocumentAndComments = 1`: Print the document and associated annotations - `DocumentAndStamps = 2`: Print the document and stamp annotations. - `FormFieldsOnly = 3`: Print only the data within form fields. --- # PrintWhatAnnotFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PrintWhatAnnotFlags **Namespace:** `Datalogics::PDFL` ## Description Which annotations to print ## Values - `NoExtras = 1`: Do not print any extra annotations. - `TrapAnnots = 2`: Print trap annotations. - `PrinterMarks = 4`: Print printer mark annotations. --- # ProgressMonitor Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ProgressMonitor ```csharp class ProgressMonitor : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Represents the progress of an operation. The class can display a dialog if a process will take time, and the Progress method can indicate how long the process will last. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFOptimizer`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFOptimizer.md), [`SignDoc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SignDoc.md) ## Constructors ### ProgressMonitor ```csharp Datalogics.PDFL.ProgressMonitor.ProgressMonitor() ``` *constructor* Creates a new ProgressMonitor with duration and current value initialized to zero. ## Methods ### BeginOperation ```csharp virtual void Datalogics.PDFL.ProgressMonitor.BeginOperation() ``` **Returns:** `void` Initializes the progress monitor and displays it with a current value of zero. This method will be called first when the progress monitor is used. ### Dispose ```csharp void Datalogics.PDFL.ProgressMonitor.Dispose() ``` **Returns:** `void` ### EndOperation ```csharp virtual void Datalogics.PDFL.ProgressMonitor.EndOperation() ``` **Returns:** `void` Draws the progress monitor with its current value set to the progress monitor's duration (a full progress monitor), then removes the progress monitor from the display. ### GetCurrentValue ```csharp virtual int Datalogics.PDFL.ProgressMonitor.GetCurrentValue() ``` **Returns:** `int` The progress monitor's current value. Gets the current value of the progress monitor. The allowed value ranges from 0 (empty) to the value passed to SetDuration. For example, if the progress monitor's duration is 10, the current value must be between 0 and 10, inclusive. ### GetDuration ```csharp virtual int Datalogics.PDFL.ProgressMonitor.GetDuration() ``` **Returns:** `int` The maximum value the progress monitor is allowed to have, as set by SetDuration. Gets the progress monitor's duration. ### SetCurrentValue ```csharp virtual void Datalogics.PDFL.ProgressMonitor.SetCurrentValue(int currentValue) ``` **Parameters** - `currentValue` (`int`): The progress monitor's current value. **Returns:** `void` Sets the current value of the progress monitor and updates the display. The allowed value ranges from 0 (empty) to the value passed to SetDuration. For example, if the progress monitor's duration is 10, the current value must be between 0 and 10, inclusive. ### SetDuration ```csharp virtual void Datalogics.PDFL.ProgressMonitor.SetDuration(int duration) ``` **Parameters** - `duration` (`int`): The maximum value the progress monitor will be allowed to have. **Returns:** `void` Sets the value that corresponds to a full progress monitor display. The progress monitor is subsequently filled in by setting its current value. This method will be called before setting the progress monitor's current value. ### SetText ```csharp virtual void Datalogics.PDFL.ProgressMonitor.SetText(string text) ``` **Parameters** - `text` (`string`): The UTF-8 encoded text string to display. **Returns:** `void` Display a UTF-8 text string in the progress monitor. --- # QRColor Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/QRColor ```csharp class QRColor : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Used to control how the QR color is created. **Referenced by:** [`QREncodeParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/QREncodeParams.md) ## Constructors ### QRColor ```csharp Datalogics.PDFL.QRColor.QRColor() ``` *constructor* Create a new QRColor object. ## Properties ### Blue ```csharp int Datalogics.PDFL.QRColor.Blue { get; set; } ``` Gets the blue component of the QR color. ### Green ```csharp int Datalogics.PDFL.QRColor.Green { get; set; } ``` Gets the green component of the QR color. ### Red ```csharp int Datalogics.PDFL.QRColor.Red { get; set; } ``` Gets the red component of the QR color. ## Methods ### Dispose ```csharp void Datalogics.PDFL.QRColor.Dispose() ``` **Returns:** `void` --- # QREncodeParams Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/QREncodeParams ```csharp class QREncodeParams : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Used to control how the QR code is created. **Referenced by:** [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md) **Uses types:** [`QRColor`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/QRColor.md), [`QRErrorCorrectionLevel`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/QRErrorCorrectionLevel.md) ## Constructors ### QREncodeParams ```csharp Datalogics.PDFL.QREncodeParams.QREncodeParams(string text, double x, double y, double width, double height, QRErrorCorrectionLevel errorLevel, uint quietZoneSize, QRColor codeColor, QRColor backgroundColor) ``` *constructor* **Parameters** - `text` (`string`): The text string to encode in the QR code. - `x` (`double`): The X coordinate of the lower-left corner of the QR code on the page, in user space units. - `y` (`double`): The Y coordinate of the lower-left corner of the QR code on the page, in user space units. - `width` (`double`): The width of the QR code, in user space units. - `height` (`double`): The height of the QR code, in user space units. - `errorLevel` ([`QRErrorCorrectionLevel`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/QRErrorCorrectionLevel.md)): The error correction level for the QR code. - `quietZoneSize` (`uint`): The size of the quiet zone (margin) around the QR code, in modules. - `codeColor` ([`QRColor`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/QRColor.md)): The color of the QR code modules (the dark elements). - `backgroundColor` ([`QRColor`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/QRColor.md)): The color of the background behind the QR code modules. Create a new QREncodeParams object using the specified values. ## Properties ### BackgroundColor ```csharp QRColor Datalogics.PDFL.QREncodeParams.BackgroundColor { get; set; } ``` Get the color of the background behind the QR code modules. ### CodeColor ```csharp QRColor Datalogics.PDFL.QREncodeParams.CodeColor { get; set; } ``` Get the color of the QR code modules (the dark elements). ### ErrorCorrectionLevel ```csharp QRErrorCorrectionLevel Datalogics.PDFL.QREncodeParams.ErrorCorrectionLevel { get; set; } ``` Get the error correction level of the QR code. ### Height ```csharp double Datalogics.PDFL.QREncodeParams.Height { get; set; } ``` Get the height of the QR code, in user space units. ### QuietZoneSize ```csharp uint Datalogics.PDFL.QREncodeParams.QuietZoneSize { get; set; } ``` Get the quiet zone size (margin around the QR code), in modules. ### TextToEncode ```csharp string Datalogics.PDFL.QREncodeParams.TextToEncode { get; set; } ``` Get the text string to be encoded in the QR code. ### Width ```csharp double Datalogics.PDFL.QREncodeParams.Width { get; set; } ``` Get the width of the QR code, in user space units. ### X ```csharp double Datalogics.PDFL.QREncodeParams.X { get; set; } ``` Get the X coordinate of the lower-left corner of the QR code on the page, in user space units. ### Y ```csharp double Datalogics.PDFL.QREncodeParams.Y { get; set; } ``` Get the Y coordinate of the lower-left corner of the QR code on the page, in user space units. ## Methods ### Dispose ```csharp void Datalogics.PDFL.QREncodeParams.Dispose() ``` **Returns:** `void` --- # QRErrorCorrectionLevel Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/QRErrorCorrectionLevel **Namespace:** `Datalogics::PDFL` ## Description The Error Correction Level of the QR Code ## Values - `Low = 0`: Can tolerate 7% of bad codewords. - `Medium = 1`: Can tolerate 15% of bad codewords. - `Quartile = 2`: Can tolerate 25% of bad codewords. - `High = 3`: Can tolerate 30% of bad codewords. --- # Quad Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad ```csharp class Quad : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Represents a quadrilateral in a program. A quadrilateral is a polygon graphic that has four sides or edges and four corners, Bottom Left, Bottom Right, Top Left, and Top Right. **Referenced by:** [`DocTextFinderQuadInfo`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DocTextFinderQuadInfo.md), [`HighlightAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/HighlightAnnotation.md), [`Quad`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md), [`Redaction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Redaction.md), [`TextMarkupAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextMarkupAnnotation.md), [`UnderlineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/UnderlineAnnotation.md), [`Word`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Word.md) **Uses types:** [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md), [`Quad`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### Quad ```csharp Datalogics.PDFL.Quad.Quad() ``` *constructor* Creates a Quad with all points at the origin. ### Quad ```csharp Datalogics.PDFL.Quad.Quad(Point nTopLeft, Point nTopRight, Point nBottomLeft, Point nBottomRight) ``` *constructor* **Parameters** - `nTopLeft` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): The top left corner of the Quad. - `nTopRight` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): The top right corner of the Quad. - `nBottomLeft` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): The bottom left corner of the Quad. - `nBottomRight` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): The bottom right corner of the Quad. Creates a Quad from a set of 4 points. ## Properties ### BottomLeft ```csharp Point Datalogics.PDFL.Quad.BottomLeft { get; } ``` Bottom left corner of the Quad. ### BottomRight ```csharp Point Datalogics.PDFL.Quad.BottomRight { get; } ``` Bottom right corner of the Quad. ### TopLeft ```csharp Point Datalogics.PDFL.Quad.TopLeft { get; } ``` Top left corner of the Quad. ### TopRight ```csharp Point Datalogics.PDFL.Quad.TopRight { get; } ``` Top right corner of the Quad. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Quad.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Quad.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToRect ```csharp Rect Datalogics.PDFL.Quad.ToRect() ``` **Returns:** [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) A Rect with the lower-left corner at BottomLeft and the upper-right corner at TopRight. Returns a rectangle describing the same area as the quad. ### ToString ```csharp override string Datalogics.PDFL.Quad.ToString() ``` **Returns:** `override string` A string in the format "[ TopLeft=(...), TopRight=(...), BottomLeft=(...), BottomRight=(...) ]". Returns a UTF-8 string representation of the quad by calling each point's ToString function. ### Transform ```csharp Quad Datalogics.PDFL.Quad.Transform(Matrix arg0) ``` **Parameters** - `arg0` ([`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md)): The transformation matrix to apply to each point of the Quad. **Returns:** [`Quad`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md) A new Quad with each point transformed by the given matrix. Create a new quad from the results of a Transform on each point of the Quad. --- # Rect Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect ```csharp class Rect : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A rect holds four coordinates for a rectangle. The coordinates for a rectangle include left, top, right, bottom. Width () and height () defines the rectangle's width and height. LLx and LLy defines lower left corner, and URx and URy defines the upper right corner. **Referenced by:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md), [`AxialShadingPattern`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/AxialShadingPattern.md), [`CircleAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CircleAnnotation.md), [`Container`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Container.md), [`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md), [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md), [`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`FreeTextAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FreeTextAnnotation.md), [`Group`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Group.md), [`HighlightAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/HighlightAnnotation.md), [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md), [`InkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/InkAnnotation.md), [`LineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LineAnnotation.md), [`LinkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LinkAnnotation.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`Path`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Path.md), [`PolyLineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolyLineAnnotation.md), [`PolygonAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolygonAnnotation.md), [`PostScript`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PostScript.md), [`PrintParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PrintParams.md), [`Quad`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md), [`Redaction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Redaction.md), [`RemoteDestination`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RemoteDestination.md), [`Shading`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Shading.md), [`ShadingPattern`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ShadingPattern.md), [`SignDoc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SignDoc.md), [`SquareAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SquareAnnotation.md), [`Text`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Text.md), [`TextMarkupAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextMarkupAnnotation.md), [`TextRun`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextRun.md), [`UnderlineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/UnderlineAnnotation.md), [`ViewDestination`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ViewDestination.md) **Uses types:** [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### Rect ```csharp Datalogics.PDFL.Rect.Rect() ``` *constructor* Create a rectangle with all values zero. ### Rect ```csharp Datalogics.PDFL.Rect.Rect(double nLLx, double nLLy, double nURx, double nURy) ``` *constructor* **Parameters** - `nLLx` (`double`): the X coordinate of the lower left corner of the rectangle - `nLLy` (`double`): the Y coordinate of the lower left corner of the rectangle - `nURx` (`double`): the X coordinate of the upper right corner of the rectangle - `nURy` (`double`): the Y coordinate of the upper right corner of the rectangle Create a Rect. ### Rect ```csharp Datalogics.PDFL.Rect.Rect(System.Drawing.Rectangle r) ``` *constructor* **Parameters** - `r` (`System.Drawing.Rectangle`): The rectangle to convert Construct a Rect from a System.Drawing.Rectangle Note that the coordinate systems are inverted for PDFL. Smaller X/Y values are assigned to the lower left coordinate. ### Rect ```csharp Datalogics.PDFL.Rect.Rect(System.Drawing.RectangleF r) ``` *constructor* **Parameters** - `r` (`System.Drawing.RectangleF`): The rectangle to convert Construct a Rect from a System.Drawing.RectangleF Note that the coordinate systems are inverted for PDFL. Smaller X/Y values are assigned to the lower left coordinate. ## Properties ### Bottom ```csharp double Datalogics.PDFL.Rect.Bottom { get; set; } ``` the Y coordinate of the lower left corner of the rectangle ### Height ```csharp double Datalogics.PDFL.Rect.Height { get; } ``` The height of the Rect. ### LLx ```csharp double Datalogics.PDFL.Rect.LLx { get; set; } ``` the X coordinate of the lower left corner of the rectangle ### LLy ```csharp double Datalogics.PDFL.Rect.LLy { get; set; } ``` the Y coordinate of the lower left corner of the rectangle ### Left ```csharp double Datalogics.PDFL.Rect.Left { get; set; } ``` the X coordinate of the lower left corner of the rectangle ### Right ```csharp double Datalogics.PDFL.Rect.Right { get; set; } ``` the X coordinate of the upper right corner of the rectangle ### RoundedHeight ```csharp int Datalogics.PDFL.Rect.RoundedHeight { get; } ``` Calculates and rounds the rectangle's height as APDFL does during page rendering. The width and height rounding algorithms are different inside APDFL, so in DLE they are different as well. ### RoundedWidth ```csharp int Datalogics.PDFL.Rect.RoundedWidth { get; } ``` Calculates and rounds the rectangle's width as APDFL does during page rendering. The width and height rounding algorithms are different inside APDFL, so in DLE they are different as well. ### Top ```csharp double Datalogics.PDFL.Rect.Top { get; set; } ``` the Y coordinate of the upper right corner of the rectangle ### URx ```csharp double Datalogics.PDFL.Rect.URx { get; set; } ``` the X coordinate of the upper right corner of the rectangle ### URy ```csharp double Datalogics.PDFL.Rect.URy { get; set; } ``` the Y coordinate of the upper right corner of the rectangle ### Width ```csharp double Datalogics.PDFL.Rect.Width { get; } ``` The width of the Rect. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Rect.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Rect.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### InRect ```csharp bool Datalogics.PDFL.Rect.InRect(Rect r2) ``` **Parameters** - `r2` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): The rectangle to test containment against. **Returns:** `bool` true if this rectangle is entirely inside r2, false otherwise. Check if this rectangle is inside the parameter rectangle. ### Intersect ```csharp Rect Datalogics.PDFL.Rect.Intersect(Rect r2) ``` **Parameters** - `r2` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): The other rectangle to intersect with. **Returns:** [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) A new Rect representing the intersection of the two rectangles. Obtain the intersection of this rectangle and another rectangle. ### IsEmpty ```csharp bool Datalogics.PDFL.Rect.IsEmpty() ``` **Returns:** `bool` true if the rectangle is empty, false otherwise. Check if this rectangle is empty. A rectangle is considered empty if its width or height is zero. ### Overlaps ```csharp bool Datalogics.PDFL.Rect.Overlaps(Rect r2) ``` **Parameters** - `r2` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): The other rectangle to test for overlap. **Returns:** `bool` true if the two rectangles overlap, false otherwise. Check if two rectangles overlap. ### ToString ```csharp override string Datalogics.PDFL.Rect.ToString() ``` **Returns:** `override string` A string describing the rectangle coordinates in the form "[ LLx=..., LLy=..., URx=..., URy=... ]". Convert the Rect to a human-readable string representation. ### Transform ```csharp Rect Datalogics.PDFL.Rect.Transform(Matrix arg0) ``` **Parameters** - `arg0` ([`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md)) **Returns:** [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) A new Rect with the transformed coordinates. Transform the coordinates of the rectangle by the given Matrix Object. ### operator Rect ```csharp static implicit Datalogics.PDFL.Rect.operator Rect(System.Drawing.Rectangle r) ``` *static* **Parameters** - `r` (`System.Drawing.Rectangle`): The rectangle to convert **Returns:** `implicit` Convert a System.Drawing.Rectangle to a Rect Note that the coordinate systems are inverted for PDFL. Smaller X/Y values are assigned to the lower left coordinate. ### operator Rect ```csharp static implicit Datalogics.PDFL.Rect.operator Rect(System.Drawing.RectangleF r) ``` *static* **Parameters** - `r` (`System.Drawing.RectangleF`): The rectangle to convert **Returns:** `implicit` Convert a System.Drawing.RectangleF to a Rect Note that the coordinate systems are inverted for PDFL. Smaller X/Y values are assigned to the lower left coordinate. --- # RectSegment Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RectSegment ```csharp class RectSegment : Segment ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Segment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Segment.md) ## Description A rectangle path operator. RectSegment represents a single path, or line, within a rectangle, with coordinates xy, xy for the beginning and end of the line. **Uses types:** [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md) ## Constructors ### RectSegment ```csharp Datalogics.PDFL.RectSegment.RectSegment(double x, double y, double width, double height) ``` *constructor* **Parameters** - `x` (`double`): the left edge of the rectangle. - `y` (`double`): the right edge of the rectangle. - `width` (`double`): the width of the rectangle. - `height` (`double`): the height of the rectangle. Append a rectangle to the current path as a complete subpath, with lower-left corner (x, y) and dimensions width and height in user space. ### RectSegment ```csharp Datalogics.PDFL.RectSegment.RectSegment(Point point, double width, double height) ``` *constructor* **Parameters** - `point` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the lower left corner of the rectangle. - `width` (`double`): the width of the rectangle. - `height` (`double`): the height of the rectangle. Append a rectangle to the current path as a complete subpath, with lower-left corner point and dimensions width and height in user space. ## Properties ### Height ```csharp double Datalogics.PDFL.RectSegment.Height { get; set; } ``` The height of the rectangle. ### Point ```csharp Point Datalogics.PDFL.RectSegment.Point { get; set; } ``` The lower left corner of the rectangle. ### Width ```csharp double Datalogics.PDFL.RectSegment.Width { get; set; } ``` The width of the rectangle. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Segment.Dispose() ``` **Returns:** `void` ### ToString ```csharp override string Datalogics.PDFL.RectSegment.ToString() ``` **Returns:** `override string` --- # Redaction Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Redaction ```csharp class Redaction : Annotation ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md) ## Description Associates an object with its location on a page of a PDF document. A redaction occludes some part of a document. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) **Uses types:** [`AnnotationFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AnnotationFlags.md), [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`HorizontalAlignment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/HorizontalAlignment.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`Quad`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. Create a new Redaction annotation object with extended options. When Overlay Text is used, font is specified by name. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Color internalColor) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. Create a new Redaction annotation object with extended options. When Overlay Text is used, font is specified by name. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Color internalColor, bool fillRedacted) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance (and in the final document, after redactions are applied). This parameter is considered true if not omitted. Create a new Redaction annotation object with extended options. When Overlay Text is used, font is specified by name. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Color internalColor, bool fillRedacted, bool drawBorder) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance (and in the final document, after redactions are applied). This parameter is considered true if not omitted. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. This parameter is considered true if not omitted. Create a new Redaction annotation object with extended options. When Overlay Text is used, font is specified by name. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance (and in the final document, after redactions are applied). This parameter is considered true if not omitted. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. This parameter is considered true if not omitted. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. Create a new Redaction annotation object with extended options. When Overlay Text is used, font is specified by name. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor, bool fillNormal) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance (and in the final document, after redactions are applied). This parameter is considered true if not omitted. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. This parameter is considered true if not omitted. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. - `fillNormal` (`bool`): When true, the areas being redacted will be drawn, in the "normal" appearance, with an overlaying fill of the fillColor at the fillOpacity. When false, there will be no overlay fill. This paramter is considered false if omitted. Create a new Redaction annotation object with extended options. When Overlay Text is used, font is specified by name. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor, bool fillNormal, Color fillColor) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance (and in the final document, after redactions are applied). This parameter is considered true if not omitted. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. This parameter is considered true if not omitted. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. - `fillNormal` (`bool`): When true, the areas being redacted will be drawn, in the "normal" appearance, with an overlaying fill of the fillColor at the fillOpacity. When false, there will be no overlay fill. This paramter is considered false if omitted. - `fillColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color applied as an overlay to the "normal" (Non redacted) area within the redaction areas. If this color is omitted, a "white" fill will be presumed. Create a new Redaction annotation object with extended options. When Overlay Text is used, font is specified by name. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor, bool fillNormal, Color fillColor, double fillOpacity) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance (and in the final document, after redactions are applied). This parameter is considered true if not omitted. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. This parameter is considered true if not omitted. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. - `fillNormal` (`bool`): When true, the areas being redacted will be drawn, in the "normal" appearance, with an overlaying fill of the fillColor at the fillOpacity. When false, there will be no overlay fill. This paramter is considered false if omitted. - `fillColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color applied as an overlay to the "normal" (Non redacted) area within the redaction areas. If this color is omitted, a "white" fill will be presumed. - `fillOpacity` (`double`): A value from 0 to 1.0 which is the opacity of the fill color (If this value is one, then the content of the redacted area will not be visible in the "normal" mode. If it is zero, then there will be no visible color overlaying the content to be redacted). If omitted, this will default to 1.0. Create a new Redaction annotation object with extended options. When Overlay Text is used, font is specified by name. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor, bool fillNormal, Color fillColor, double fillOpacity, string overlayText) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance (and in the final document, after redactions are applied). This parameter is considered true if not omitted. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. This parameter is considered true if not omitted. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. - `fillNormal` (`bool`): When true, the areas being redacted will be drawn, in the "normal" appearance, with an overlaying fill of the fillColor at the fillOpacity. When false, there will be no overlay fill. This paramter is considered false if omitted. - `fillColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color applied as an overlay to the "normal" (Non redacted) area within the redaction areas. If this color is omitted, a "white" fill will be presumed. - `fillOpacity` (`double`): A value from 0 to 1.0 which is the opacity of the fill color (If this value is one, then the content of the redacted area will not be visible in the "normal" mode. If it is zero, then there will be no visible color overlaying the content to be redacted). If omitted, this will default to 1.0. - `overlayText` (`string`): The value of the string to be displayed over the redacted area. It will be scaled and/or repeated according to the value of later parameters. If omitted, it will be an empty string, and there will be no overlay text drawn. Create a new Redaction annotation object with extended options. When Overlay Text is used, font is specified by name. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor, bool fillNormal, Color fillColor, double fillOpacity, string overlayText, Color textColor) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance (and in the final document, after redactions are applied). This parameter is considered true if not omitted. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. This parameter is considered true if not omitted. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. - `fillNormal` (`bool`): When true, the areas being redacted will be drawn, in the "normal" appearance, with an overlaying fill of the fillColor at the fillOpacity. When false, there will be no overlay fill. This paramter is considered false if omitted. - `fillColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color applied as an overlay to the "normal" (Non redacted) area within the redaction areas. If this color is omitted, a "white" fill will be presumed. - `fillOpacity` (`double`): A value from 0 to 1.0 which is the opacity of the fill color (If this value is one, then the content of the redacted area will not be visible in the "normal" mode. If it is zero, then there will be no visible color overlaying the content to be redacted). If omitted, this will default to 1.0. - `overlayText` (`string`): The value of the string to be displayed over the redacted area. It will be scaled and/or repeated according to the value of later parameters. If omitted, it will be an empty string, and there will be no overlay text drawn. - `textColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to use in drawing the OverlayText. If this is omitted, white will be presumed. Create a new Redaction annotation object with extended options. When Overlay Text is used, font is specified by name. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor, bool fillNormal, Color fillColor, double fillOpacity, string overlayText, Color textColor, string fontName) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance (and in the final document, after redactions are applied). This parameter is considered true if not omitted. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. This parameter is considered true if not omitted. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. - `fillNormal` (`bool`): When true, the areas being redacted will be drawn, in the "normal" appearance, with an overlaying fill of the fillColor at the fillOpacity. When false, there will be no overlay fill. This paramter is considered false if omitted. - `fillColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color applied as an overlay to the "normal" (Non redacted) area within the redaction areas. If this color is omitted, a "white" fill will be presumed. - `fillOpacity` (`double`): A value from 0 to 1.0 which is the opacity of the fill color (If this value is one, then the content of the redacted area will not be visible in the "normal" mode. If it is zero, then there will be no visible color overlaying the content to be redacted). If omitted, this will default to 1.0. - `overlayText` (`string`): The value of the string to be displayed over the redacted area. It will be scaled and/or repeated according to the value of later parameters. If omitted, it will be an empty string, and there will be no overlay text drawn. - `textColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to use in drawing the OverlayText. If this is omitted, white will be presumed. - `fontName` (`string`): The name of the font to be used when setting the overlayText. When absent or empty, the standard font Helvtica will be used. Using this option, a new internal font is created for each redaction. Each is subset and embedded. When many, many redactions are to be created, this can result in a significant use of processing time. When many redactions are to be created, the option using a font object in place of the font name is preferred. Create a new Redaction annotation object with extended options. When Overlay Text is used, font is specified by name. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor, bool fillNormal, Color fillColor, double fillOpacity, string overlayText, Color textColor, string fontName, double textSize) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance (and in the final document, after redactions are applied). This parameter is considered true if not omitted. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. This parameter is considered true if not omitted. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. - `fillNormal` (`bool`): When true, the areas being redacted will be drawn, in the "normal" appearance, with an overlaying fill of the fillColor at the fillOpacity. When false, there will be no overlay fill. This paramter is considered false if omitted. - `fillColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color applied as an overlay to the "normal" (Non redacted) area within the redaction areas. If this color is omitted, a "white" fill will be presumed. - `fillOpacity` (`double`): A value from 0 to 1.0 which is the opacity of the fill color (If this value is one, then the content of the redacted area will not be visible in the "normal" mode. If it is zero, then there will be no visible color overlaying the content to be redacted). If omitted, this will default to 1.0. - `overlayText` (`string`): The value of the string to be displayed over the redacted area. It will be scaled and/or repeated according to the value of later parameters. If omitted, it will be an empty string, and there will be no overlay text drawn. - `textColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to use in drawing the OverlayText. If this is omitted, white will be presumed. - `fontName` (`string`): The name of the font to be used when setting the overlayText. When absent or empty, the standard font Helvtica will be used. Using this option, a new internal font is created for each redaction. Each is subset and embedded. When many, many redactions are to be created, this can result in a significant use of processing time. When many redactions are to be created, the option using a font object in place of the font name is preferred. - `textSize` (`double`): The size, in points, to draw the text too. This may be overridden the scaleTofit value below. If omitted, it will default to 12.0. Create a new Redaction annotation object with extended options. When Overlay Text is used, font is specified by name. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor, bool fillNormal, Color fillColor, double fillOpacity, string overlayText, Color textColor, string fontName, double textSize, bool repeat) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance (and in the final document, after redactions are applied). This parameter is considered true if not omitted. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. This parameter is considered true if not omitted. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. - `fillNormal` (`bool`): When true, the areas being redacted will be drawn, in the "normal" appearance, with an overlaying fill of the fillColor at the fillOpacity. When false, there will be no overlay fill. This paramter is considered false if omitted. - `fillColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color applied as an overlay to the "normal" (Non redacted) area within the redaction areas. If this color is omitted, a "white" fill will be presumed. - `fillOpacity` (`double`): A value from 0 to 1.0 which is the opacity of the fill color (If this value is one, then the content of the redacted area will not be visible in the "normal" mode. If it is zero, then there will be no visible color overlaying the content to be redacted). If omitted, this will default to 1.0. - `overlayText` (`string`): The value of the string to be displayed over the redacted area. It will be scaled and/or repeated according to the value of later parameters. If omitted, it will be an empty string, and there will be no overlay text drawn. - `textColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to use in drawing the OverlayText. If this is omitted, white will be presumed. - `fontName` (`string`): The name of the font to be used when setting the overlayText. When absent or empty, the standard font Helvtica will be used. Using this option, a new internal font is created for each redaction. Each is subset and embedded. When many, many redactions are to be created, this can result in a significant use of processing time. When many redactions are to be created, the option using a font object in place of the font name is preferred. - `textSize` (`double`): The size, in points, to draw the text too. This may be overridden the scaleTofit value below. If omitted, it will default to 12.0. - `repeat` (`bool`): When true, the overlay text will be repeated to fill the redacted area. when false, the overlay text will be displayed only once. When omitted, it is presumed to be false. Create a new Redaction annotation object with extended options. When Overlay Text is used, font is specified by name. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor, bool fillNormal, Color fillColor, double fillOpacity, string overlayText, Color textColor, string fontName, double textSize, bool repeat, bool scaleToFit) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance (and in the final document, after redactions are applied). This parameter is considered true if not omitted. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. This parameter is considered true if not omitted. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. - `fillNormal` (`bool`): When true, the areas being redacted will be drawn, in the "normal" appearance, with an overlaying fill of the fillColor at the fillOpacity. When false, there will be no overlay fill. This paramter is considered false if omitted. - `fillColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color applied as an overlay to the "normal" (Non redacted) area within the redaction areas. If this color is omitted, a "white" fill will be presumed. - `fillOpacity` (`double`): A value from 0 to 1.0 which is the opacity of the fill color (If this value is one, then the content of the redacted area will not be visible in the "normal" mode. If it is zero, then there will be no visible color overlaying the content to be redacted). If omitted, this will default to 1.0. - `overlayText` (`string`): The value of the string to be displayed over the redacted area. It will be scaled and/or repeated according to the value of later parameters. If omitted, it will be an empty string, and there will be no overlay text drawn. - `textColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to use in drawing the OverlayText. If this is omitted, white will be presumed. - `fontName` (`string`): The name of the font to be used when setting the overlayText. When absent or empty, the standard font Helvtica will be used. Using this option, a new internal font is created for each redaction. Each is subset and embedded. When many, many redactions are to be created, this can result in a significant use of processing time. When many redactions are to be created, the option using a font object in place of the font name is preferred. - `textSize` (`double`): The size, in points, to draw the text too. This may be overridden the scaleTofit value below. If omitted, it will default to 12.0. - `repeat` (`bool`): When true, the overlay text will be repeated to fill the redacted area. when false, the overlay text will be displayed only once. When omitted, it is presumed to be false. - `scaleToFit` (`bool`): When true, the text size will be decreased to just fill the redacted area. When false, the text size will be constant, as described in textSize. When omitted, this is presumed to be false. Create a new Redaction annotation object with extended options. When Overlay Text is used, font is specified by name. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Font font) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `font` ([`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): The font to be used when creating overlay text. For most efficiency, this font should be created prior to the first redaction, and used for all redactions. After the last redaction is created the font may be subset and embedded. Using this option, rather than specifying a font name, significantly speeds the creation of many redactions. Create a new Redaction annotation object with extended options .When Overlay Text is used, font is provided as a font. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Font font, Color internalColor) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `font` ([`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): The font to be used when creating overlay text. For most efficiency, this font should be created prior to the first redaction, and used for all redactions. After the last redaction is created the font may be subset and embedded. Using this option, rather than specifying a font name, significantly speeds the creation of many redactions. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. Create a new Redaction annotation object with extended options .When Overlay Text is used, font is provided as a font. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Font font, Color internalColor, bool fillRedacted) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `font` ([`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): The font to be used when creating overlay text. For most efficiency, this font should be created prior to the first redaction, and used for all redactions. After the last redaction is created the font may be subset and embedded. Using this option, rather than specifying a font name, significantly speeds the creation of many redactions. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance(and in the final document, after redactions are applied). If omitted, this parameter will default to true. Create a new Redaction annotation object with extended options .When Overlay Text is used, font is provided as a font. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Font font, Color internalColor, bool fillRedacted, bool drawBorder) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `font` ([`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): The font to be used when creating overlay text. For most efficiency, this font should be created prior to the first redaction, and used for all redactions. After the last redaction is created the font may be subset and embedded. Using this option, rather than specifying a font name, significantly speeds the creation of many redactions. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance(and in the final document, after redactions are applied). If omitted, this parameter will default to true. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. If omitted, this parameter will default to true. Create a new Redaction annotation object with extended options .When Overlay Text is used, font is provided as a font. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Font font, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `font` ([`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): The font to be used when creating overlay text. For most efficiency, this font should be created prior to the first redaction, and used for all redactions. After the last redaction is created the font may be subset and embedded. Using this option, rather than specifying a font name, significantly speeds the creation of many redactions. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance(and in the final document, after redactions are applied). If omitted, this parameter will default to true. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. If omitted, this parameter will default to true. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. Create a new Redaction annotation object with extended options .When Overlay Text is used, font is provided as a font. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Font font, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor, bool fillNormal) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `font` ([`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): The font to be used when creating overlay text. For most efficiency, this font should be created prior to the first redaction, and used for all redactions. After the last redaction is created the font may be subset and embedded. Using this option, rather than specifying a font name, significantly speeds the creation of many redactions. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance(and in the final document, after redactions are applied). If omitted, this parameter will default to true. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. If omitted, this parameter will default to true. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. - `fillNormal` (`bool`): When true, the areas being redacted will be drawn, in the "normal" appearance, with an overlaying fill of the fillColor at the fillOpacity. When false, there will be no overlay fill. This paramter is considered false if omitted. Create a new Redaction annotation object with extended options .When Overlay Text is used, font is provided as a font. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Font font, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor, bool fillNormal, Color fillColor) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `font` ([`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): The font to be used when creating overlay text. For most efficiency, this font should be created prior to the first redaction, and used for all redactions. After the last redaction is created the font may be subset and embedded. Using this option, rather than specifying a font name, significantly speeds the creation of many redactions. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance(and in the final document, after redactions are applied). If omitted, this parameter will default to true. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. If omitted, this parameter will default to true. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. - `fillNormal` (`bool`): When true, the areas being redacted will be drawn, in the "normal" appearance, with an overlaying fill of the fillColor at the fillOpacity. When false, there will be no overlay fill. This paramter is considered false if omitted. - `fillColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color applied as an overlay to the "normal" (Non redacted) area within the redaction areas. If this color is omitted, a "white" fill will be presumed. Create a new Redaction annotation object with extended options .When Overlay Text is used, font is provided as a font. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Font font, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor, bool fillNormal, Color fillColor, double fillOpacity) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `font` ([`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): The font to be used when creating overlay text. For most efficiency, this font should be created prior to the first redaction, and used for all redactions. After the last redaction is created the font may be subset and embedded. Using this option, rather than specifying a font name, significantly speeds the creation of many redactions. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance(and in the final document, after redactions are applied). If omitted, this parameter will default to true. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. If omitted, this parameter will default to true. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. - `fillNormal` (`bool`): When true, the areas being redacted will be drawn, in the "normal" appearance, with an overlaying fill of the fillColor at the fillOpacity. When false, there will be no overlay fill. This paramter is considered false if omitted. - `fillColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color applied as an overlay to the "normal" (Non redacted) area within the redaction areas. If this color is omitted, a "white" fill will be presumed. - `fillOpacity` (`double`): A value from 0 to 1.0 which is the opacity of the fill color(If this value is one, then the content of the redacted area will not be visible in the "normal" mode. If it is zero, then there will be no visible color overlaying the content to be redacted). If omitted, this will default to 1.0. Create a new Redaction annotation object with extended options .When Overlay Text is used, font is provided as a font. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Font font, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor, bool fillNormal, Color fillColor, double fillOpacity, string overlayText) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `font` ([`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): The font to be used when creating overlay text. For most efficiency, this font should be created prior to the first redaction, and used for all redactions. After the last redaction is created the font may be subset and embedded. Using this option, rather than specifying a font name, significantly speeds the creation of many redactions. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance(and in the final document, after redactions are applied). If omitted, this parameter will default to true. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. If omitted, this parameter will default to true. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. - `fillNormal` (`bool`): When true, the areas being redacted will be drawn, in the "normal" appearance, with an overlaying fill of the fillColor at the fillOpacity. When false, there will be no overlay fill. This paramter is considered false if omitted. - `fillColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color applied as an overlay to the "normal" (Non redacted) area within the redaction areas. If this color is omitted, a "white" fill will be presumed. - `fillOpacity` (`double`): A value from 0 to 1.0 which is the opacity of the fill color(If this value is one, then the content of the redacted area will not be visible in the "normal" mode. If it is zero, then there will be no visible color overlaying the content to be redacted). If omitted, this will default to 1.0. - `overlayText` (`string`): The value of the string to be displayed over the redacted area. It will be scaled and/or repeated according to the value of later parameters. If omitted, it will be an empty string, and there will be no overlay text drawn. Create a new Redaction annotation object with extended options .When Overlay Text is used, font is provided as a font. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Font font, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor, bool fillNormal, Color fillColor, double fillOpacity, string overlayText, Color textColor) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `font` ([`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): The font to be used when creating overlay text. For most efficiency, this font should be created prior to the first redaction, and used for all redactions. After the last redaction is created the font may be subset and embedded. Using this option, rather than specifying a font name, significantly speeds the creation of many redactions. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance(and in the final document, after redactions are applied). If omitted, this parameter will default to true. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. If omitted, this parameter will default to true. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. - `fillNormal` (`bool`): When true, the areas being redacted will be drawn, in the "normal" appearance, with an overlaying fill of the fillColor at the fillOpacity. When false, there will be no overlay fill. This paramter is considered false if omitted. - `fillColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color applied as an overlay to the "normal" (Non redacted) area within the redaction areas. If this color is omitted, a "white" fill will be presumed. - `fillOpacity` (`double`): A value from 0 to 1.0 which is the opacity of the fill color(If this value is one, then the content of the redacted area will not be visible in the "normal" mode. If it is zero, then there will be no visible color overlaying the content to be redacted). If omitted, this will default to 1.0. - `overlayText` (`string`): The value of the string to be displayed over the redacted area. It will be scaled and/or repeated according to the value of later parameters. If omitted, it will be an empty string, and there will be no overlay text drawn. - `textColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to use in drawing the OverlayText. If this is omitted, white will be presumed. Create a new Redaction annotation object with extended options .When Overlay Text is used, font is provided as a font. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Font font, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor, bool fillNormal, Color fillColor, double fillOpacity, string overlayText, Color textColor, double textSize) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `font` ([`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): The font to be used when creating overlay text. For most efficiency, this font should be created prior to the first redaction, and used for all redactions. After the last redaction is created the font may be subset and embedded. Using this option, rather than specifying a font name, significantly speeds the creation of many redactions. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance(and in the final document, after redactions are applied). If omitted, this parameter will default to true. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. If omitted, this parameter will default to true. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. - `fillNormal` (`bool`): When true, the areas being redacted will be drawn, in the "normal" appearance, with an overlaying fill of the fillColor at the fillOpacity. When false, there will be no overlay fill. This paramter is considered false if omitted. - `fillColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color applied as an overlay to the "normal" (Non redacted) area within the redaction areas. If this color is omitted, a "white" fill will be presumed. - `fillOpacity` (`double`): A value from 0 to 1.0 which is the opacity of the fill color(If this value is one, then the content of the redacted area will not be visible in the "normal" mode. If it is zero, then there will be no visible color overlaying the content to be redacted). If omitted, this will default to 1.0. - `overlayText` (`string`): The value of the string to be displayed over the redacted area. It will be scaled and/or repeated according to the value of later parameters. If omitted, it will be an empty string, and there will be no overlay text drawn. - `textColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to use in drawing the OverlayText. If this is omitted, white will be presumed. - `textSize` (`double`): The size, in points, to draw the text too. This may be overridden the scaleTofit value below. If omitted, it will default to 12.0. Create a new Redaction annotation object with extended options .When Overlay Text is used, font is provided as a font. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Font font, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor, bool fillNormal, Color fillColor, double fillOpacity, string overlayText, Color textColor, double textSize, bool repeat) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `font` ([`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): The font to be used when creating overlay text. For most efficiency, this font should be created prior to the first redaction, and used for all redactions. After the last redaction is created the font may be subset and embedded. Using this option, rather than specifying a font name, significantly speeds the creation of many redactions. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance(and in the final document, after redactions are applied). If omitted, this parameter will default to true. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. If omitted, this parameter will default to true. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. - `fillNormal` (`bool`): When true, the areas being redacted will be drawn, in the "normal" appearance, with an overlaying fill of the fillColor at the fillOpacity. When false, there will be no overlay fill. This paramter is considered false if omitted. - `fillColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color applied as an overlay to the "normal" (Non redacted) area within the redaction areas. If this color is omitted, a "white" fill will be presumed. - `fillOpacity` (`double`): A value from 0 to 1.0 which is the opacity of the fill color(If this value is one, then the content of the redacted area will not be visible in the "normal" mode. If it is zero, then there will be no visible color overlaying the content to be redacted). If omitted, this will default to 1.0. - `overlayText` (`string`): The value of the string to be displayed over the redacted area. It will be scaled and/or repeated according to the value of later parameters. If omitted, it will be an empty string, and there will be no overlay text drawn. - `textColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to use in drawing the OverlayText. If this is omitted, white will be presumed. - `textSize` (`double`): The size, in points, to draw the text too. This may be overridden the scaleTofit value below. If omitted, it will default to 12.0. - `repeat` (`bool`): When true, the overlay text will be repeated to fill the redacted area, when false, the overlay text will be displayed only once. When omitted, it is presumed to be false. Create a new Redaction annotation object with extended options .When Overlay Text is used, font is provided as a font. To create a potental redaction and place it elsewhere in the page's annotation array. ### Redaction ```csharp Datalogics.PDFL.Redaction.Redaction(Page page, System.Collections.Generic.IList< Quad > regions, Font font, Color internalColor, bool fillRedacted, bool drawBorder, Color borderColor, bool fillNormal, Color fillColor, double fillOpacity, string overlayText, Color textColor, double textSize, bool repeat, bool scaleToFit) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page where this redaction mark is found. - `regions` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A vector of quadrilateral regions specifying the redaction's bounds, specified in user space coordinates. - `font` ([`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): The font to be used when creating overlay text. For most efficiency, this font should be created prior to the first redaction, and used for all redactions. After the last redaction is created the font may be subset and embedded. Using this option, rather than specifying a font name, significantly speeds the creation of many redactions. - `internalColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color of the redaction mark. This color is also used as the fill color when generating the replacement form for this redaction mark. The replacement form is the content that will be placed on the page when this mark is applied and the underlying content is removed. - `fillRedacted` (`bool`): When true, the area being redacted will be filled with the internalColor in the redacted appearance(and in the final document, after redactions are applied). If omitted, this parameter will default to true. - `drawBorder` (`bool`): When true, the "normal" appearance of the redacted areas will have a border of 1 point, in the borderColor. When it is false, no border will be drawn. If omitted, this parameter will default to true. - `borderColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to draw the border around the "normal" appearance of each area. If omitted, and fillColor is not omitted, no border will be drawn. If both fillColor and BorderColor is omitted, border will be drawn in internalColor. If internalColor is also omitted, border will be drawn in black. - `fillNormal` (`bool`): When true, the areas being redacted will be drawn, in the "normal" appearance, with an overlaying fill of the fillColor at the fillOpacity. When false, there will be no overlay fill. This paramter is considered false if omitted. - `fillColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color applied as an overlay to the "normal" (Non redacted) area within the redaction areas. If this color is omitted, a "white" fill will be presumed. - `fillOpacity` (`double`): A value from 0 to 1.0 which is the opacity of the fill color(If this value is one, then the content of the redacted area will not be visible in the "normal" mode. If it is zero, then there will be no visible color overlaying the content to be redacted). If omitted, this will default to 1.0. - `overlayText` (`string`): The value of the string to be displayed over the redacted area. It will be scaled and/or repeated according to the value of later parameters. If omitted, it will be an empty string, and there will be no overlay text drawn. - `textColor` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color to use in drawing the OverlayText. If this is omitted, white will be presumed. - `textSize` (`double`): The size, in points, to draw the text too. This may be overridden the scaleTofit value below. If omitted, it will default to 12.0. - `repeat` (`bool`): When true, the overlay text will be repeated to fill the redacted area, when false, the overlay text will be displayed only once. When omitted, it is presumed to be false. - `scaleToFit` (`bool`): When true, the text size will be decreased to just fill the redacted area. When false, the text size will be constant, as described in textSize. When omitted, this is presumed to be false. Create a new Redaction annotation object with extended options .When Overlay Text is used, font is provided as a font. To create a potental redaction and place it elsewhere in the page's annotation array. ## Properties ### Align ```csharp HorizontalAlignment Datalogics.PDFL.Redaction.Align { get; set; } ``` Get the horizontal alignment for the redaction text. ### AnnotationFeatureLevel ```csharp double Datalogics.PDFL.Annotation.AnnotationFeatureLevel { get; set; } ``` The minimum PDF version necessary to support the features used in this annotation. ### BorderColor ```csharp Color Datalogics.PDFL.Redaction.BorderColor { get; set; } ``` Get the color used as the "normal" border. ### Color ```csharp Color Datalogics.PDFL.Annotation.Color { get; set; } ``` The color of the annotation. ### Contents ```csharp string Datalogics.PDFL.Annotation.Contents { get; set; } ``` The text contents of the annotation. 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. ### DrawBorder ```csharp bool Datalogics.PDFL.Redaction.DrawBorder { get; set; } ``` Get Draw Border option ### FillColor ```csharp Color Datalogics.PDFL.Redaction.FillColor { get; } ``` Get the color used to fill the "normal" appearance area. ### FillNormal ```csharp bool Datalogics.PDFL.Redaction.FillNormal { get; set; } ``` Get Fill Normal Appearance option ### FillOpacity ```csharp double Datalogics.PDFL.Redaction.FillOpacity { get; } ``` Get the opacity applied to the fill color in "normal" appearance. ### FillRedacted ```csharp bool Datalogics.PDFL.Redaction.FillRedacted { get; set; } ``` Get Fill Redacted Appearance option ### Flags ```csharp AnnotationFlags Datalogics.PDFL.Annotation.Flags { get; set; } ``` The flags for the annotation. ### FontFace ```csharp string Datalogics.PDFL.Redaction.FontFace { get; set; } ``` Get Font face for the text ### FontSize ```csharp double Datalogics.PDFL.Redaction.FontSize { get; set; } ``` Get font size for the text; ### InteriorColor ```csharp Color Datalogics.PDFL.Annotation.InteriorColor { get; set; } ``` The interior color with which to fill the annotation's rectangle or circle. The color of the border itself can be retrieved from Annotation.Color. ### InternalColor ```csharp Color Datalogics.PDFL.Redaction.InternalColor { get; set; } ``` Get the color used as the replacement background. ### NormalAppearance ```csharp Form Datalogics.PDFL.Annotation.NormalAppearance { get; set; } ``` The normal appearance of the annotation, represented as a Form XObject. ### Note ```csharp string Datalogics.PDFL.Redaction.Note { get; set; } ``` Get the text string to be used as the Popup contents ### Opacity ```csharp double Datalogics.PDFL.Annotation.Opacity { get; set; } ``` The constant opacity value used in painting a Markup annotation. Opacity is a range from 0.0 (fully transparent) to 1.0 (fully opaque). ### OptionalContentMembershipDict ```csharp OptionalContentMembershipDict Datalogics.PDFL.Annotation.OptionalContentMembershipDict { get; set; } ``` The OptionalContentMembershipDict property for this Annotation. Setting this property will attach the Annotation to an OptionalContentMembershipDict; it will then be associated with the OptionalContentGroups and be subject to the VisibilityPolicy and VisibilityExpression of that MembershipDict. By setting this property to null, the Annotation is detached from any OptionalContentMembershipDict. ### OverlayFont ```csharp Font Datalogics.PDFL.Redaction.OverlayFont { get; set; } ``` Get Overlay Text Font ### OverlayText ```csharp string Datalogics.PDFL.Redaction.OverlayText { get; set; } ``` Get the optional overlay text of the redaction. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Annotation.PDFDict { get; } ``` The underlying PDF dictionary for this annotation. Retrieves the PDFDict representation of this annotation object. ### PageNo ```csharp int Datalogics.PDFL.Redaction.PageNo { get; set; } ``` Get the page number where the redaction occurs. ### Quads ```csharp System.Collections.Generic.IList Datalogics.PDFL.Redaction.Quads { get; set; } ``` A list of quads to mark. Each quad encompasses a word or group of contiguous words in the text underlying the annotation. ### Rect ```csharp Rect Datalogics.PDFL.Annotation.Rect { get; set; } ``` The size and location of the annotation on its page. ### Repeat ```csharp bool Datalogics.PDFL.Redaction.Repeat { get; set; } ``` Get the repeat value ### ScaleToFit ```csharp bool Datalogics.PDFL.Redaction.ScaleToFit { get; set; } ``` Get the ScaleToFit value ### Subtype ```csharp string Datalogics.PDFL.Annotation.Subtype { get; } ``` The annotation's subtype. ### TextColor ```csharp Color Datalogics.PDFL.Redaction.TextColor { get; set; } ``` Get the color used for the overlay text. ### Title ```csharp string Datalogics.PDFL.Annotation.Title { get; set; } ``` The title of the annotation. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Annotation.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Annotation.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### GenerateAppearance ```csharp virtual Form Datalogics.PDFL.Annotation.GenerateAppearance() ``` **Returns:** [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md) A Form representing the visual appearance, or null if the appearance could not be generated. Generate a new appearance stream with the current annotation properties. The resulting Form can then be used to set the annotation's appearance, such as by calling SetNormalAppearance. ### HasRichTextData ```csharp bool Datalogics.PDFL.Annotation.HasRichTextData() ``` **Returns:** `bool` true if the annotation contains Rich Text String content. Checks the annotation for Rich Text String content (PDFReference 1.7 Section 8.6.2). Annotations that contain Rich Text String content and do not have a normal appearance set will not be visible when rendering the page. ### IsCurrentlyVisible ```csharp bool Datalogics.PDFL.Annotation.IsCurrentlyVisible(OptionalContentContext occ) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which to check visibility. **Returns:** `bool` true if the annotation is currently visible. Tests whether an annotation is visible in a given optional content context, considering the current ON-OFF states of the optional-content groups in the optional-content dictionary (OCMD) and the dictionary's visibility policy. If the annotation occurs more than once within the content, this method only checks the visibility of the first occurrence of the annotation. This method determines visibility without considering the visbility of the Content object that the annotation belongs to. To determine the visibility of an annotation while taking the Content's visibility into consideration, use the alternate version of this method. ### SetFillColor ```csharp void Datalogics.PDFL.Redaction.SetFillColor(Color col, double opacity) ``` **Parameters** - `col` ([`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md)): The color which will fill the annotation when it is viewed in the "normal" or pre-redacted appearance. - `opacity` (`double`): The amount of opacity to apply to the fill color. If this value is zero, not color will be seen. If it is 1.0, then the underlying content of the unredacted document will not be visible. **Returns:** `void` Set the color used to fill the "normal" appearance. ### ToString ```csharp override string Datalogics.PDFL.Annotation.ToString() ``` **Returns:** `override string` A string describing this annotation, including its type and rectangle. Returns a string representation of this annotation. --- # RemoteDestination Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RemoteDestination ```csharp class RemoteDestination : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A view of a page contained in a separate document. A RemoteDestination is not the same as a ViewDestination; the two objects are not interchangeable. **Referenced by:** [`RemoteGoToAction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RemoteGoToAction.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### RemoteDestination ```csharp Datalogics.PDFL.RemoteDestination.RemoteDestination(Document doc, int pageNum, string fitType, Rect r, double zoom) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): Document that the RemoteDestination will be created in. - `pageNum` (`int`): Page number of the page in the remote document to display. - `fitType` (`string`): Fit Type must be: "XYZ", "Fit", "FitH", "FitV", "FitR", "FitB", "FitBH", or "FitBV". - `r` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): Target Rectangle - `zoom` (`double`): Zoom level Construct a RemoteDestination. **Exceptions** - `ApplicationException`: fitType could not be converted to a legal fit type atom. ## Properties ### DestRect ```csharp Rect Datalogics.PDFL.RemoteDestination.DestRect { get; set; } ``` The destination rectangle. ### FitType ```csharp string Datalogics.PDFL.RemoteDestination.FitType { get; set; } ``` The fit type for the destination. **Exceptions** - `ApplicationException`: fitType could not be converted to a legal fit type atom. ### NullValue ```csharp static double Datalogics.PDFL.RemoteDestination.NullValue { get; } ``` *static* ### PDFObject ```csharp PDFObject Datalogics.PDFL.RemoteDestination.PDFObject { get; } ``` Retrieve the PDFObject representation of this Remote Destination. ### PageNumber ```csharp int Datalogics.PDFL.RemoteDestination.PageNumber { get; set; } ``` The page number of the destination. ### Zoom ```csharp double Datalogics.PDFL.RemoteDestination.Zoom { get; set; } ``` The zoom factor for the destination. ## Methods ### Dispose ```csharp void Datalogics.PDFL.RemoteDestination.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.RemoteDestination.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.RemoteDestination.ToString() ``` **Returns:** `override string` A string describing the page number, fit type, destination rectangle, and zoom factor. Returns a string representation of this RemoteDestination. --- # RemoteGoToAction Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RemoteGoToAction ```csharp class RemoteGoToAction : Action ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Action`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Action.md) ## Description A remote go-to action is an action that includes a RemoteDestination object. The action associated with this object, when selected, opens a separate PDF file, or opens a web page in a browser window. **Uses types:** [`FileSpecification`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FileSpecification.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`RemoteDestination`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RemoteDestination.md) ## Constructors ### RemoteGoToAction ```csharp Datalogics.PDFL.RemoteGoToAction.RemoteGoToAction(FileSpecification fileSpec, RemoteDestination remoteDest) ``` *constructor* **Parameters** - `fileSpec` ([`FileSpecification`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FileSpecification.md)): A FileSpecification containing the path to the remote document. - `remoteDest` ([`RemoteDestination`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RemoteDestination.md)): A RemoteDestination representing the destination to jump in the remote document. General constructor. The action's target will be the path referenced in the FileSpecification parameter. If the path is absolute, the target path will also be absolute. If the path is relative, the target path will also be relative. Generally, the FileSpecification and RemoteDestination should be associated with the same Document, and this Document should be the same Document that contains the RemoteGoToAction. (All three objects, FileSpecification, RemoteDestination, and RemoteGoToAction, are associated with a Document at creation time, and the association cannot be changed.) The RemoteGoToAction will be associated with the same Document that the RemoteDestination parameter is associated with. When creating the RemoteGoToAction, the FileSpecification and RemoteDestination given to the constructor must be associated with the same Document, or an exception will be thrown. ## Properties ### FileSpecification ```csharp FileSpecification Datalogics.PDFL.RemoteGoToAction.FileSpecification { get; set; } ``` The FileSpecification for this action. Generally, the FileSpecification should be associated with the same Document that contains the RemoteGoToAction. (Both FileSpecification and RemoteGoToAction are associated with a Document at creation time.) ### NewWindow ```csharp bool Datalogics.PDFL.RemoteGoToAction.NewWindow { get; set; } ``` A flag specifying whether to open the destination document in a new window. By default, this flag is not present. If the action's FileSpecification is not a PDF, this flag is ignored. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Action.PDFDict { get; } ``` Retrieve the PDFObject representation of this object. ### RemoteDestination ```csharp RemoteDestination Datalogics.PDFL.RemoteGoToAction.RemoteDestination { get; set; } ``` The RemoteDestination for this action. Generally, the RemoteDestination should be associated with the same Document that contains the RemoteGoToAction. (Both RemoteDestination and RemoteGoToAction are associated with a Document at creation time.) ### Subtype ```csharp string Datalogics.PDFL.Action.Subtype { get; } ``` The action's subtype. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Action.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Action.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.Action.ToString() ``` **Returns:** `override string` A string describing this Action. Returns a string representation of this Action. The string includes the action's subtype. --- # RenderIntent Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent **Namespace:** `Datalogics::PDFL` ## Values - `Perceptual = 0`: Tries to preserve the visual relationship between colors in a way that is perceived as natural to the human eye, although the color values themselves may change. This is the same as the Image intent in Adobe PageMaker and Illustrator. This option is suitable for photographic, continuous tone images. - `RelColorimetric = 1`: The same as absolute colorimetric, except that it compares the white point of the source color space to that of the destination color space and shifts all other colors accordingly, rather than comparing individual colors. - `Saturation = 2`: Tries to create vivid color at the expense of accurate color. It scales the source gamut to the destination gamut, but preserves relative saturation instead of hue, so that when scaling to a smaller gamut, hues may shift. This is the same as the Graphics intent in Adobe PageMaker and Illustrator. This option is suitable for business graphics and charts, where the exact relationship between colors is not as important as having bright saturated colors. - `AbsColorimetric = 3`: Tries to maintain color accuracy at the expense of preserving relationships between colors. It leaves colors that fall inside the destination gamut unchanged. When translating to a smaller gamut, two colors that are distinct in the source space may be mapped to the same color in the destination space. This type of rendering can be more accurate than if the colorAC_RelColorimetric, profile of the image contains correct white point (extreme highlight) information. - `UseProfileIntent = 4`: Use the source profile's rendering intent. - `UseGStateIntent = 5`: Use the source intent for the destination intent --- # RenderProgressProc Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RenderProgressProc ```csharp class RenderProgressProc : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Render progress callback function, a class used to notify client of the progress during rendering operations. A RenderProgressProc() is typically passed to some method that takes a long time to complete. At frequent intervals, the method calls the RenderProgressProc(). **Referenced by:** [`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md) **Uses types:** [`RenderProgressStage`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderProgressStage.md) ## Constructors ### RenderProgressProc ```csharp Datalogics.PDFL.RenderProgressProc.RenderProgressProc() ``` *constructor* Render progress callback function, a class used to notify client of the progress during rendering operations. A RenderProgressProc() is typically passed to some method that takes a long time to complete. At frequent intervals, the method calls the RenderProgressProc(). ## Methods ### Call ```csharp virtual void Datalogics.PDFL.RenderProgressProc.Call(float stagePercent, string info, RenderProgressStage stage) ``` **Parameters** - `stagePercent` (`float`) - `info` (`string`) - `stage` ([`RenderProgressStage`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderProgressStage.md)) **Returns:** `void` ### Dispose ```csharp void Datalogics.PDFL.RenderProgressProc.Dispose() ``` **Returns:** `void` --- # RenderProgressStage Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderProgressStage **Namespace:** `Datalogics::PDFL` ## Description Identifies the current stage of a rendering or flattening operation. These values are passed to RenderProgressProc to indicate which phase of rendering or transparency flattening is currently in progress. ## Values - `RenderProg_Unknown = 0`: Stage 0 (barber pole) - `RenderProg_Stage1 = 1`: Stage 1 - `RenderProg_Stage2 = 2`: Stage 2 - `RenderProg_Stage3 = 3`: Stage 3 - `RenderProg_Stage4 = 4`: Stage 4 - `RenderProg_Stage5 = 5`: Stage 5 - `RenderProg_Stage6 = 6`: Stage 6 - `RenderProg_Stage7 = 7`: Stage 7 - `RenderProg_Stage8 = 8`: Stage 8 - `RenderProg_Stage9 = 9`: Stage 9 - `RenderFlat_EnterInFlattener = 100`: Begin Flattening - `RenderFlat_FindObjectsInvolvedInTransparency = 101`: Searching for Transparency - `RenderFlat_TextHeuristics = 102`: Calculating Text Interactions - `RenderFlat_IdentifyingComplexityRegion = 103`: Identifying Region - `RenderFlat_ComputingComplexityRegionClippath = 104`: Identifying Clip Path - `RenderFlat_EnterInPlanarMap = 105`: Planar Mapping - `RenderFlat_FlattenAtomicRegions = 106`: Atomic Regions - `RenderFlat_RasterizingComplexityRegion = 107`: Rasterizing --- # ReportProc Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ReportProc ```csharp class ReportProc : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Represents the error reporting callback function. A ReportProc administrative command is typically passed to generate an error report. If a process is not completing properly, or taking too long to finish, this process will create an error report in response. At frequent intervals, the method calls ReportProc. If the ReportProc command returns a "true" statement, the method generates an error. If it returns "false," the process continues. The time interval is determined by the ReportProc command. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) **Uses types:** [`ReportType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ReportType.md) ## Constructors ### ReportProc ```csharp Datalogics.PDFL.ReportProc.ReportProc() ``` *constructor* Represents the error reporting callback function. A ReportProc administrative command is typically passed to generate an error report. If a process is not completing properly, or taking too long to finish, this process will create an error report in response. At frequent intervals, the method calls ReportProc. If the ReportProc command returns a "true" statement, the method generates an error. If it returns "false," the process continues. The time interval is determined by the ReportProc command. ## Methods ### Call ```csharp virtual void Datalogics.PDFL.ReportProc.Call(ReportType reportType, string message, string replacementText) ``` **Parameters** - `reportType` ([`ReportType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ReportType.md)) - `message` (`string`) - `replacementText` (`string`) **Returns:** `void` ### Dispose ```csharp void Datalogics.PDFL.ReportProc.Dispose() ``` **Returns:** `void` --- # ReportType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ReportType **Namespace:** `Datalogics::PDFL` ## Description Type codes used for error reporting. ## Values - `Note = 0`: A note. - `Warning = 1`: A warning. - `Error = 2`: An error. --- # ResourceType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ResourceType **Namespace:** `Datalogics::PDFL` ## Values - `ExtGState = 0`: Graphic State Parameter dictionary. - `ColorSpace = 1`: The name of a device-dependent Color Space or an array describing a Color Space. - `Pattern = 2`: Pattern object - `Shading = 4`: Shading dictionary - `XObject = 5`: External object - `Font = 6`: Font dictionary - `ProcSet = 7`: Predefined procedure set names. - `Properties = 8`: Property list dictionary for marked-content. --- # RolledBackDocument Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RolledBackDocument ```csharp class RolledBackDocument : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A class representing a Rolled back instance of a PDF document that was previously saved Incrementally. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) ## Methods ### CloseDocument ```csharp void Datalogics.PDFL.RolledBackDocument.CloseDocument() ``` **Returns:** `void` Closes the rolled-back document and releases its associated file resources. This closes both the underlying file and the PDF document handle. After calling this method, the object should no longer be used. ### Dispose ```csharp void Datalogics.PDFL.RolledBackDocument.Dispose() ``` **Returns:** `void` ### Save ```csharp void Datalogics.PDFL.RolledBackDocument.Save(string newPath) ``` **Parameters** - `newPath` (`string`): The file system path where the rolled-back document will be saved. **Returns:** `void` Saves the Rolled back document instance using the specified path to disk. The document is saved in full (non-incremental) mode. --- # SaveFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SaveFlags **Namespace:** `Datalogics::PDFL` ## Values - `Incremental = 0`: Incremental save only write objects that have changed after the end of the document rather than disturbing unchanged items. Use with Copy to create a new file which incorporates a copy of the input file before making changes. This flag can be useful when making changes to signed documents, as it preserves the validity of any existing signatures. - `Full = 1`: Save the entire document. - `Copy = 2`: Saves a copy of the document. Used with Incremental to create a new file from a binary copy of the input document. - `Linearized = 4`: Save in a format that is suitable for remote (network) access, Linearized is sometimes referred to as Web Optimized because of its goal of minimizing the perception of poor performance due to the number of pages in a document. This inherently uses OptimizeFonts, for documents with a large number of fonts, font optimization can have poor performance, see SaveLinearizedNoOptimizeFonts as an alternative. - `CollectGarbage = 32`: Collect Garbage by removing unreferenced objects. Only valid with Full. - `KeepModDate = 128`: Do not update the Modification Date - `CloseAfterSave = 16384`: Close document after save. Use this flag for saving to the stream only. Note that using this flag to save a document to any destination other than stream causes an exception. - `XMPPacketReadOnlyNoPadding = 32768`: Save XMP data as read-only without padding - `Uncompressed = 65536`: Do not use object stream compression. Only valid with Full. - `Compressed = 131072`: Use object compression wherever possible. Only valid with Full. - `CompressStructureOnly = 262144`: Use object compression only for Logical Structure items. Only valid with Full. - `RemoveASCIIFilters = 524288`: Remove the ASCII85 filter from all streams where its in use. Only valid with Full. - `AddFlate = 1048576`: Encode any uncompressed stream witht the Flate filter. Only valid with Full. - `AddBrotli = 8192`: Encode any uncompressed stream with the Brotli filter. Only valid with Full. Ignored if AddFlate is also set, which takes precedence. Brotli is a PDF 2.0 extension (IETF RFC 7932) rather than part of ISO 32000-2:2020, so PDF readers that do not implement it cannot decode the affected streams. - `ReplaceLZW = 2097152`: Replace any LZW encoded stream with Flate, or with Brotli when AddBrotli is also set. Only valid with Full. - `OptimizeXObjects = 4194304`: Merge identical XObjects. - `OptimizeContentStreams = 8388608`: Optimize Content Streams operators where possible. - `OptimizeFonts = 16777216`: Merge Font Descriptors and encoding where possible. For documents with a large number of fonts, font optimization can have poor performance, this should only be set if necessary. - `OptimizeMarkedJBIG2Dictionaries = 33554432`: Delete symbols specific to JBIG2 Dictionaries that couldn't be removed previously. - `Ensure7bitASCII = 67108864`: Deprecated. - `AutoSave = 134217728`: Deprecated. - `DoNotCreateToUnicodeWidths = 512`: Don't create /ToUnicode and /Widths entries for Fonts to improve performance. - `SaveOriginalMetadata = 1073741824`: Save original /Metadata stream of input as /Metadata stream of output document. - `SaveLinearizedNoOptimizeFonts = 512`: Save the document as Linearized the same as Linearized but OptimizeFonts is disabled. For documents with a large number of fonts, font optimization can have poor performance and is often unnecessary. --- # SchemaFieldSubtype Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SchemaFieldSubtype **Namespace:** `Datalogics::PDFL` ## Description The data type of a collection schema field. ## Values - `Text = 0`: Text string value. - `Date = 1`: Date value. - `Number = 2`: Numeric value. - `FieldData = 3`: Raw field data. - `Description = 4`: Descriptive text. - `ModificationDate = 5`: Date the field was last modified. - `CreationDate = 6`: Date the field was created. - `FieldDataSize = 7`: Size of the field data in bytes. --- # Segment Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Segment ```csharp class Segment : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` **Derived classes:** [`ClosePath`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ClosePath.md), [`CurveTo`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CurveTo.md), [`CurveToV`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CurveToV.md), [`CurveToY`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CurveToY.md), [`LineTo`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LineTo.md), [`MoveTo`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/MoveTo.md), [`RectSegment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RectSegment.md) ## Description Represents a segment, or a single line, within a path. **Referenced by:** [`Path`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Path.md) ## Methods ### Dispose ```csharp void Datalogics.PDFL.Segment.Dispose() ``` **Returns:** `void` ### ToString ```csharp override string Datalogics.PDFL.Segment.ToString() ``` **Returns:** `override string` --- # SeparationColorSpace Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace ```csharp class SeparationColorSpace : ColorSpace ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md) ## Description Defines the use of additional named colorants in a PDF document. Colorants in a separation color space are also sometimes referred to as spot colorants. The device displaying or printing the PDF document will supply an appropriate color based on the colorant included in the separation color space. **Referenced by:** [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md) **Uses types:** [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md), [`Ink`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Ink.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md) ## Constructors ### SeparationColorSpace ```csharp Datalogics.PDFL.SeparationColorSpace.SeparationColorSpace(Page page, Ink ink) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): Page, that contains an ink - `ink` ([`Ink`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Ink.md)): Represents an ink used in a page Create a separation color space from page's Ink. If page doesn't have a separation color space with passed ink in it's resources, then linear grayscale tint transform function and CMYK as alternate colorspace will be used. ### SeparationColorSpace ```csharp Datalogics.PDFL.SeparationColorSpace.SeparationColorSpace(string separationName, ColorSpace alternate, Function tintTransform) ``` *constructor* **Parameters** - `separationName` (`string`): the name of the colorant that the Separation space is intended to represent, or All, or None - `alternate` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): the alternate color space, which can be any device or CIE-based color space but not another special color space (Pattern, Indexed, Separation, or DeviceN). - `tintTransform` ([`Function`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Function.md)): function, called with the tint value and returning the corresponding color component values. That is, the number of components and the interpretation of their values depend on the alternate color space. Create a separation color space. ## Properties ### Alternate ```csharp ColorSpace Datalogics.PDFL.SeparationColorSpace.Alternate { get; } ``` The alternate color space. The alternate color space can be any device or CIE-based color space but not another special color space (Pattern, Indexed, Separation, or DeviceN). ### DeviceCMYK ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceCMYK { get; } ``` *static* The DeviceCMYK color space, representing cyan, magenta, yellow, and black components. ### DeviceGray ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceGray { get; } ``` *static* The DeviceGray color space, representing a single grayscale component. ### DeviceRGB ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceRGB { get; } ``` *static* The DeviceRGB color space, representing red, green, and blue components. ### DeviceRGBA ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.DeviceRGBA { get; } ``` *static* The DeviceRGBA color space, representing red, green, blue, and alpha components. ### Function ```csharp Function Datalogics.PDFL.SeparationColorSpace.Function { get; } ``` A function, called with the tint value and returning the corresponding color component values. That is, the number of components and the interpretation of their values depend on the alternate color space. ### Lab ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.Lab { get; } ``` *static* The CIE-based L*a*b* color space. ### LabA ```csharp static ColorSpace Datalogics.PDFL.ColorSpace.LabA { get; } ``` *static* The CIE-based L*a*b* color space with an alpha component. ### Name ```csharp string Datalogics.PDFL.ColorSpace.Name { get; } ``` The name of the color space. A named color space may be named something like DeviceRGB. More complicated color spaces may have a name like Indexed or ICCBased. ### NumComponents ```csharp int Datalogics.PDFL.ColorSpace.NumComponents { get; } ``` The number of components in the color space. For example, DeviceGray has 1 component, DeviceRGB has 3, and DeviceCMYK has 4. ### PDFObject ```csharp PDFObject Datalogics.PDFL.ColorSpace.PDFObject { get; } ``` Get the PDFObject associated with the color space. This may be a PDFName, PDFDict, PDFStream, or PDFArray. ### SeparationName ```csharp string Datalogics.PDFL.SeparationColorSpace.SeparationName { get; } ``` The name of the colorant that the Separation space is intended to represent, or All, or None. ### SeparationNameArray ```csharp System.Byte [] Datalogics.PDFL.SeparationColorSpace.SeparationNameArray { get; } ``` The name of the colorant as a byte array. The name of the colorant that the Separation space is intended to represent, or All, or None. This property is suitable for retrieving the name when the SeparationName cannot be retrieved as a string (for example, when the name contains non-Unicode characters). ## Methods ### Dispose ```csharp void Datalogics.PDFL.ColorSpace.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.ColorSpace.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.ColorSpace.ToString() ``` **Returns:** `override string` A string describing this ColorSpace. Convert a ColorSpace to a string representation. ### operator!= ```csharp static bool Datalogics.PDFL.ColorSpace.operator!=(ColorSpace a, ColorSpace b) ``` *static* **Parameters** - `a` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The first ColorSpace to compare. - `b` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The second ColorSpace to compare. **Returns:** `bool` true if the two ColorSpace objects are not equal; false otherwise. Test two ColorSpace objects for inequality. ### operator== ```csharp static bool Datalogics.PDFL.ColorSpace.operator==(ColorSpace a, ColorSpace b) ``` *static* **Parameters** - `a` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The first ColorSpace to compare. - `b` ([`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md)): The second ColorSpace to compare. **Returns:** `bool` true if the two ColorSpace objects are equal; false otherwise. Test two ColorSpace objects for equality. --- # SeparationFontOptions Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SeparationFontOptions **Namespace:** `Datalogics::PDFL` ## Values - `DontEmbedFonts = 0`: Embed no fonts. - `EmitAllEmbeddedFonts = 1`: Emit all embedded fonts. - `EmitAllFonts = 2`: Emit all fonts. --- # SeparationParams Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationParams ```csharp class SeparationParams : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Holds parameters for making color separations. Used with PostScript. **Referenced by:** [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md) **Uses types:** [`MirrorOptions`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/MirrorOptions.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`PageMarkFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageMarkFlags.md), [`SeparationFontOptions`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SeparationFontOptions.md), [`SeparationPlate`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationPlate.md) ## Constructors ### SeparationParams ```csharp Datalogics.PDFL.SeparationParams.SeparationParams(System.Collections.Generic.IList< SeparationPlate > plates) ``` *constructor* **Parameters** - `plates` ([`System.Collections.Generic.IList< SeparationPlate >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationPlate.md)): The plates to use for making separations. Set up default parameters for making separations. ## Properties ### ApplyOCGPrintOverrides ```csharp bool Datalogics.PDFL.SeparationParams.ApplyOCGPrintOverrides { get; set; } ``` If true, apply print-specific visibility state settings from the optional content group. Default is false. ### BinaryChannelAvailable ```csharp bool Datalogics.PDFL.SeparationParams.BinaryChannelAvailable { get; set; } ``` True if a binary channel to the printer is supported, false otherwise. Default is false. ### ConvertToProcessUsingOPP ```csharp bool Datalogics.PDFL.SeparationParams.ConvertToProcessUsingOPP { get; set; } ``` If true, use the overprint preview (OPP) for converting to process, which better simulates what would happen if the spot ink were really used. Default is false. ### ConvertTrueTypeToType42 ```csharp bool Datalogics.PDFL.SeparationParams.ConvertTrueTypeToType42 { get; set; } ``` If true, send TrueType fonts as TrueType fonts (level 3 and most level 2 PS printers). If false, convert TrueType to T1 (typically desirable only for Level 1 PS where no TrueType handling is present). Default is false. ### DestinationProfileString ```csharp string Datalogics.PDFL.SeparationParams.DestinationProfileString { get; set; } ``` The profile description of a valid CMYK profile, such as the strings seen in the color management preferences in a PDF Viewer (for example, "U.S. Web Coated (SWOP) v2"). Default is "U.S. Web Coated (SWOP) v2". ### EmitAnnotations ```csharp bool Datalogics.PDFL.SeparationParams.EmitAnnotations { get; set; } ``` If true, emit annotations. Default is false. ### EmitFontOption ```csharp SeparationFontOptions Datalogics.PDFL.SeparationParams.EmitFontOption { get; set; } ``` Font output options. Default is EmitAllFonts. ### EmitHalftones ```csharp bool Datalogics.PDFL.SeparationParams.EmitHalftones { get; set; } ``` If true, emit halftones. Default is true. ### EmitSeparableImagesOnly ```csharp bool Datalogics.PDFL.SeparationParams.EmitSeparableImagesOnly { get; set; } ``` If true, emit separable images only. Default is false. ### EmitTransferFunctions ```csharp bool Datalogics.PDFL.SeparationParams.EmitTransferFunctions { get; set; } ``` If true, emit transfer functions. Default is true. ### InvertPlates ```csharp bool Datalogics.PDFL.SeparationParams.InvertPlates { get; set; } ``` If true, invert the plates. Default is false. ### MirrorPrint ```csharp MirrorOptions Datalogics.PDFL.SeparationParams.MirrorPrint { get; set; } ``` Options for mirroring. Mirroring is done in the PostScript output stream. Default is DontFlip. ### OCContext ```csharp OptionalContentContext Datalogics.PDFL.SeparationParams.OCContext { get; set; } ``` The optional content context to use for visibility state information, or NULL to use the document's current states in the default context. Default is NULL. ### PageMarksToEmit ```csharp PageMarkFlags Datalogics.PDFL.SeparationParams.PageMarksToEmit { get; set; } ``` The page marks to emit for this plate. It is a bit-wise OR of the PageMarkFlags values. Default is None. ### Plates ```csharp System.Collections.Generic.IList Datalogics.PDFL.SeparationParams.Plates { get; set; } ``` A list of plates to use for separations. ### PostScriptLevel ```csharp int Datalogics.PDFL.SeparationParams.PostScriptLevel { get; set; } ``` The PostScript printing level. 2 means emit as level 2, 3 means level 3. Default is level 2. ### PrinterHasFarEastFonts ```csharp bool Datalogics.PDFL.SeparationParams.PrinterHasFarEastFonts { get; set; } ``` If true, do not include Far East fonts. Default is false. ### SuppressCJKSubstitution ```csharp bool Datalogics.PDFL.SeparationParams.SuppressCJKSubstitution { get; set; } ``` If true, suppress CJK substitution. Default is false. ### TransparencyLevel ```csharp int Datalogics.PDFL.SeparationParams.TransparencyLevel { get; set; } ``` The transparency flattening quality level. Range is from 0 to 100. Lower values flatten faster. Higher values provide better quality. Default is 75. ### UseCMYKWorkingColorSpace ```csharp bool Datalogics.PDFL.SeparationParams.UseCMYKWorkingColorSpace { get; set; } ``` If true, color manage DeviceCMYK. If false, pass it directly onto the process plates. Default is false. ### UseWesternStylePageMarks ```csharp bool Datalogics.PDFL.SeparationParams.UseWesternStylePageMarks { get; set; } ``` If true, use the western style for page marks. Default is false. ## Methods ### Dispose ```csharp void Datalogics.PDFL.SeparationParams.Dispose() ``` **Returns:** `void` --- # SeparationPlate Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationPlate ```csharp class SeparationPlate : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Represents a plate for making print separations. Used with PostScript. **Referenced by:** [`SeparationParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationParams.md) **Uses types:** [`Ink`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Ink.md), [`InkTypes`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/InkTypes.md), [`SeparationPreviewOptions`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SeparationPreviewOptions.md) ## Constructors ### SeparationPlate ```csharp Datalogics.PDFL.SeparationPlate.SeparationPlate(Ink colorant, System.IO.Stream epsOutput) ``` *constructor* **Parameters** - `colorant` ([`Ink`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Ink.md)): A colorant to use for this SeparationPlate. - `epsOutput` (`System.IO.Stream`): A System.IO.Stream which will receive the EPS output for this SeparationPlate. General constructor ## Properties ### Alias ```csharp string Datalogics.PDFL.SeparationPlate.Alias { get; set; } ``` Another name for this colorant. ### Angle ```csharp double Datalogics.PDFL.SeparationPlate.Angle { get; set; } ``` The angle for this ink. The angle must be greater than or equal to zero. The default is 45.0. ### ColorantName ```csharp string Datalogics.PDFL.SeparationPlate.ColorantName { get; set; } ``` The name of the colorant from the Separation or DeviceN color space, or the process color name. ### Density ```csharp double Datalogics.PDFL.SeparationPlate.Density { get; set; } ``` The density for this ink. The density must be greater than zero. The default is 1.0. ### EPSOutput ```csharp System.IO.Stream Datalogics.PDFL.SeparationPlate.EPSOutput { get; set; } ``` The System.IO.Stream that will receive EPS output for this SeparationPlate. ### Frequency ```csharp double Datalogics.PDFL.SeparationPlate.Frequency { get; set; } ``` The frequency for this ink. The frequency must be greater than zero. The default is 60.0. ### InkType ```csharp InkTypes Datalogics.PDFL.SeparationPlate.InkType { get; set; } ``` The ink type of this ink for trapping. The default is Normal. ### PreviewOption ```csharp SeparationPreviewOptions Datalogics.PDFL.SeparationPlate.PreviewOption { get; set; } ``` How to handle the colorant for a separation preview. The default is EmitPlate. ## Methods ### Dispose ```csharp void Datalogics.PDFL.SeparationPlate.Dispose() ``` **Returns:** `void` --- # SeparationPreviewOptions Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SeparationPreviewOptions **Namespace:** `Datalogics::PDFL` ## Description Specifies how a colorant is handled during a separation preview. ## Values - `EmitColorant = 0`: Emit a plate for this colorant in a separation preview. - `DontEmitColorant = 1`: Don't emit a plate for this colorant for a separation preview. - `ConvertToProcess = 2`: Convert this colorant to a process color for a separation preview. --- # Shading Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Shading ```csharp class Shading : Element ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) ## Description Represents a region shaded with color, as defined by a shading dictionary. A shading pattern defines a gradient fill in a graphic that produces a smooth transition between colors across the area covered by the graphic area. The "sh" paint operator is invoked for the shading object. This does not correspond to a shading dictionary within a PDF pattern. Refer to the Pattern object for shading dictionaries used in PDF patterns. A shading pattern defines a gradient fill in a graphic that produces a smooth transition between colors across the area covered by the graphic area. The "sh" paint operator is invoked for the shading object. This does not correspond to a shading dictionary within a PDF pattern. Refer to the Pattern object for shading dictionaries used in PDF patterns. **Uses types:** [`Clip`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Clip.md), [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md), [`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md), [`GraphicState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GraphicState.md), [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Properties ### BoundingBox ```csharp Rect Datalogics.PDFL.Element.BoundingBox { get; } ``` The bounding box for this element. The bounding box is a rectangle that is guaranteed to encompass the element, but it is not guaranteed to be the smallest box that could contain the element. For example, if the element is a Path that contains an arc, the bounding box encompasses the bezier control points, and not just the curve itself. ### Clip ```csharp Clip Datalogics.PDFL.Element.Clip { get; set; } ``` Gets the current Clip for an Element. ### ColorSpace ```csharp ColorSpace Datalogics.PDFL.Shading.ColorSpace { get; } ``` Get the ColorSpace of the current Shading object. ### GraphicState ```csharp GraphicState Datalogics.PDFL.Shading.GraphicState { get; } ``` Get the graphic state of the current Shading object. May return null if this element does not have a GraphicState. ### Matrix ```csharp Matrix Datalogics.PDFL.Element.Matrix { get; set; } ``` The transformation matrix for the element. ## Methods ### Clone ```csharp Element Datalogics.PDFL.Element.Clone() ``` **Returns:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) The copied element. Makes a copy of the element. Make a copy of an element to obtain a new element that has a distinct set of attributes. Note: TextRun objects may not be cloned. ### Clone ```csharp Element Datalogics.PDFL.Element.Clone(ElementCloneFlags cloneFlags) ``` **Parameters** - `cloneFlags` ([`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md)): Flags that modify the cloning operation. **Returns:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) The copied element. Makes a copy of the element. Make a copy of an element to obtain a new element that has a distinct set of attributes. Note: TextRun objects may not be cloned. ### Dispose ```csharp void Datalogics.PDFL.Element.Dispose() ``` **Returns:** `void` ### Rotate ```csharp void Datalogics.PDFL.Element.Rotate(double theta) ``` **Parameters** - `theta` (`double`): The rotation angle in degrees. **Returns:** `void` Rotate an element by theta degrees counterclockwise using the matrix [ cos T sin T -sin T cos T 0 0 ]. ### Scale ```csharp void Datalogics.PDFL.Element.Scale(double sx, double sy) ``` **Parameters** - `sx` (`double`): The horizontal scale factor. - `sy` (`double`): The vertical scale factor. **Returns:** `void` Scale an element by (sx,sy) units using the matrix [ sx 0 0 sy 0 0 ]. ### Translate ```csharp void Datalogics.PDFL.Element.Translate(double tx, double ty) ``` **Parameters** - `tx` (`double`): The horizontal translation distance in user space units. - `ty` (`double`): The vertical translation distance in user space units. **Returns:** `void` Translate an element by (tx,ty) units using the matrix [ 1 0 0 1 tx ty ]. --- # ShadingPattern Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ShadingPattern ```csharp class ShadingPattern : Pattern ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Pattern`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Pattern.md) **Derived classes:** [`AxialShadingPattern`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/AxialShadingPattern.md) ## Description A shading pattern consists of a smoothly varying gradient between two colors. **Uses types:** [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`ColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorSpace.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Properties ### AntiAlias ```csharp bool Datalogics.PDFL.ShadingPattern.AntiAlias { get; set; } ``` Gets whether anti-aliasing is enabled for the shading. When enabled, the shading function is filtered to prevent aliasing artifacts. ### BackgroundColor ```csharp Color Datalogics.PDFL.ShadingPattern.BackgroundColor { get; set; } ``` Gets the background color of the shading pattern. This color must be in the color space of the shading pattern. If present, it is used to fill the areas that are outside the bounds of the shading object. May be NULL. ### BoundingBox ```csharp Rect Datalogics.PDFL.ShadingPattern.BoundingBox { get; set; } ``` Gets the bounding box of the shading. The coordinates are interpreted in the target coordinate space. If present, provides an additional, temporary clipping boundary to the shading. ### ColorSpace ```csharp ColorSpace Datalogics.PDFL.ShadingPattern.ColorSpace { get; set; } ``` Gets the color space of a shading pattern. This space is restricted to be any space except a Pattern space. ### PDFObject ```csharp PDFObject Datalogics.PDFL.Pattern.PDFObject { get; } ``` Gets the underlying PDF object for this pattern. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Pattern.Dispose() ``` **Returns:** `void` ### ToString ```csharp override string Datalogics.PDFL.ShadingPattern.ToString() ``` **Returns:** `override string` A string describing the shading pattern. Converts the shading pattern to a string representation. --- # SignatureFieldID Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SignatureFieldID **Namespace:** `Datalogics::PDFL` ## Description Digital signature field options ## Values - `SearchForFirstUnsignedField = 0`: Search for the first available signature field, i.e., a field that does not contain a signature. No new signature field is created if none found. Exception raised if not found. - `FieldCosObject = 1`: Cos object of an existing signature field that does not contain a signature. No new signature field is created if not found. Exception raised if not found. - `FullyQualifiedFieldName = 2`: Fully qualified field name of a valid T entry in an existing field dictionary that is expected to contain the digital signature. Refer PDF specification ISO 32000-2:2020, Section 12.7.4.2 for additional information. No new signature field is created if not found. Exception raised if not found. - `CreateFieldWithQualifiedName = 3`: Creates a new signature field to be signed using the T-entry fully qualified field name provided. The signature field created will contain neither parent nor child entries, i.e., the partial field name is the same as the fully qualified field name, per PDF specification ISO 32000-2:2020 Section 12.7.4.2. Field name provided shall not be separated by a period (.) character. Appearance of the generated signature field is determined by widget annotation attributes specified by signatureBoxInfo. If signatureBoxInfo is undefined, the annotation is not drawn, resulting in the creation of an invisible signature field on the first page. --- # SignatureType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SignatureType **Namespace:** `Datalogics::PDFL` ## Description Enumeration to specify fields to display as part of signature appearance. ## Values - `CMS = 0`: Digital signature based on the Cryptographic Message Syntax (CMS) standard. CMS-based digital signatures contain embedded timestamps, per the RFC3161 specification. - `RFC3161 = 1`: Trusted timestamp based on the Time-Stamp Protocol (RFC3161). - `PADES = 2`: PAdES baseline (B-T) digital signature based on the ETSI EN 319 142-1 European Standard. --- # SignDoc Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SignDoc ```csharp class SignDoc : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Implementation of the PDF SignDoc function. Use the SignDoc object to digitally sign a document **Uses types:** [`CancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CancelProc.md), [`CredentialDataFmt`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CredentialDataFmt.md), [`CredentialStorageFmt`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CredentialStorageFmt.md), [`DigestCategory`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/DigestCategory.md), [`DisplayTraits`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/DisplayTraits.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`ProgressMonitor`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ProgressMonitor.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md), [`SignatureFieldID`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SignatureFieldID.md), [`SignatureType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SignatureType.md) ## Constructors ### SignDoc ```csharp Datalogics.PDFL.SignDoc.SignDoc() ``` *constructor* Creates an empty SignDoc object and initializes memory for its parameters. ## Properties ### CredentialDataFormat ```csharp CredentialDataFmt Datalogics.PDFL.SignDoc.CredentialDataFormat { get; set; } ``` Get the value of the credential data format option. ### DigestCategory ```csharp DigestCategory Datalogics.PDFL.SignDoc.DigestCategory { get; set; } ``` Get the value of the digest category. ### DocSignType ```csharp SignatureType Datalogics.PDFL.SignDoc.DocSignType { get; set; } ``` Get the type of signature added to a document. ### FieldID ```csharp SignatureFieldID Datalogics.PDFL.SignDoc.FieldID { get; set; } ``` Get the field identifier used to determine the form field that will contain the digital signature. ### FieldName ```csharp string Datalogics.PDFL.SignDoc.FieldName { get; set; } ``` Get the form field fully qualified name of the form field that contains the digital signature. ### OutputPath ```csharp string Datalogics.PDFL.SignDoc.OutputPath { get; set; } ``` Get Output Path The path to which the file is saved. A path must be specified in case a full save (PDSaveFull) is needed. In case of an incremental save (PDSaveIncremental), newPath should be set to NULL. If a full save (PDSaveFull) is performed and newPath is the same as the file's original path, the new file is saved to a file system determined temporary path. The old file is then deleted and the new file is renamed to newPath. ### SignatureBoxPageNumber ```csharp uint Datalogics.PDFL.SignDoc.SignatureBoxPageNumber { get; set; } ``` Get the page number on which the widget annotation of the signature field is created. ### SignatureBoxRectangle ```csharp Rect Datalogics.PDFL.SignDoc.SignatureBoxRectangle { get; set; } ``` Get the dimension of the annotation rectangle of the signature field being created. ## Methods ### AddDigitalSignature ```csharp void Datalogics.PDFL.SignDoc.AddDigitalSignature(Document document) ``` **Parameters** - `document` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The Document to be digitally signed. **Returns:** `void` Adds a digital signature using the specified credentials. If the document has not been previously signed, signs and saves the entire document. If the document has been previously signed, signs and saves only the portions of the document that have changed. If the document has been previously signed and the path to which the file is saved is NULL or the same as the path specified by the parameter, doc, signs and copies the document, saving only the portions of the document that have changed. ### AddSigPolicy ```csharp int Datalogics.PDFL.SignDoc.AddSigPolicy(string oid) ``` **Parameters** - `oid` (`string`): Object Identifier (OID) of the signature policy to add. **Returns:** `int` - The number of signature policies added to the signature. Add a signature policy to the PAdES signature being generated. Signature policies may be applied to PAdES signatures, only. The signature type must be set to PADES prior to adding a policy. ### AddSigPolicyQualifierURI ```csharp void Datalogics.PDFL.SignDoc.AddSigPolicyQualifierURI(string uri) ``` **Parameters** - `uri` (`string`): URI pointing to the signature policy document. **Returns:** `void` Qualify an existing signature policy with a Signature Policy URI (SPuri) qualifier. A policy must be added via AddSigPolicy prior to calling this method. A signature policy may be qualified by no more than one policy qualifier. ### AddSigPolicyQualifierUserNotice ```csharp void Datalogics.PDFL.SignDoc.AddSigPolicyQualifierUserNotice(string displayText, string org, System.Collections.Generic.IList< System.Int64 > noticeNos) ``` **Parameters** - `displayText` (`string`): Text to display to the user when the signature is verified. - `org` (`string`): Organization that prepared the notice. - `noticeNos` (`System.Collections.Generic.IList< System.Int64 >`): Group of integers that identify textual statements prepared by the organization. **Returns:** `void` Qualify an existing signature policy with a Signature Policy UserNotice (SPUserNotice) qualifier. A policy must be added via AddSigPolicy prior to calling this method. A signature policy may be qualified by no more than one policy qualifier. The displayText and org attributes can be defined independent of each other. However, a valid org attribute must be defined in order to qualify a PAdES signature policy with the noticeNos attribute. ### CreateCancelProc ```csharp void Datalogics.PDFL.SignDoc.CreateCancelProc(CancelProc cancelProc) ``` **Parameters** - `cancelProc` ([`CancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CancelProc.md)): The CancelProc to receive cancel callbacks during signing. **Returns:** `void` Creates and registers a cancel callback for the signing operation. ### CreateProgressMonitor ```csharp void Datalogics.PDFL.SignDoc.CreateProgressMonitor(ProgressMonitor progMon) ``` **Parameters** - `progMon` ([`ProgressMonitor`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ProgressMonitor.md)): The ProgressMonitor to receive progress callbacks during signing. **Returns:** `void` Creates and registers a progress monitor for the signing operation. ### Dispose ```csharp void Datalogics.PDFL.SignDoc.Dispose() ``` **Returns:** `void` ### SetFieldObject ```csharp void Datalogics.PDFL.SignDoc.SetFieldObject(int aValue, int bValue) ``` **Parameters** - `aValue` (`int`): a value of the CosObject. - `bValue` (`int`): b value of the CosObject. **Returns:** `void` Set the form field CosObject option. ### SetNonPfxPassPhrase ```csharp void Datalogics.PDFL.SignDoc.SetNonPfxPassPhrase(string passPhrase, uint passphraseSize, CredentialStorageFmt storageFmt) ``` **Parameters** - `passPhrase` (`string`): Passphrase used to encrypt Non-PFX private key. Should be set to NULL if unencrypted. - `passphraseSize` (`uint`): Passphrase size in bytes. Shall be set to 0 if private key is unencrypted or passphrase is stored on disk. - `storageFmt` ([`CredentialStorageFmt`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CredentialStorageFmt.md)): Storage format for passphrase. **Returns:** `void` Set the passphrase used to decrypt Non-PFX credentials. Note: The passphrase provided must use the exact same character encoding used to encrypt the private key. The application makes no effort whatsoever to re-encode the same. ### SetNonPfxPrivateKey ```csharp void Datalogics.PDFL.SignDoc.SetNonPfxPrivateKey(string privateKey, uint keySize, CredentialStorageFmt storageFmt) ``` **Parameters** - `privateKey` (`string`): Private key. - `keySize` (`uint`): Size of private key in bytes. Shall be set to 0 if key is stored on disk. - `storageFmt` ([`CredentialStorageFmt`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CredentialStorageFmt.md)): Storage format for private key. **Returns:** `void` Set the private key for Non-PFX credentials.. ### SetNonPfxSignerCert ```csharp void Datalogics.PDFL.SignDoc.SetNonPfxSignerCert(string signerCert, uint certSize, CredentialStorageFmt storageFmt) ``` **Parameters** - `signerCert` (`string`): Signer certificate - `certSize` (`uint`): Size of signer certificate in bytes. Shall be set to 0 if certificate is stored on disk. - `storageFmt` ([`CredentialStorageFmt`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CredentialStorageFmt.md)): Storage format for the signer certificate. **Returns:** `void` Set the signer certificate for Non-PFX credentials. ### SetPfxCredentials ```csharp void Datalogics.PDFL.SignDoc.SetPfxCredentials(string credentials, CredentialStorageFmt storageFmt) ``` **Parameters** - `credentials` (`string`): Credentials in PFX/PKCS#12 file format. - `storageFmt` ([`CredentialStorageFmt`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CredentialStorageFmt.md)): Storage format for the signer certificate. (Only OnDisk is allowed for this option) **Returns:** `void` Set PFX/PKCS#12 credentials. ### SetPfxPassPhrase ```csharp void Datalogics.PDFL.SignDoc.SetPfxPassPhrase(string passphrase, uint passphraseSize, CredentialStorageFmt storageFmt) ``` **Parameters** - `passphrase` (`string`): Passphrase used to encrypt PFX/PKCS#12 credentials. Shall be set to NULL if credentials are unencrypted. - `passphraseSize` (`uint`): Passphrase size in bytes. Shall be set to 0 if PFX credentials are unencrypted or passphrase is stored on disk. - `storageFmt` ([`CredentialStorageFmt`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CredentialStorageFmt.md)): Storage format for PFX/PKCS#12 credentials. **Returns:** `void` Set the passphrase used to decrypt PFX/PKCS#12 credentials. Note: The passphrase provided must use the exact same character encoding used to encrypt the PFX credentials. The application makes no effort whatsoever to re-encode the same. ### SetSignerInfo ```csharp void Datalogics.PDFL.SignDoc.SetSignerInfo(string logoFilePath, float logoOpacity, string name, string location, string reason, string contactInfo, DisplayTraits displayTraits) ``` **Parameters** - `logoFilePath` (`string`): Image to display as part of signature appearance. - `logoOpacity` (`float`): Opacity of image to display as part of signature appearance. - `name` (`string`): Name of the person or authority signing the document. - `location` (`string`): CPU host name or physical location of the signing. - `reason` (`string`): Reason for signing the document. - `contactInfo` (`string`): Information provided by the signer to enable recipients to contact signer for signature verification. - `displayTraits` ([`DisplayTraits`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/DisplayTraits.md)): Fields to display as part of signature appearance. **Returns:** `void` Set Signer Info. --- # SmoothFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/SmoothFlags **Namespace:** `Datalogics::PDFL` ## Values - `None = 0`: Do not smooth any drawn elements - `Text = 1`: Draw smooth text. This will cause text to be antialiased when drawn. Recommended for lower-resolution applications such as on-screen viewing at low zoom levels. Equivalent to the Smooth Text: for Monitor option in PDF Viewer rendering preferences. - `LineArt = 2`: Draw smooth line art. This will cause paths (vector line art elements) to be antialiased. Recommended for lower-resolution applications such as on-screen viewing at low zoom levels. - `Image = 4`: Draw smooth image. This will cause raster images to be resampled to match the target imaging resolution using an averaged subsampling algorithm, and will cause images to be antialiased when drawn. Recommended for general PDF viewing applications. - `ImageBicubicResampleAndAntiAlias = 8`: Enhanced image smoothing controls: Draw smooth image and resample using bicubic resampling. This will cause raster images to be resampled to match the target imaging resolution using a bicubic subsampling algorithm, and will cause images to be antialiased when drawn. Recommended for general imaging applications. Rendering with this option takes longer than with the Image smoothing option, but generates higher quality output. - `ImageBicubicResample = 16`: Resample images using bicubic resampling, but do not antialias images. This will cause raster images to be resampled to match the target imaging resolution using a bicubic subsampling algorithm. Recommended for conversion of PDF pages to high-resolution (>= 300dpi) images. Rendering with this option takes longer than with the ImageLinearResample smoothing option, but generates higher quality output. - `ImageLinearResample = 32`: Resample images using linear average subsampling, but do not antialias images. This will cause raster images to be resampled to match the target imaging resolution using a linear average subsampling algorithm. Recommended for conversion of PDF pages to high-resolution (>= 300dpi) images. Rendering with this option is faster than with the ImageBicubicResample smoothing option, but generates lower quality output. - `ImageAntiAliasOnly = 64`: Antialias (smooth) images at low resolutions, but do not resample images when they do not match the target imaging resolution. This is not recommended for most callers. - `TextAntiAliasEnableDDR = 128`: Enhanced text antialiasing controls: Antialias (smooth) text using the DDR sub-pixel antialiasing algorithm. Equivalent to the Smooth Text: for Laptop/LCD Screen option in PDF Viewer rendering preferences. Recommended for zoom factors of 150% or more. - `TextAntiAliasEnablePreview = 256`: Enable special text "preview" rendering and antialiasing for better visual results when generating images at lower resolutions intended for on-screen viewing. This prevents text from looking badly kerned or looking to have poor inter-character spacing. We recommend this for use for viewing applications at zoom levels of 150% or less, though you will want to experiment and decide for yourself. Do not use this for non-viewing applications. Do not scale up or down the rendered image that is generated from drawing a page using this flag - it will look very blurry and unfocused. --- # SquareAnnotation Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SquareAnnotation ```csharp class SquareAnnotation : Annotation ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md) ## Description The square annotation allows a user to display a rectangle on a PDF page. Text associated with the Square Annotation appears in a pop-up window. The size and shape of the rectangle is defined within the Rect entry. **Uses types:** [`AnnotationFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AnnotationFlags.md), [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### SquareAnnotation ```csharp Datalogics.PDFL.SquareAnnotation.SquareAnnotation(Page page, Rect initialRect) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the SquareAnnotation is added. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the annotation's bounds, specified in user space coordinates. Create a new SquareAnnotation at the end of a page's annotation array. To create a SquareAnnotation and place it elsewhere in the page's annotation array, use the version of the constructor that takes an array position. ### SquareAnnotation ```csharp Datalogics.PDFL.SquareAnnotation.SquareAnnotation(Page page, Rect initialRect, int addAfter) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the annotation is added. - `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the annotation's bounds, specified in user space coordinates. - `addAfter` (`int`): Where to add the annotation in the page's annotation array. To add the annotation to the end of the array, pass a value of -2 or use the alternate version of this constructor that does not take an index (this is generally what you should do unless you have a need to place the annotation at a special location in the array). Passing a value of -1 adds the annotation to the beginning of the array. Passing other negative values produces undefined results. Create a new SquareAnnotation at a specific index in the page's annotation array. ## Properties ### AnnotationFeatureLevel ```csharp double Datalogics.PDFL.Annotation.AnnotationFeatureLevel { get; set; } ``` The minimum PDF version necessary to support the features used in this annotation. ### BorderStyle ```csharp string Datalogics.PDFL.SquareAnnotation.BorderStyle { get; set; } ``` The border style. Can be one of: • S - Solid • D - Dashed. The dash pattern is specified as an array (see DashPattern) • B - Beveled • I - Inset • U - Underline Other border styles may be defined in the future. Default is "S" ### BorderStyleDashPattern ```csharp System.Collections.Generic.IList Datalogics.PDFL.SquareAnnotation.BorderStyleDashPattern { get; set; } ``` An array defining a pattern of dashes and gaps to be used in drawing a dashed border (border style D). The dash array is a series of numbers that specify the lengths of alternating dashes and gaps. Lengths must be nonnegative, and are expressed in user space units. Default value is [3] ### BorderStyleWidth ```csharp double Datalogics.PDFL.SquareAnnotation.BorderStyleWidth { get; set; } ``` The border width in points. If this value is 0, no border is drawn. The default is 1.0. ### Color ```csharp Color Datalogics.PDFL.Annotation.Color { get; set; } ``` The color of the annotation. ### Contents ```csharp string Datalogics.PDFL.Annotation.Contents { get; set; } ``` The text contents of the annotation. 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. ### Flags ```csharp AnnotationFlags Datalogics.PDFL.Annotation.Flags { get; set; } ``` The flags for the annotation. ### InteriorColor ```csharp Color Datalogics.PDFL.Annotation.InteriorColor { get; set; } ``` The interior color with which to fill the annotation's rectangle or circle. The color of the border itself can be retrieved from Annotation.Color. ### NormalAppearance ```csharp Form Datalogics.PDFL.Annotation.NormalAppearance { get; set; } ``` The normal appearance of the annotation, represented as a Form XObject. ### Opacity ```csharp double Datalogics.PDFL.Annotation.Opacity { get; set; } ``` The constant opacity value used in painting a Markup annotation. Opacity is a range from 0.0 (fully transparent) to 1.0 (fully opaque). ### OptionalContentMembershipDict ```csharp OptionalContentMembershipDict Datalogics.PDFL.Annotation.OptionalContentMembershipDict { get; set; } ``` The OptionalContentMembershipDict property for this Annotation. Setting this property will attach the Annotation to an OptionalContentMembershipDict; it will then be associated with the OptionalContentGroups and be subject to the VisibilityPolicy and VisibilityExpression of that MembershipDict. By setting this property to null, the Annotation is detached from any OptionalContentMembershipDict. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Annotation.PDFDict { get; } ``` The underlying PDF dictionary for this annotation. Retrieves the PDFDict representation of this annotation object. ### Rect ```csharp Rect Datalogics.PDFL.Annotation.Rect { get; set; } ``` The size and location of the annotation on its page. ### Subtype ```csharp string Datalogics.PDFL.Annotation.Subtype { get; } ``` The annotation's subtype. ### Title ```csharp string Datalogics.PDFL.Annotation.Title { get; set; } ``` The title of the annotation. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Annotation.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Annotation.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### GenerateAppearance ```csharp override Form Datalogics.PDFL.SquareAnnotation.GenerateAppearance() ``` **Returns:** `override Form` A Form representing the visual appearance of this annotation, or null if the appearance could not be generated (e.g. due to an invalid border style). Generate a new appearance stream for this square annotation. Creates an appearance based on the current annotation properties, including color, interior color, border style, and bounding rectangle. The rectangle is drawn within the annotation rectangle. ### HasRichTextData ```csharp bool Datalogics.PDFL.Annotation.HasRichTextData() ``` **Returns:** `bool` true if the annotation contains Rich Text String content. Checks the annotation for Rich Text String content (PDFReference 1.7 Section 8.6.2). Annotations that contain Rich Text String content and do not have a normal appearance set will not be visible when rendering the page. ### IsCurrentlyVisible ```csharp bool Datalogics.PDFL.Annotation.IsCurrentlyVisible(OptionalContentContext occ) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which to check visibility. **Returns:** `bool` true if the annotation is currently visible. Tests whether an annotation is visible in a given optional content context, considering the current ON-OFF states of the optional-content groups in the optional-content dictionary (OCMD) and the dictionary's visibility policy. If the annotation occurs more than once within the content, this method only checks the visibility of the first occurrence of the annotation. This method determines visibility without considering the visbility of the Content object that the annotation belongs to. To determine the visibility of an annotation while taking the Content's visibility into consideration, use the alternate version of this method. ### ToString ```csharp override string Datalogics.PDFL.Annotation.ToString() ``` **Returns:** `override string` A string describing this annotation, including its type and rectangle. Returns a string representation of this annotation. --- # StructElement Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructElement ```csharp class StructElement : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Internal wrapper for a single node in the PDF logical structure tree. Owns a non-owning reference to its CDocument. Exposes type (/S) access, the backing dict (for arbitrary attribute reads/writes), child creation, and marked-content reference insertion. **Referenced by:** [`StructElement`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructElement.md), [`StructTreeRoot`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructTreeRoot.md) **Uses types:** [`Container`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Container.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`StructElement`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructElement.md) ## Properties ### Document ```csharp Document Datalogics.PDFL.StructElement.Document { get; } ``` ### KidCount ```csharp int Datalogics.PDFL.StructElement.KidCount { get; } ``` ### PDFDict ```csharp PDFDict Datalogics.PDFL.StructElement.PDFDict { get; } ``` ### Type ```csharp string Datalogics.PDFL.StructElement.Type { get; } ``` ## Methods ### AddChild ```csharp StructElement Datalogics.PDFL.StructElement.AddChild(string structType) ``` **Parameters** - `structType` (`string`) **Returns:** [`StructElement`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructElement.md) ### AddMarkedContentRef ```csharp void Datalogics.PDFL.StructElement.AddMarkedContentRef(Page page, Container container) ``` **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)) - `container` ([`Container`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Container.md)) **Returns:** `void` Insert a marked-content reference using the given Container. `/StructParents` on the page and the parent tree are wired automatically. ### Dispose ```csharp void Datalogics.PDFL.StructElement.Dispose() ``` **Returns:** `void` ### ParentIsTreeRoot ```csharp bool Datalogics.PDFL.StructElement.ParentIsTreeRoot() ``` **Returns:** `bool` True when this element's immediate parent is the struct tree root. Avoids allocating a CStructElement wrapper just to discard it. --- # StructTreeRoot Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructTreeRoot ```csharp class StructTreeRoot : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Internal wrapper for the root of a PDF logical structure tree. Owns a non-owning reference to its CDocument. The underlying PDF structure tree is owned by the document; this wrapper provides C++ access to catalog-level struct tree operations (add children, access the backing dict). **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`StructElement`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructElement.md) ## Properties ### Document ```csharp Document Datalogics.PDFL.StructTreeRoot.Document { get; } ``` ### KidCount ```csharp int Datalogics.PDFL.StructTreeRoot.KidCount { get; } ``` ### PDFDict ```csharp PDFDict Datalogics.PDFL.StructTreeRoot.PDFDict { get; } ``` ## Methods ### AddChild ```csharp StructElement Datalogics.PDFL.StructTreeRoot.AddChild(string structType) ``` **Parameters** - `structType` (`string`) **Returns:** [`StructElement`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructElement.md) ### Dispose ```csharp void Datalogics.PDFL.StructTreeRoot.Dispose() ``` **Returns:** `void` ### FindElementFromID ```csharp StructElement Datalogics.PDFL.StructTreeRoot.FindElementFromID(string id) ``` **Parameters** - `id` (`string`) **Returns:** [`StructElement`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructElement.md) Element whose /ID matches `id`, or nullptr if none exists. ### GetKid ```csharp StructElement Datalogics.PDFL.StructTreeRoot.GetKid(int index) ``` **Parameters** - `index` (`int`) **Returns:** [`StructElement`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructElement.md) Kid at `index`. The tree root's /K array is restricted to struct elements (not MCRs / OBJRs), so this always returns an element. Caller owns the returned pointer. --- # Style Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Style ```csharp class Style : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Provides access to data about fonts, font sizes, and colors used in a word. **Referenced by:** [`StyleTransition`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StyleTransition.md) **Uses types:** [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md) ## Properties ### Color ```csharp Color Datalogics.PDFL.Style.Color { get; } ``` Gets the style's color. ### FontName ```csharp string Datalogics.PDFL.Style.FontName { get; } ``` Gets the name of the style's font. ### FontSize ```csharp double Datalogics.PDFL.Style.FontSize { get; } ``` Gets the style's font size. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Style.Dispose() ``` **Returns:** `void` ### ToString ```csharp override string Datalogics.PDFL.Style.ToString() ``` **Returns:** `override string` A string in the format "[color=..., fontsize=..., fontname=...]". Returns a string representing the Style's value. The returned value indicates the color, font, and font size of the style. --- # StyleTransition Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StyleTransition ```csharp class StyleTransition : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Represents a style change in a word. A StyleTransition provides information about the character index in the word where the style changes, and the new Style. **Referenced by:** [`Word`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Word.md) **Uses types:** [`Style`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Style.md) ## Properties ### CharIndex ```csharp int Datalogics.PDFL.StyleTransition.CharIndex { get; } ``` The index of the character in the word at which this transition begins. ### Style ```csharp Style Datalogics.PDFL.StyleTransition.Style { get; } ``` The Style that begins at this transition. ## Methods ### Dispose ```csharp void Datalogics.PDFL.StyleTransition.Dispose() ``` **Returns:** `void` ### ToString ```csharp override string Datalogics.PDFL.StyleTransition.ToString() ``` **Returns:** `override string` Returns a string representation of the StyleTransition. --- # TempStoreType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/TempStoreType **Namespace:** `Datalogics::PDFL` ## Description Enumeration for selecting the temporary storage type used by the library. Controls whether temporary files are stored on disk or in memory. ## Values - `Disk = 1`: Library doesn't use in-memory file system - `Memory = 2`: Library use in-memory file system with unlimited memory amount by default --- # Text Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Text ```csharp class Text : Element ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) ## Description A container that represents a series of text elements and characters. A Text object is container that represents both a series of TextRun elements and a series of text characters. Operations can be performed on individual TextRuns within a Text or on individual characters within a Text by specifying the index of the individual TextRun or character. All indices start at 0. **Referenced by:** [`Text`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Text.md) **Uses types:** [`Clip`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Clip.md), [`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md), [`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md), [`GraphicState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GraphicState.md), [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md), [`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md), [`Text`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Text.md), [`TextFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/TextFlags.md), [`TextRun`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextRun.md), [`TextState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextState.md) ## Constructors ### Text ```csharp Datalogics.PDFL.Text.Text() ``` *constructor* Create a new, empty Text object. ## Properties ### BoundingBox ```csharp Rect Datalogics.PDFL.Element.BoundingBox { get; } ``` The bounding box for this element. The bounding box is a rectangle that is guaranteed to encompass the element, but it is not guaranteed to be the smallest box that could contain the element. For example, if the element is a Path that contains an arc, the bounding box encompasses the bezier control points, and not just the curve itself. ### Clip ```csharp Clip Datalogics.PDFL.Element.Clip { get; set; } ``` Gets the current Clip for an Element. ### Matrix ```csharp Matrix Datalogics.PDFL.Element.Matrix { get; set; } ``` The transformation matrix for the element. ### NumberOfCharacters ```csharp int Datalogics.PDFL.Text.NumberOfCharacters { get; } ``` The number of characters in this text element. ### NumberOfRuns ```csharp int Datalogics.PDFL.Text.NumberOfRuns { get; } ``` The number of text runs in this text element. ## Methods ### AddGlyphs ```csharp void Datalogics.PDFL.Text.AddGlyphs(System.Collections.Generic.List< System.Char > glyphIDs, System.Collections.Generic.List< System.Char > uniText, Font font, GraphicState gState, TextState state, Matrix matrix, TextFlags flags) ``` **Parameters** - `glyphIDs` (`System.Collections.Generic.List< System.Char >`): Glyphs IDs in the specified font for adding to the page's content - `uniText` (`System.Collections.Generic.List< System.Char >`): Unicode codes for the specified glyph IDs - `font` ([`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): Font for wich GlyphIDs were specified - `gState` ([`GraphicState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GraphicState.md)): The GraphicsState for Text element - `state` ([`TextState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextState.md)): TextState flags - `matrix` ([`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md)): matrix for the Text element - `flags` ([`TextFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/TextFlags.md)): TextFlags that specifies what kind of text to add **Returns:** `void` Adds Unicode text to a Text object ### AddGlyphs ```csharp void Datalogics.PDFL.Text.AddGlyphs(System.Collections.Generic.List< System.Char > glyphIDs, System.Collections.Generic.List< System.Char > uniText, Font font, GraphicState gState, TextState state, Matrix matrix, TextFlags flags, int index) ``` **Parameters** - `glyphIDs` (`System.Collections.Generic.List< System.Char >`): Glyphs IDs in the specified font to add to the page's content - `uniText` (`System.Collections.Generic.List< System.Char >`): Unicode codes for the specified glyph IDs - `font` ([`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): Font for wich GlyphIDs were specified - `gState` ([`GraphicState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GraphicState.md)): The GraphicsState for Text element - `state` ([`TextState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextState.md)): TextState flags - `matrix` ([`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md)): matrix for the Text element - `flags` ([`TextFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/TextFlags.md)): TextFlags that specifies what kind of text to add - `index` (`int`): The index after which to add the character or text run. **Returns:** `void` Adds Unicode text to a Text object ### AddRun ```csharp void Datalogics.PDFL.Text.AddRun(TextRun run) ``` **Parameters** - `run` ([`TextRun`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextRun.md)): The TextRun to append. **Returns:** `void` Adds a TextRun to the end of this text element. ### AddRun ```csharp void Datalogics.PDFL.Text.AddRun(TextRun run, int index) ``` **Parameters** - `run` ([`TextRun`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextRun.md)): TextRun to be added - `index` (`int`): Index, where TextRun should be placed **Returns:** `void` Adds a TextRun at the specified index. ### ChangeMatrixForTextRun ```csharp void Datalogics.PDFL.Text.ChangeMatrixForTextRun(Matrix newMatrix, int textRunIndex) ``` **Parameters** - `newMatrix` ([`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md)): The new transformation matrix to use for the TextRun. - `textRunIndex` (`int`): The index of a TextRun, relative to the Text object (the first TextRun in the Text object is at index 0). **Returns:** `void` Changes the transformation matrix from user space to the current text space for the specified TextRun. Unlike ChangeTextMatrixForTextRun(), this function does not change fontSize, hScale, and textRise in the textState of PDEText. The H and V values of the matrix indicate the origin of the first character. ### ChangeTextMatrixForTextRun ```csharp void Datalogics.PDFL.Text.ChangeTextMatrixForTextRun(Matrix newMatrix, int textRunIndex) ``` **Parameters** - `newMatrix` ([`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md)): The new transformation matrix to use for the TextRun. - `textRunIndex` (`int`): The index of a TextRun, relative to the Text object (the first TextRun in the Text object is at index 0). **Returns:** `void` Changes the transformation matrix from user space to the current text space for the specified TextRun. The H and V values of the matrix indicate the origin of the first character. ### Clone ```csharp new Text Datalogics.PDFL.Text.Clone() ``` **Returns:** `new Text` The copied text. Makes a copy of the text. Make a copy of an text to obtain a new text that has a distinct set of attributes. ### Clone ```csharp new Text Datalogics.PDFL.Text.Clone(ElementCloneFlags cloneFlags) ``` **Parameters** - `cloneFlags` ([`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md)): Flags that modify the cloning operation. **Returns:** `new Text` The copied text. Makes a copy of the text. Make a copy of an text to obtain a new text that has a distinct set of attributes. ### ColorConvert ```csharp Text Datalogics.PDFL.Text.ColorConvert(Document document, ColorProfile prof, RenderIntent intent, bool embed) ``` **Parameters** - `document` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document the element belongs to. - `prof` ([`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md)): The ICC ColorProfile to be applied. - `intent` ([`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md)): The ICC Rendering Intent for the ColorProfile - `embed` (`bool`): If true, embed the color space and make the object calibrated. If it is false and the target profile is CMYK, RGB, or Gray, the colors space of the resulting object, after conversion, will be DeviceCMYK, DeviceRGB, or DeviceGray, respectively. **Returns:** [`Text`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Text.md) A new Text object with the applied ICC ColorProfile. Applies the specified ICC ColorProfile to the Text object ### Dispose ```csharp void Datalogics.PDFL.Element.Dispose() ``` **Returns:** `void` ### FindTextRunIndexForCharacter ```csharp int Datalogics.PDFL.Text.FindTextRunIndexForCharacter(int characterIndex) ``` **Parameters** - `characterIndex` (`int`): The index of a character, relative to the Text object (the first character in the Text object is at index 0). **Returns:** `int` The index of the TextRun that contains the character specified by characterIndex. Finds the index of the TextRun that contains the nth character in a Text object. ### GetAdvanceForCharacter ```csharp Point Datalogics.PDFL.Text.GetAdvanceForCharacter(int characterIndex) ``` **Parameters** - `characterIndex` (`int`): The index of a character, relative to the Text object (the first character in the Text object is at index 0). **Returns:** [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md) A value specifying both the horizontal and vertical components of the advance width of a character in user space. Gets the advance width of a character, in user space. The advance width is the amount by which the current point advances when the character is drawn. Advance width may be horizontal or vertical, depending on the writing style. Thus, the return value has both a horizontal and a vertical component. ### GetAdvanceForTextRun ```csharp Point Datalogics.PDFL.Text.GetAdvanceForTextRun(int textRunIndex) ``` **Parameters** - `textRunIndex` (`int`): The index of a TextRun, relative to the Text object (the first TextRun in the Text object is at index 0). **Returns:** [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md) A value specifying both the horizontal and vertical components of the advance width of a TextRun in user space. Gets the advance width of a TextRun, in user space. The advance width is the amount by which the current point advances when the TextRun is drawn. Advance width may be horizontal or vertical, depending on the writing style. Thus, the return value has both a horizontal and a vertical component. ### GetBoundingBoxForCharacter ```csharp Rect Datalogics.PDFL.Text.GetBoundingBoxForCharacter(int characterIndex) ``` **Parameters** - `characterIndex` (`int`): The index of a character, relative to the Text object (the first character in the Text object is at index 0) **Returns:** [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) A Rect specifying the bounding box for the character. The bounding box for a character in this text element. ### GetRun ```csharp TextRun Datalogics.PDFL.Text.GetRun(int index) ``` **Parameters** - `index` (`int`): The zero-based index of the TextRun to retrieve. **Returns:** [`TextRun`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextRun.md) The TextRun at the specified index. Obtains the TextRun at the specified index. ### GetTextMatrixForCharacter ```csharp Matrix Datalogics.PDFL.Text.GetTextMatrixForCharacter(int characterIndex) ``` **Parameters** - `characterIndex` (`int`): The index of a character, relative to the Text object (the first character in the Text object is at index 0). **Returns:** [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md) The transformation matrix for the character specified by characterIndex. Gets the transformation matrix from user space to the current text space for the specified character. The H and V values of the matrix indicate the origin of the first character. ### GetTextMatrixForTextRun ```csharp Matrix Datalogics.PDFL.Text.GetTextMatrixForTextRun(int textRunIndex) ``` **Parameters** - `textRunIndex` (`int`): The index of a TextRun, relative to the Text object (the first TextRun in the Text object is at index 0). **Returns:** [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md) The transformation matrix for the TextRun specified by TextRunIndex. Gets the transformation matrix from user space to the current text space for the specified TextRun. The H and V values of the matrix indicate the origin of the first character. ### PointIntersectsCharacter ```csharp bool Datalogics.PDFL.Text.PointIntersectsCharacter(Point p, int index) ``` **Parameters** - `p` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): The point to test, in user space coordinates. - `index` (`int`): The index of the character. The first character in the Text has an index of 0. **Returns:** `bool` true if the point is on the character, false if the point is not on the character. Tests whether a point is on a specified character within this Text object. ### PointIntersectsTextRun ```csharp bool Datalogics.PDFL.Text.PointIntersectsTextRun(Point p, int index) ``` **Parameters** - `p` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): The point to test, in user space coordinates. - `index` (`int`): The index of the TextRun. The first TextRun in the Text has an index of 0. **Returns:** `bool` true if the point is on the TextRun, false if the point is not on the TextRun. Tests whether a point is on a specified TextRun within this Text object. ### RectIntersectsCharacter ```csharp bool Datalogics.PDFL.Text.RectIntersectsCharacter(Rect r, int index) ``` **Parameters** - `r` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): The rect to test, in user space coordinates. - `index` (`int`): The index of the character. The first character in the Text has an index of 0. **Returns:** `bool` true if any part of the rectangle is on the character, false if no part of the rectangle is on the character. Tests whether any part of a rectangle is on a specified character within this Text object. ### RectIntersectsTextRun ```csharp bool Datalogics.PDFL.Text.RectIntersectsTextRun(Rect r, int index) ``` **Parameters** - `r` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): The rect to test, in user space coordinates. - `index` (`int`): The index of the TextRun. The first TextRun in the Text has an index of 0. **Returns:** `bool` true if any part of the rectangle is on the TextRun, false if no part of the rectangle is on the TextRun. Tests whether any part of a rectangle is on a specified TextRun within this Text object. ### RemoveRuns ```csharp void Datalogics.PDFL.Text.RemoveRuns(int index, int count) ``` **Parameters** - `index` (`int`): Start position of range to delete - `count` (`int`): Count of TextRuns to delete **Returns:** `void` Removes a count of TextRuns, starting from index ### Rotate ```csharp void Datalogics.PDFL.Element.Rotate(double theta) ``` **Parameters** - `theta` (`double`): The rotation angle in degrees. **Returns:** `void` Rotate an element by theta degrees counterclockwise using the matrix [ cos T sin T -sin T cos T 0 0 ]. ### Scale ```csharp void Datalogics.PDFL.Element.Scale(double sx, double sy) ``` **Parameters** - `sx` (`double`): The horizontal scale factor. - `sy` (`double`): The vertical scale factor. **Returns:** `void` Scale an element by (sx,sy) units using the matrix [ sx 0 0 sy 0 0 ]. ### SplitTextRunAtCharacter ```csharp void Datalogics.PDFL.Text.SplitTextRunAtCharacter(int splitLocation) ``` **Parameters** - `splitLocation` (`int`): The split location, relative to the Text object. **Returns:** `void` Splits the TextRun containing the character at the specified location into two contiguous TextRuns. The character at the specified index will be part of the first TextRun. ### Translate ```csharp void Datalogics.PDFL.Element.Translate(double tx, double ty) ``` **Parameters** - `tx` (`double`): The horizontal translation distance in user space units. - `ty` (`double`): The vertical translation distance in user space units. **Returns:** `void` Translate an element by (tx,ty) units using the matrix [ 1 0 0 1 tx ty ]. --- # TextFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/TextFlags **Namespace:** `Datalogics::PDFL` ## Description Flags that control how text operations address text within a Text object. ## Values - `TextRun = 1`: Operate on a text run (a contiguous sequence of characters sharing the same attributes). - `TextChar = 2`: Operate on an individual character within the text. - `TextPageSpace = 4`: Return results in page space coordinates rather than text space coordinates. - `TextGetBounds = 8`: Return the bounding box of the text. --- # TextMarkupAnnotation Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextMarkupAnnotation ```csharp class TextMarkupAnnotation : Annotation ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md) **Derived classes:** [`HighlightAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/HighlightAnnotation.md), [`UnderlineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/UnderlineAnnotation.md) ## Description Annotations that appears as highlighted content when added to a PDF file. Text markup annotations appear as highlights, underlines, or strikeouts when added to a PDF document in a PDF Viewer. When the edited PDF file is opened the markups appear in a pop-up window containing the text of the associated note. **Uses types:** [`AnnotationFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AnnotationFlags.md), [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`Quad`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Properties ### AnnotationFeatureLevel ```csharp double Datalogics.PDFL.Annotation.AnnotationFeatureLevel { get; set; } ``` The minimum PDF version necessary to support the features used in this annotation. ### Color ```csharp Color Datalogics.PDFL.Annotation.Color { get; set; } ``` The color of the annotation. ### Contents ```csharp string Datalogics.PDFL.Annotation.Contents { get; set; } ``` The text contents of the annotation. 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. ### Flags ```csharp AnnotationFlags Datalogics.PDFL.Annotation.Flags { get; set; } ``` The flags for the annotation. ### InteriorColor ```csharp Color Datalogics.PDFL.Annotation.InteriorColor { get; set; } ``` The interior color with which to fill the annotation's rectangle or circle. The color of the border itself can be retrieved from Annotation.Color. ### NormalAppearance ```csharp Form Datalogics.PDFL.Annotation.NormalAppearance { get; set; } ``` The normal appearance of the annotation, represented as a Form XObject. ### Opacity ```csharp double Datalogics.PDFL.Annotation.Opacity { get; set; } ``` The constant opacity value used in painting a Markup annotation. Opacity is a range from 0.0 (fully transparent) to 1.0 (fully opaque). ### OptionalContentMembershipDict ```csharp OptionalContentMembershipDict Datalogics.PDFL.Annotation.OptionalContentMembershipDict { get; set; } ``` The OptionalContentMembershipDict property for this Annotation. Setting this property will attach the Annotation to an OptionalContentMembershipDict; it will then be associated with the OptionalContentGroups and be subject to the VisibilityPolicy and VisibilityExpression of that MembershipDict. By setting this property to null, the Annotation is detached from any OptionalContentMembershipDict. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Annotation.PDFDict { get; } ``` The underlying PDF dictionary for this annotation. Retrieves the PDFDict representation of this annotation object. ### Quads ```csharp System.Collections.Generic.IList Datalogics.PDFL.TextMarkupAnnotation.Quads { get; set; } ``` A list of quads to mark. Each quad encompasses a word or group of contiguous words in the text underlying the annotation. ### Rect ```csharp Rect Datalogics.PDFL.Annotation.Rect { get; set; } ``` The size and location of the annotation on its page. ### Subtype ```csharp string Datalogics.PDFL.Annotation.Subtype { get; } ``` The annotation's subtype. ### Title ```csharp string Datalogics.PDFL.Annotation.Title { get; set; } ``` The title of the annotation. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Annotation.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Annotation.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### GenerateAppearance ```csharp virtual Form Datalogics.PDFL.Annotation.GenerateAppearance() ``` **Returns:** [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md) A Form representing the visual appearance, or null if the appearance could not be generated. Generate a new appearance stream with the current annotation properties. The resulting Form can then be used to set the annotation's appearance, such as by calling SetNormalAppearance. ### GetAnnotatedText ```csharp string Datalogics.PDFL.TextMarkupAnnotation.GetAnnotatedText(bool splitLines) ``` **Parameters** - `splitLines` (`bool`): If true, text corresponding to each quadrilateral will be separated by CRLF characters. If false, text corresponding to each quadrilateral will be separated by spaces. **Returns:** `string` The text marked by the annotation. The text that is marked by the annotation. Marked text is defined as text which falls within one or more of the quadrilaterals specified by the annotation's QuadPoints entry. If the annotation marks partial words, only those portions of the word that are bounded within the QuadPoints array will be returned. If the annotation marks partial characters, the characters that fall partially within the annotation bounds may not be returned. ### HasRichTextData ```csharp bool Datalogics.PDFL.Annotation.HasRichTextData() ``` **Returns:** `bool` true if the annotation contains Rich Text String content. Checks the annotation for Rich Text String content (PDFReference 1.7 Section 8.6.2). Annotations that contain Rich Text String content and do not have a normal appearance set will not be visible when rendering the page. ### IsCurrentlyVisible ```csharp bool Datalogics.PDFL.Annotation.IsCurrentlyVisible(OptionalContentContext occ) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which to check visibility. **Returns:** `bool` true if the annotation is currently visible. Tests whether an annotation is visible in a given optional content context, considering the current ON-OFF states of the optional-content groups in the optional-content dictionary (OCMD) and the dictionary's visibility policy. If the annotation occurs more than once within the content, this method only checks the visibility of the first occurrence of the annotation. This method determines visibility without considering the visbility of the Content object that the annotation belongs to. To determine the visibility of an annotation while taking the Content's visibility into consideration, use the alternate version of this method. ### ToString ```csharp override string Datalogics.PDFL.Annotation.ToString() ``` **Returns:** `override string` A string describing this annotation, including its type and rectangle. Returns a string representation of this annotation. --- # TextRenderMode Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/TextRenderMode **Namespace:** `Datalogics::PDFL` ## Description Text rendering mode determines whether text shown will have glyph outlines stroked, filled, used as a clipping path boundary, or feature some combination of those three values. Text may also be hidden (invisible). Fill sets the color inside an object. Stroke sets the color of the line drawn around that object. With a PDF file, clipping paths define closed shapes, lines, and boundaries for clip art or graphics, and they define filled areas within graphics. A clipping path can be used to edit a graphic design by removing part of the art, so that only the shapes outlined by the path appear. You could use a clipping path to remove the background in a photo or superimpose text on an image. ## Values - `Fill = 0`: Fill the text glyphs. - `Stroke = 1`: Stroke the outlines of the text glyphs. - `FillThenStroke = 2`: Fill the text glyphs, then stroke their outlines. - `Invisible = 3`: Invisible text: neither filled nor stroked. - `FillAndAddToClipPath = 4`: Fill the text glyphs and add them to the clipping path. - `StrokeAndAddToClipPath = 5`: Stroke the outlines of the text glyphs and add them to the clipping path. - `FillThenStrokeAndAddToClipPath = 6`: Fill the text glyphs, then stroke their outlines, and add them to the clipping path. - `InvisibleAddToClipPath = 7`: Invisible text: neither filled nor stroked, but added to the clipping path. --- # TextRun Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextRun ```csharp class TextRun : Element ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) ## Description Represents one or more contiguous characters in a text object. All the characters contained within a text run have the same style, color, font, and size. **Referenced by:** [`Text`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Text.md) **Uses types:** [`Clip`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Clip.md), [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md), [`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md), [`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md), [`GraphicState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GraphicState.md), [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md), [`TextState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextState.md) ## Constructors ### TextRun ```csharp Datalogics.PDFL.TextRun.TextRun(string text, Font font, GraphicState gstate, TextState tstate, Matrix matrix) ``` *constructor* **Parameters** - `text` (`string`): The text content for this run. - `font` ([`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md)): The font to use for rendering the text. - `gstate` ([`GraphicState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GraphicState.md)): The graphic state (colors, line width, etc.) for this text run. - `tstate` ([`TextState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextState.md)): The text state (character spacing, word spacing, font size, etc.) for this text run. - `matrix` ([`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md)): The transformation matrix positioning this text run in user space. Creates a new TextRun with the specified text, font, graphic state, text state, and matrix. ## Properties ### Advance ```csharp double Datalogics.PDFL.TextRun.Advance { get; } ``` Deprecated, use Text.GetAdvanceForTextRun(int textRunIndex) instead. This version does not indicate the direction of the advance width. The advance width of this run of text, in user space. The advance width is the amount by which the current point advances when the text run is drawn. ### BoundingBox ```csharp Rect Datalogics.PDFL.Element.BoundingBox { get; } ``` The bounding box for this element. The bounding box is a rectangle that is guaranteed to encompass the element, but it is not guaranteed to be the smallest box that could contain the element. For example, if the element is a Path that contains an arc, the bounding box encompasses the bezier control points, and not just the curve itself. ### Clip ```csharp Clip Datalogics.PDFL.Element.Clip { get; set; } ``` Gets the current Clip for an Element. ### Font ```csharp Font Datalogics.PDFL.TextRun.Font { get; set; } ``` The font used to render this TextRun. ### GraphicState ```csharp GraphicState Datalogics.PDFL.TextRun.GraphicState { get; set; } ``` The graphic state (colors, line width, etc.) of the text run. May return null if this element does not have a GraphicState. ### Matrix ```csharp Matrix Datalogics.PDFL.Element.Matrix { get; set; } ``` The transformation matrix for the element. ### RawText ```csharp System.Byte [] Datalogics.PDFL.TextRun.RawText { get; } ``` The raw, un-interpreted text as character codes of this TextRun. ### Text ```csharp string Datalogics.PDFL.TextRun.Text { get; set; } ``` The Unicode text content of this TextRun. ### TextState ```csharp TextState Datalogics.PDFL.TextRun.TextState { get; } ``` The text state parameters (character spacing, word spacing, font size, etc.) of this TextRun. ## Methods ### Clone ```csharp Element Datalogics.PDFL.Element.Clone() ``` **Returns:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) The copied element. Makes a copy of the element. Make a copy of an element to obtain a new element that has a distinct set of attributes. Note: TextRun objects may not be cloned. ### Clone ```csharp Element Datalogics.PDFL.Element.Clone(ElementCloneFlags cloneFlags) ``` **Parameters** - `cloneFlags` ([`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md)): Flags that modify the cloning operation. **Returns:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md) The copied element. Makes a copy of the element. Make a copy of an element to obtain a new element that has a distinct set of attributes. Note: TextRun objects may not be cloned. ### Dispose ```csharp void Datalogics.PDFL.Element.Dispose() ``` **Returns:** `void` ### Rotate ```csharp void Datalogics.PDFL.Element.Rotate(double theta) ``` **Parameters** - `theta` (`double`): The rotation angle in degrees. **Returns:** `void` Rotate an element by theta degrees counterclockwise using the matrix [ cos T sin T -sin T cos T 0 0 ]. ### Scale ```csharp void Datalogics.PDFL.Element.Scale(double sx, double sy) ``` **Parameters** - `sx` (`double`): The horizontal scale factor. - `sy` (`double`): The vertical scale factor. **Returns:** `void` Scale an element by (sx,sy) units using the matrix [ sx 0 0 sy 0 0 ]. ### Translate ```csharp void Datalogics.PDFL.Element.Translate(double tx, double ty) ``` **Parameters** - `tx` (`double`): The horizontal translation distance in user space units. - `ty` (`double`): The vertical translation distance in user space units. **Returns:** `void` Translate an element by (tx,ty) units using the matrix [ 1 0 0 1 tx ty ]. --- # TextState Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextState ```csharp class TextState : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description The text state includes parameters that affect text. These parameters include character and word spacing, font, font size, and horizontal scale. **Referenced by:** [`Text`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Text.md), [`TextRun`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextRun.md) **Uses types:** [`TextRenderMode`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/TextRenderMode.md) ## Constructors ### TextState ```csharp Datalogics.PDFL.TextState.TextState() ``` *constructor* Create a default text state ## Properties ### CharacterSpacing ```csharp double Datalogics.PDFL.TextState.CharacterSpacing { get; set; } ``` The current character spacing (corresponding to the Tc operator), in unscaled text space units. ### FontSize ```csharp double Datalogics.PDFL.TextState.FontSize { get; set; } ``` The current font size (corresponding to the Tf operator). ### HScale ```csharp double Datalogics.PDFL.TextState.HScale { get; set; } ``` The current horizontal scaling (corresponding to the Tz operator), as a percentage of the normal glyph width. Default is 100. ### RenderMode ```csharp TextRenderMode Datalogics.PDFL.TextState.RenderMode { get; set; } ``` The current text rendering mode (corresponding to the Tr operator). ### TextRise ```csharp double Datalogics.PDFL.TextState.TextRise { get; set; } ``` The current text rise (corresponding to the Ts operator), in unscaled text space units. ### WordSpacing ```csharp double Datalogics.PDFL.TextState.WordSpacing { get; set; } ``` The current word spacing (corresponding to the Tw operator), in unscaled text space units. ## Methods ### Dispose ```csharp void Datalogics.PDFL.TextState.Dispose() ``` **Returns:** `void` --- # TIFFByteOrder Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/TIFFByteOrder **Namespace:** `Datalogics::PDFL` ## Description TIFF Byte Order values describing the byte order used within a file. ## Values - `BigEndian = 0`: Use Big Endian order (Motorola). - `LittleEndian = 1`: Use Little Endian order (Intel). - `Host = 2`: Use the host machine's Endian order. --- # UnderlineAnnotation Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/UnderlineAnnotation ```csharp class UnderlineAnnotation : TextMarkupAnnotation ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`TextMarkupAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/TextMarkupAnnotation.md) ## Description A type of text markup annotation, for underlining text. Text markup annotations added to a PDF file appear as highlights, underlines, or strikeouts. The Underline Annotation appears PDF document as underlined text when the documnent is opened in a PDF Viewer. **Uses types:** [`AnnotationFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/AnnotationFlags.md), [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`Form`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Form.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentMembershipDict.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md), [`Quad`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### UnderlineAnnotation ```csharp Datalogics.PDFL.UnderlineAnnotation.UnderlineAnnotation(Page page, int addAfter, System.Collections.Generic.IList< Quad > quadList) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the UnderlineAnnotation is added. - `addAfter` (`int`): Where to add the annotation in the page's annotation array. To add the annotation to the end of the array, pass a value of -2 or use the alternate version of this constructor that does not take an index (this is generally what you should do unless you have a need to place the annotation at a special location in the array). Passing a value of -1 adds the annotation to the beginning of the array. Passing other negative values produces undefined results. - `quadList` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A list of quads to underline. Each quad encompasses a word or group of contiguous words in the text underlying the annotation. Create a new UnderlineAnnotation at a specific index in the page's annotation array. ### UnderlineAnnotation ```csharp Datalogics.PDFL.UnderlineAnnotation.UnderlineAnnotation(Page page, System.Collections.Generic.IList< Quad > quadList) ``` *constructor* **Parameters** - `page` ([`Page`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Page.md)): The page to which the UnderlineAnnotation is added. - `quadList` ([`System.Collections.Generic.IList< Quad >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md)): A list of quads to underline. Each quad encompasses a word or group of contiguous words in the text underlying the annotation. Create a new UnderlineAnnotation at the end of a page's annotation array. To create a FreeTextAnnotation and place it elsewhere in the page's annotation array, use the version of the constructor that takes an array position. ## Properties ### AnnotationFeatureLevel ```csharp double Datalogics.PDFL.Annotation.AnnotationFeatureLevel { get; set; } ``` The minimum PDF version necessary to support the features used in this annotation. ### Color ```csharp Color Datalogics.PDFL.Annotation.Color { get; set; } ``` The color of the annotation. ### Contents ```csharp string Datalogics.PDFL.Annotation.Contents { get; set; } ``` The text contents of the annotation. 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. ### Flags ```csharp AnnotationFlags Datalogics.PDFL.Annotation.Flags { get; set; } ``` The flags for the annotation. ### InteriorColor ```csharp Color Datalogics.PDFL.Annotation.InteriorColor { get; set; } ``` The interior color with which to fill the annotation's rectangle or circle. The color of the border itself can be retrieved from Annotation.Color. ### NormalAppearance ```csharp Form Datalogics.PDFL.Annotation.NormalAppearance { get; set; } ``` The normal appearance of the annotation, represented as a Form XObject. ### Opacity ```csharp double Datalogics.PDFL.Annotation.Opacity { get; set; } ``` The constant opacity value used in painting a Markup annotation. Opacity is a range from 0.0 (fully transparent) to 1.0 (fully opaque). ### OptionalContentMembershipDict ```csharp OptionalContentMembershipDict Datalogics.PDFL.Annotation.OptionalContentMembershipDict { get; set; } ``` The OptionalContentMembershipDict property for this Annotation. Setting this property will attach the Annotation to an OptionalContentMembershipDict; it will then be associated with the OptionalContentGroups and be subject to the VisibilityPolicy and VisibilityExpression of that MembershipDict. By setting this property to null, the Annotation is detached from any OptionalContentMembershipDict. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Annotation.PDFDict { get; } ``` The underlying PDF dictionary for this annotation. Retrieves the PDFDict representation of this annotation object. ### Quads ```csharp System.Collections.Generic.IList Datalogics.PDFL.TextMarkupAnnotation.Quads { get; set; } ``` A list of quads to mark. Each quad encompasses a word or group of contiguous words in the text underlying the annotation. ### Rect ```csharp Rect Datalogics.PDFL.Annotation.Rect { get; set; } ``` The size and location of the annotation on its page. ### Subtype ```csharp string Datalogics.PDFL.Annotation.Subtype { get; } ``` The annotation's subtype. ### Title ```csharp string Datalogics.PDFL.Annotation.Title { get; set; } ``` The title of the annotation. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Annotation.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Annotation.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### GenerateAppearance ```csharp override Form Datalogics.PDFL.UnderlineAnnotation.GenerateAppearance() ``` **Returns:** `override Form` A new Form object representing the underline appearance. The caller takes ownership of the returned object. Generate a new appearance stream for this underline annotation. Creates a Form containing stroked line paths for each quad in the annotation. The underline width is based on the font size of the text found within each quad, and the annotation's color is used as the stroke color. ### GetAnnotatedText ```csharp string Datalogics.PDFL.TextMarkupAnnotation.GetAnnotatedText(bool splitLines) ``` **Parameters** - `splitLines` (`bool`): If true, text corresponding to each quadrilateral will be separated by CRLF characters. If false, text corresponding to each quadrilateral will be separated by spaces. **Returns:** `string` The text marked by the annotation. The text that is marked by the annotation. Marked text is defined as text which falls within one or more of the quadrilaterals specified by the annotation's QuadPoints entry. If the annotation marks partial words, only those portions of the word that are bounded within the QuadPoints array will be returned. If the annotation marks partial characters, the characters that fall partially within the annotation bounds may not be returned. ### HasRichTextData ```csharp bool Datalogics.PDFL.Annotation.HasRichTextData() ``` **Returns:** `bool` true if the annotation contains Rich Text String content. Checks the annotation for Rich Text String content (PDFReference 1.7 Section 8.6.2). Annotations that contain Rich Text String content and do not have a normal appearance set will not be visible when rendering the page. ### IsCurrentlyVisible ```csharp bool Datalogics.PDFL.Annotation.IsCurrentlyVisible(OptionalContentContext occ) ``` **Parameters** - `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which to check visibility. **Returns:** `bool` true if the annotation is currently visible. Tests whether an annotation is visible in a given optional content context, considering the current ON-OFF states of the optional-content groups in the optional-content dictionary (OCMD) and the dictionary's visibility policy. If the annotation occurs more than once within the content, this method only checks the visibility of the first occurrence of the annotation. This method determines visibility without considering the visbility of the Content object that the annotation belongs to. To determine the visibility of an annotation while taking the Content's visibility into consideration, use the alternate version of this method. ### ToString ```csharp override string Datalogics.PDFL.Annotation.ToString() ``` **Returns:** `override string` A string describing this annotation, including its type and rectangle. Returns a string representation of this annotation. --- # URIAction Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/URIAction ```csharp class URIAction : Action ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** [`Action`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Action.md) ## Description A text string, typically a hyperlink. A Uniform Resource Identifier (URI) is a text string that identifies a resource on the Internet, typically a hyperlink to a web page. A URI Action within a PDF file allows a reader to click on a hyperlink and open a separate web page or another PDF or other kind of file accessed through a web link. **Uses types:** [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md) ## Constructors ### URIAction ```csharp Datalogics.PDFL.URIAction.URIAction(string URIstring, bool useMap) ``` *constructor* **Parameters** - `URIstring` (`string`): String for the URI - `useMap` (`bool`): Send mouse position with the URI General constructor ## Properties ### IsMap ```csharp bool Datalogics.PDFL.URIAction.IsMap { get; set; } ``` Whether to include mouse coordinates with the URI. When true, the position of the mouse click that triggered the action is appended to the URI as a query parameter. ### PDFDict ```csharp PDFDict Datalogics.PDFL.Action.PDFDict { get; } ``` Retrieve the PDFObject representation of this object. ### Subtype ```csharp string Datalogics.PDFL.Action.Subtype { get; } ``` The action's subtype. ### URI ```csharp string Datalogics.PDFL.URIAction.URI { get; set; } ``` The URI string for this action. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Action.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.Action.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.Action.ToString() ``` **Returns:** `override string` A string describing this Action. Returns a string representation of this Action. The string includes the action's subtype. --- # VerticalAlignment Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/VerticalAlignment **Namespace:** `Datalogics::PDFL` ## Description Specification of vertical alignment options. ## Values - `Top = 0`: Align content to the top edge. - `Center = 1`: Center content vertically. - `Bottom = 2`: Align content to the bottom edge. --- # ViewDestination Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ViewDestination ```csharp class ViewDestination : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Represents a particular view of a page in a document. A destination describes a place in the PDF document where the user will be taken in response to clicking a hyperlink. The destination defines where a bookmark or hyperlink points to. The ViewDestination contains a reference to a page, a place (rectangle) on that page, and information specifying how to adjust the view to fit the window's size and shape. **Referenced by:** [`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md), [`GoToAction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GoToAction.md), [`LinkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LinkAnnotation.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFArray`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFArray.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md) ## Constructors ### ViewDestination ```csharp Datalogics.PDFL.ViewDestination.ViewDestination(Document doc, int pageNum, string fitType, Rect r, double zoom) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): Containing document - `pageNum` (`int`): Target page number - `fitType` (`string`): Fit Type must be: "XYZ", "Fit", "FitH", "FitV", "FitR", "FitB", "FitBH", or "FitBV". - `r` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): Target rectangle - `zoom` (`double`): Zoom level General purpose constructor: construct with all elements **Exceptions** - `ApplicationException`: fitType could not be converted to a legal fit type atom. ## Properties ### DestRect ```csharp Rect Datalogics.PDFL.ViewDestination.DestRect { get; set; } ``` The destination rectangle. Coordinates with a value of NullValue indicate that the corresponding coordinate is not specified in the destination. ### FitType ```csharp string Datalogics.PDFL.ViewDestination.FitType { get; set; } ``` The fit type describing how the destination page is displayed. The fit type determines how the page content is fitted into the window. Valid fit types are: "XYZ", "Fit", "FitH", "FitV", "FitR", "FitB", "FitBH", and "FitBV". **Exceptions** - `ApplicationException`: fitType could not be converted to a legal fit type atom. ### PDFArray ```csharp PDFArray Datalogics.PDFL.ViewDestination.PDFArray { get; } ``` Retrieve the PDFArray representation of this ViewDestination. ### PageNumber ```csharp int Datalogics.PDFL.ViewDestination.PageNumber { get; set; } ``` The page number of the destination. ### Zoom ```csharp double Datalogics.PDFL.ViewDestination.Zoom { get; set; } ``` The zoom factor for the destination. A value of NullValue indicates that the zoom factor is not specified. ## Fields ### CViewDestination_NullValue ```csharp static const double Datalogics.PDFL.ViewDestination.CViewDestination_NullValue ``` *static* Constant used for "null" values in destination rectangles or zoom. ### NULL_VALUE ```csharp static const double Datalogics.PDFL.ViewDestination.NULL_VALUE ``` *static* ### NullValue ```csharp static const double Datalogics.PDFL.ViewDestination.NullValue ``` *static* ## Methods ### Dispose ```csharp void Datalogics.PDFL.ViewDestination.Dispose() ``` **Returns:** `void` ### Equals ```csharp override bool Datalogics.PDFL.ViewDestination.Equals(object obj) ``` **Parameters** - `obj` (`object`) **Returns:** `override bool` ### ToString ```csharp override string Datalogics.PDFL.ViewDestination.ToString() ``` **Returns:** `override string` A formatted string describing this ViewDestination. Return a string representation of the ViewDestination. The string includes the page number, fit type, destination rectangle, and zoom factor. --- # VisibilityPolicy Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/VisibilityPolicy **Namespace:** `Datalogics::PDFL` ## Values - `AllOn = 0`: Display if all OptionalContentGroups in this OptionalContentMembershipDict are ON - `AnyOn = 1`: Display if at least one OptionalContentGroup in this OptionalContentMembershipDict is ON - `AnyOff = 2`: Display if at least one OptionalContentGroup in this OptionalContentMembershipDict is OFF - `AllOff = 3`: Display if all OptionalContentGroups in this OptionalContentMembershipDict are OFF --- # WatermarkDrawOption Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WatermarkDrawOption **Namespace:** `Datalogics::PDFL` ## Description Specifies how a watermark should be drawn in a PDF document. Controls whether the watermark is rendered as an annotation or as a form XObject within the page content stream. The "Try" variants attempt the specified method but may fall back if it is not possible. ## Values - `TryAnnotation = 0`: Try to draw the watermark as an annotation; may fall back to another method. - `TryFormXObject = 1`: Try to draw the watermark as a form XObject; may fall back to another method. - `Annotation = 2`: Draw the watermark strictly as an annotation. - `FormXObject = 3`: Draw the watermark strictly as a form XObject in the page content stream. --- # WatermarkParams Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WatermarkParams ```csharp class WatermarkParams : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Watermark settings control the appearance of a watermark in a PDF. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) **Uses types:** [`HorizontalAlignment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/HorizontalAlignment.md), [`PageRange`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageRange.md), [`VerticalAlignment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/VerticalAlignment.md), [`WatermarkDrawOption`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WatermarkDrawOption.md) ## Constructors ### WatermarkParams ```csharp Datalogics.PDFL.WatermarkParams.WatermarkParams() ``` *constructor* Construct default WatermarkParams. Initializes with rotation 0, full page range, opacity 1.0, scale 0.5, zOrderTop true, showOnPrint true, showOnScreen true, centered alignment, and the TryAnnotation draw option. ## Properties ### FixedPrint ```csharp bool Datalogics.PDFL.WatermarkParams.FixedPrint { get; set; } ``` A boolean specifying whether this watermark is a FixedPrint watermark. FixedPrint watermarks maintain their size and position regardless of the dimensions of the target media. ### HorizAlign ```csharp HorizontalAlignment Datalogics.PDFL.WatermarkParams.HorizAlign { get; set; } ``` Get the horizontal alignment to be used when adding the watermark to a page. Defaults to center alignment. ### HorizValue ```csharp float Datalogics.PDFL.WatermarkParams.HorizValue { get; set; } ``` The horizontal offset value to be used when adding the watermark on a page. If percentageVals is true, this value is a percentage of the page width, with 1.0 meaning 100%. Otherwise this value is in user units. ### Opacity ```csharp float Datalogics.PDFL.WatermarkParams.Opacity { get; set; } ``` The opacity to be used when adding the watermark, with 0.0 meaning fully transparent and 1.0 meaning fully opaque. ### PercentageVals ```csharp bool Datalogics.PDFL.WatermarkParams.PercentageVals { get; set; } ``` A boolean specifying the units of horizValue and vertValue. If it is true, horizValue and vertValue represent percentages of the page dimensions. Otherwise horizValue and vertValue are in user units. ### Rotation ```csharp float Datalogics.PDFL.WatermarkParams.Rotation { get; set; } ``` The counter-clockwise rotation, in degrees, to be used when adding the watermark. ### Scale ```csharp float Datalogics.PDFL.WatermarkParams.Scale { get; set; } ``` The scale factor to be used when adding the watermark, with 1.0 meaning 100%. ### ShowOnPrint ```csharp bool Datalogics.PDFL.WatermarkParams.ShowOnPrint { get; set; } ``` A boolean specifying whether the watermark should be printed. ### ShowOnScreen ```csharp bool Datalogics.PDFL.WatermarkParams.ShowOnScreen { get; set; } ``` A boolean specifying whether the watermark should be visible when viewing on screen. ### TargetRange ```csharp PageRange Datalogics.PDFL.WatermarkParams.TargetRange { get; } ``` The page range of the document to which the watermark should be added. Defaults to all pages. ### VertAlign ```csharp VerticalAlignment Datalogics.PDFL.WatermarkParams.VertAlign { get; set; } ``` Get the vertical alignment to be used when adding the watermark to a page. Defaults to center alignment. ### VertValue ```csharp float Datalogics.PDFL.WatermarkParams.VertValue { get; set; } ``` The vertical offset value to be used when adding the watermark on a page. If percentageVals is true, this value is a percentage of the page height, with 1.0 meaning 100%. Otherwise this value is in user units. ### WatermarkDrawOption ```csharp WatermarkDrawOption Datalogics.PDFL.WatermarkParams.WatermarkDrawOption { get; set; } ``` Get the draw option to be used when adding the watermark to a page. Controls whether the watermark is drawn as an annotation or form XObject. ### ZOrderTop ```csharp bool Datalogics.PDFL.WatermarkParams.ZOrderTop { get; set; } ``` A boolean specifying where in the page z-order the watermark should be added. If it is true, the watermark is added to the front of the page; otherwise, it is added as a background. This parameter is ignored if fixedPrint is true, as all FixedPrint watermarks are added to the front of the page. ## Methods ### Dispose ```csharp void Datalogics.PDFL.WatermarkParams.Dispose() ``` **Returns:** `void` --- # WatermarkTextParams Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WatermarkTextParams ```csharp class WatermarkTextParams : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Watermark settings to control the appearance of text in a text-based watermark. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) **Uses types:** [`Color`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Color.md), [`Font`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Font.md), [`HorizontalAlignment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/HorizontalAlignment.md) ## Constructors ### WatermarkTextParams ```csharp Datalogics.PDFL.WatermarkTextParams.WatermarkTextParams() ``` *constructor* Creates a new WatermarkTextParams with default settings. The default font is CourierStd, font size is 24.0, color is DeviceGray black, and text alignment is left-aligned. ## Properties ### Color ```csharp Color Datalogics.PDFL.WatermarkTextParams.Color { get; set; } ``` Gets the color to be used when generating a text-based watermark. ### Font ```csharp Font Datalogics.PDFL.WatermarkTextParams.Font { get; set; } ``` Gets the Font to be used when generating a text-based watermark. ### FontSize ```csharp float Datalogics.PDFL.WatermarkTextParams.FontSize { get; set; } ``` The size of the font, in points, to be used when generating a text-based watermark. ### Text ```csharp string Datalogics.PDFL.WatermarkTextParams.Text { get; set; } ``` Gets the text to be used when generating a text-based watermark. ### TextAlign ```csharp HorizontalAlignment Datalogics.PDFL.WatermarkTextParams.TextAlign { get; set; } ``` Gets the alignment to be used when justifying a text-based watermark. ## Methods ### Dispose ```csharp void Datalogics.PDFL.WatermarkTextParams.Dispose() ``` **Returns:** `void` --- # WebConvertInfo Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WebConvertInfo ```csharp class WebConvertInfo : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Result metadata for a completed web-to-PDF conversion: page count, conversion time, document title, and resolved source URL. `Populate()` reads the plugin's last-conversion record on supported platforms and is a no-op (returning false) on the stub path; the page count is then overridden by the curator bridge with the authoritative count from the opened PDF. Header has no plugin-typed surface; all conversions live in the .cpp. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`WebConvertInfo`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WebConvertInfo.md) **Uses types:** [`WebConvertInfo`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WebConvertInfo.md) ## Constructors ### WebConvertInfo ```csharp Datalogics.PDFL.WebConvertInfo.WebConvertInfo() ``` *constructor* ### WebConvertInfo ```csharp Datalogics.PDFL.WebConvertInfo.WebConvertInfo(WebConvertInfo arg0) ``` *constructor* **Parameters** - `arg0` ([`WebConvertInfo`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WebConvertInfo.md)) ## Properties ### ConversionTimeMs ```csharp int Datalogics.PDFL.WebConvertInfo.ConversionTimeMs { get; } ``` ### PageCount ```csharp int Datalogics.PDFL.WebConvertInfo.PageCount { get; set; } ``` ### SourceUrl ```csharp string Datalogics.PDFL.WebConvertInfo.SourceUrl { get; } ``` ### Title ```csharp string Datalogics.PDFL.WebConvertInfo.Title { get; } ``` ## Methods ### Dispose ```csharp void Datalogics.PDFL.WebConvertInfo.Dispose() ``` **Returns:** `void` ### Populate ```csharp bool Datalogics.PDFL.WebConvertInfo.Populate() ``` **Returns:** `bool` Call WebToPDFGetConversionInfo and copy strings out. Returns false (and leaves this in its default state) if the plugin reports no previous conversion. --- # WebDownsamplingDPI Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WebDownsamplingDPI **Namespace:** `Datalogics::PDFL` ## Values - `Disabled = -1`: Preserve original resolution. - `DPI300 = 0`: 300 DPI (plugin default). - `DPI75 = 1`: 75 DPI (screen quality). - `DPI150 = 2`: 150 DPI. - `DPI600 = 3`: 600 DPI (high quality print). - `DPI1200 = 4`: 1200 DPI (very high quality). --- # WebImageCompression Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WebImageCompression **Namespace:** `Datalogics::PDFL` ## Values - `JPEG = 0`: Lossy JPEG (smaller file). - `Lossless = 1`: Lossless compression (larger file, pixel-perfect). --- # WebPageOrientation Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WebPageOrientation **Namespace:** `Datalogics::PDFL` ## Values - `Portrait = 0` - `Landscape = 1` --- # WebPageSize Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WebPageSize **Namespace:** `Datalogics::PDFL` ## Values - `Letter = 0`: US Letter (8.5 x 11 in). - `Legal = 1`: US Legal (8.5 x 14 in). - `Ledger = 2`: US Ledger / Tabloid (11 x 17 in). - `A3 = 3`: ISO A3 (297 x 420 mm). - `A4 = 4`: ISO A4 (210 x 297 mm). - `A5 = 5`: ISO A5 (148 x 210 mm). - `Custom = 6`: Use the explicit width/height from SetCustomPageSize. --- # WebToPDFConvertParams Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WebToPDFConvertParams ```csharp class WebToPDFConvertParams : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Parameters that control web/HTML-to-PDF conversion. Configure the target page geometry, viewport, image handling, and behavior on this object, then pass it to a web-to-PDF conversion call. The enum-valued settings (viewport preset, page size, page orientation, image compression, and downsampling resolution) take named values rather than raw integers. Safe to construct and configure on any platform; conversion itself runs only where the WebToPDF plugin is supported. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`WebToPDFConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WebToPDFConvertParams.md) **Uses types:** [`WebDownsamplingDPI`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WebDownsamplingDPI.md), [`WebImageCompression`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WebImageCompression.md), [`WebPageOrientation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WebPageOrientation.md), [`WebPageSize`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WebPageSize.md), [`WebToPDFConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WebToPDFConvertParams.md), [`WebViewportPreset`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WebViewportPreset.md) ## Constructors ### WebToPDFConvertParams ```csharp Datalogics.PDFL.WebToPDFConvertParams.WebToPDFConvertParams() ``` *constructor* ### WebToPDFConvertParams ```csharp Datalogics.PDFL.WebToPDFConvertParams.WebToPDFConvertParams(WebToPDFConvertParams other) ``` *constructor* **Parameters** - `other` ([`WebToPDFConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WebToPDFConvertParams.md)) ## Properties ### CustomPageHeight ```csharp double Datalogics.PDFL.WebToPDFConvertParams.CustomPageHeight { get; } ``` ### CustomPageWidth ```csharp double Datalogics.PDFL.WebToPDFConvertParams.CustomPageWidth { get; } ``` ### CustomViewportHeight ```csharp int Datalogics.PDFL.WebToPDFConvertParams.CustomViewportHeight { get; } ``` ### CustomViewportWidth ```csharp int Datalogics.PDFL.WebToPDFConvertParams.CustomViewportWidth { get; } ``` ### DisplayHeaderFooter ```csharp bool Datalogics.PDFL.WebToPDFConvertParams.DisplayHeaderFooter { get; set; } ``` ### DownsamplingDPI ```csharp WebDownsamplingDPI Datalogics.PDFL.WebToPDFConvertParams.DownsamplingDPI { get; set; } ``` ### EnableVerboseLogging ```csharp bool Datalogics.PDFL.WebToPDFConvertParams.EnableVerboseLogging { get; set; } ``` ### GenerateTaggedPDF ```csharp bool Datalogics.PDFL.WebToPDFConvertParams.GenerateTaggedPDF { get; set; } ``` ### ImageCompression ```csharp WebImageCompression Datalogics.PDFL.WebToPDFConvertParams.ImageCompression { get; set; } ``` ### MarginBottom ```csharp double Datalogics.PDFL.WebToPDFConvertParams.MarginBottom { get; } ``` ### MarginLeft ```csharp double Datalogics.PDFL.WebToPDFConvertParams.MarginLeft { get; } ``` ### MarginRight ```csharp double Datalogics.PDFL.WebToPDFConvertParams.MarginRight { get; } ``` ### MarginTop ```csharp double Datalogics.PDFL.WebToPDFConvertParams.MarginTop { get; } ``` ### PageOrientation ```csharp WebPageOrientation Datalogics.PDFL.WebToPDFConvertParams.PageOrientation { get; set; } ``` ### PageSize ```csharp WebPageSize Datalogics.PDFL.WebToPDFConvertParams.PageSize { get; set; } ``` ### PreferCSSPageSize ```csharp bool Datalogics.PDFL.WebToPDFConvertParams.PreferCSSPageSize { get; set; } ``` ### PrintBackground ```csharp bool Datalogics.PDFL.WebToPDFConvertParams.PrintBackground { get; set; } ``` ### Scale ```csharp double Datalogics.PDFL.WebToPDFConvertParams.Scale { get; set; } ``` ### TimeoutSeconds ```csharp int Datalogics.PDFL.WebToPDFConvertParams.TimeoutSeconds { get; set; } ``` ### ViewportSize ```csharp WebViewportPreset Datalogics.PDFL.WebToPDFConvertParams.ViewportSize { get; set; } ``` ## Methods ### Dispose ```csharp void Datalogics.PDFL.WebToPDFConvertParams.Dispose() ``` **Returns:** `void` ### SetCustomPageSize ```csharp void Datalogics.PDFL.WebToPDFConvertParams.SetCustomPageSize(double width_pts, double height_pts) ``` **Parameters** - `width_pts` (`double`) - `height_pts` (`double`) **Returns:** `void` Explicit page size in points (1 pt = 1/72 in). Used only when the page size is Custom. ### SetCustomViewport ```csharp void Datalogics.PDFL.WebToPDFConvertParams.SetCustomViewport(int width, int height) ``` **Parameters** - `width` (`int`) - `height` (`int`) **Returns:** `void` Explicit viewport size in pixels. Used only when the viewport preset is Custom. ### SetMargins ```csharp void Datalogics.PDFL.WebToPDFConvertParams.SetMargins(double top, double right, double bottom, double left) ``` **Parameters** - `top` (`double`) - `right` (`double`) - `bottom` (`double`) - `left` (`double`) **Returns:** `void` Page margins in inches, given as top, right, bottom, left. --- # WebViewportPreset Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WebViewportPreset **Namespace:** `Datalogics::PDFL` ## Values - `Desktop = 0`: Default desktop viewport (1280x1024). - `Mobile = 1`: Mobile viewport (e.g. 375x812). - `Tablet = 2`: Tablet viewport (e.g. 768x1024). - `Custom = 3`: Use the explicit width/height from SetCustomViewport. --- # Word Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Word ```csharp class Word : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A word in a PDF file. Each word contains a sequence of characters in one or more styles (see Style). **Referenced by:** [`WordFinder`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WordFinder.md), [`WordProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WordProc.md) **Uses types:** [`Quad`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Quad.md), [`StyleTransition`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StyleTransition.md), [`WordAttributeFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WordAttributeFlags.md) ## Properties ### Attributes ```csharp WordAttributeFlags Datalogics.PDFL.Word.Attributes { get; } ``` Gets a set of summary flags containing information on the types of characters in a word. ### CharQuads ```csharp System.Collections.Generic.IList Datalogics.PDFL.Word.CharQuads { get; } ``` Gets a list of Quads occupied by the individual characters in a word. ### IsLastWordInRegion ```csharp bool Datalogics.PDFL.Word.IsLastWordInRegion { get; } ``` Specifies whether this word is the last word in a region as determined by the WordFinder. This can be useful for determining visual line breaks in tagged PDFs. In tagged PDF documents, WordAttributeFlags.LastWordOnLine is set according to the tags in the document, so that flag cannot be used to determine visual line breaks. ### Quads ```csharp System.Collections.Generic.IList Datalogics.PDFL.Word.Quads { get; } ``` Gets the specified word's quads, specified in user space coordinates. The quad's height is the height of the font's bounding box, not the height of the tallest character used in the word. The font's bounding box is determined by the glyphs in the font that extend farthest above and below the baseline; it often extends somewhat above the top of 'A' and below the bottom of 'y'. The quad's width is determined from the characters actually present in the word. For example, the quads for the words "AWAY" and "away" have the same height, but generally do not have the same width unless the font is a mono-spaced font (a font in which all characters have the same width). Despite the names of the fields in an Quad (TopLeft for top left, BottomLeft for bottom left, and so forth) the corners of Quad do not necessarily have these positions. ### StyleTransitions ```csharp System.Collections.Generic.IList Datalogics.PDFL.Word.StyleTransitions { get; } ``` Gets a list of style transitions for the word. Every word has at least one style transition, at character position zero in the word. ### Text ```csharp string Datalogics.PDFL.Word.Text { get; } ``` Gets a word's text, converting ligatures to their constituent characters. The string to return includes any word break characters (such as space characters) that follow the word, but not any that precede the word. ## Methods ### Dispose ```csharp void Datalogics.PDFL.Word.Dispose() ``` **Returns:** `void` --- # WordAttributeFlags Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WordAttributeFlags **Namespace:** `Datalogics::PDFL` ## Description Flags returned by Word.GetAttributes. ## Values - `HasNonalphanum = 1`: The word contains a character outside the range of A-Z, a-Z, 0-9. - `HasLetter = 2`: The word contains a character between A-Z or a-z. - `HasUppercase = 4`: The word contains a character between A-Z. - `HasDigit = 8`: One or more characters in the word are digits. - `HasPunctuation = 16`: One or more characters in the word are punctuation marks. Other flag bits can be checked to test whether the punctuation was at the beginning of the word, the end of the word, or elsewhere in the word. - `HasHyphen = 32`: There is a hyphen in the word. - `HasSoftHyphen = 64`: There is a soft hyphen in the word. - `HasLigature = 128`: The word contains a ligature. - `HasLeadingPunctuation = 256`: The first character in the word is a punctuation mark. - `HasTrailingPunctuation = 512`: The last character in the word is a punctuation mark. - `HasUnmappedCharacters = 1024`: One or more characters in the word cannot be represented in the output font encoding. - `AdjacentToSpace = 2048`: The character following the end of the word is a space (either an explicit space character encoded in a string, or one that appears implicitly because the drawing point was moved). - `Rotated = 4096`: The writing direction of the word is not in a multiple of 90 degrees, or the bounding box of the text is skewed. This flag indicates that the quads of the word should be used to specify the highlight area correctly. - `VerticalFlow = 8192`: The writing direction of the word is either 90 or 180 degrees. This flag ignores the page rotation parameter of the page dictionary. Therefore, if the page is rotated 90 degrees, this flag will be set on each word that appears horizonally on the screen. - `WordBreak = 16384`: The word is followed by a word break character (such as a space). - `LastWordOnLine = 32768`: The word is at the end of the current text line (for example, the word is followed by a line break). In tagged PDF documents, this flag is set according to the tags in the document. To determine visual line breaks in tagged PDF, use IsLastWordInRegion instead. - `FrontTab = 65536`: Insert a tab character before this word - `EncodingWarning = 131072`: Unreliable encoding conversion happened in this word. Check the encoding flags of each character for detail. - `ReverseDirection = 262144`: The writing direction is right-left or top-down - `WordIsUnicode = 524288`: The text is in Unicode format. - `ExtCharOffsets = 1048576`: The word has extended character offset information. --- # WordFinder Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WordFinder ```csharp class WordFinder : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A class used to extract words from a document. **Referenced by:** [`WordProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WordProc.md) **Uses types:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`Word`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Word.md), [`WordFinderConfig`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WordFinderConfig.md), [`WordFinderVersion`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WordFinderVersion.md), [`WordProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WordProc.md) ## Constructors ### WordFinder ```csharp Datalogics.PDFL.WordFinder.WordFinder(Document doc, WordFinderVersion algVersion, WordFinderConfig wbConfig) ``` *constructor* **Parameters** - `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): document in which to find words - `algVersion` ([`WordFinderVersion`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WordFinderVersion.md)): algorithm version to use - `wbConfig` ([`WordFinderConfig`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WordFinderConfig.md)): configuration for this word finder Create a word finder ## Methods ### Dispose ```csharp void Datalogics.PDFL.WordFinder.Dispose() ``` **Returns:** `void` ### EnumWords ```csharp bool Datalogics.PDFL.WordFinder.EnumWords(int pageNum, WordProc wordProc) ``` **Parameters** - `pageNum` (`int`): The page number from which to extract words. Pass AllPages to sequentially process all pages in the document. - `wordProc` ([`WordProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WordProc.md)): A user-supplied callback to call once for each word found. Enumeration halts if wordProc returns false. **Returns:** `bool` true if enumeration was successfully completed, false if enumeration was terminated because wordProc returned false. Extracts words, one at a time, from the specified page or the entire document. It calls a user-supplied procedure once for each word found. Only words within or partially within the page's crop box (see Page.CropBox) are enumerated. Words outside the crop box are skipped. Word objects passed to wordProc become invalid once the call to EnumWords returns, or if the page number changes between calls to the WordProc. **Exceptions** - `genErrBadParm`: is raised if wordProc is NULL, or pageNum is less than zero or greater than the total number of pages in the document. - `pdErrOpNotPermitted` ### GetVisibleWordList ```csharp System.Collections.Generic.IList< Word > Datalogics.PDFL.WordFinder.GetVisibleWordList(int pageNum) ``` **Parameters** - `pageNum` (`int`): the page number for which to get the list of words. **Returns:** [`System.Collections.Generic.IList< Word >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Word.md) a list of x, y sorted words on the specified page. Finds all Visible words on the specified page and returns a list containing the words. The words are sorted by their x- and y-coordinates on the page. ### GetWordList ```csharp System.Collections.Generic.IList< Word > Datalogics.PDFL.WordFinder.GetWordList(int pageNum) ``` **Parameters** - `pageNum` (`int`): the page number for which to get the list of words. **Returns:** [`System.Collections.Generic.IList< Word >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Word.md) a list of x, y sorted words on the specified page. Finds all words on the specified page and returns a list containing the words. The words are sorted by their x- and y-coordinates on the page. --- # WordFinderConfig Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WordFinderConfig ```csharp class WordFinderConfig : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description A word finder configuration that customizes the way the extraction is performed. In the default configuration, all options are false. **Referenced by:** [`DocTextFinder`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DocTextFinder.md), [`WordFinder`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WordFinder.md) ## Constructors ### WordFinderConfig ```csharp Datalogics.PDFL.WordFinderConfig.WordFinderConfig() ``` *constructor* A word finder configuration that customizes the way the extraction is performed. In the default configuration, all options are false. ## Properties ### DisableCharReordering ```csharp bool Datalogics.PDFL.WordFinderConfig.DisableCharReordering { get; set; } ``` When true, it disables reconstructing the character orders, and the word finding algorithm is applied to the characters in the drawing order. By default, word finder reorders characters on a single line by the relative horizontal character locations. Most of the time, the character reordering feature improves the text extraction quality. However, on a PDF page with heavily overlapped character bounding boxes, the outcome becomes somewhat unpredictable. In such case, disabling the character reordering (disableCharReordering = true) may produce a more static result. ### DisableTaggedPDF ```csharp bool Datalogics.PDFL.WordFinderConfig.DisableTaggedPDF { get; set; } ``` When true, it disables tagged PDF support and treats the document as non-tagged PDF. Use this to keep the word finder in legacy mode when it is created with the latest algorithm version. ### IgnoreCharGaps ```csharp bool Datalogics.PDFL.WordFinderConfig.IgnoreCharGaps { get; set; } ``` When true, it disables converting large character gaps to space characters, so that the word finder reports a character space only when a space character appears in the original PDF content. This option has no effect on tagged PDF. ### IgnoreLineGaps ```csharp bool Datalogics.PDFL.WordFinderConfig.IgnoreLineGaps { get; set; } ``` When true, it disables treating vertical movements as line breaks, so that the word finder determines a line break only when a line break character or special tag information appears in the original PDF content. This option has no effect on tagged PDF. ### NoAnnots ```csharp bool Datalogics.PDFL.WordFinderConfig.NoAnnots { get; set; } ``` When true, it disables extracting text from text annotations. Normally, the word finder extracts text from the normal appearances of text annotations that are inside the page crop box. ### NoEncodingGuess ```csharp bool Datalogics.PDFL.WordFinderConfig.NoEncodingGuess { get; set; } ``` When true, it disables guessing encoding of fonts that have unknown or custom encoding when there is no ToUnicode table. Inappropriate encoding conversions can cause the word finder to mistakenly recognize non-Roman single-byte fonts as Standard Roman encoding fonts and extract the text in an unusable format. When this option is selected, the word finder avoids such unreliable encoding conversions and tries to provide the original characters without any encoding conversion for a client with its own encoding handling. ### NoExtCharOffset ```csharp bool Datalogics.PDFL.WordFinderConfig.NoExtCharOffset { get; set; } ``` When true, it disables generating extended character offset information to improve text extraction performance. The extended character offset information is necessary to determine exact character offset for character-by-character text selection. The beginning character offset of each word is always available regardless of this option, and can be used for word-by-word text selection with reasonable accuracy. When a client has no need for the detailed character offset information, it can use this option to improve the text extraction efficiency. There is a minor difference in the text extraction performance, and less memory is needed for the extracted word list. ### NoHyphenDetection ```csharp bool Datalogics.PDFL.WordFinderConfig.NoHyphenDetection { get; set; } ``` When true, it disables finding and removing soft hyphens in non-tagged PDF, so that the word finder trusts hard hyphens as non-soft hyphens. This option has no effect on tagged PDF files. Normally, the word finder does not differentiate between soft and hard hyphen characters in non-tagged PDF files, because these are often misused. ### NoLigatureExp ```csharp bool Datalogics.PDFL.WordFinderConfig.NoLigatureExp { get; set; } ``` When true, it disables the expansion of ligatures using the default ligatures. The default ligatures are: • fi • ff • fl • ffi • ffl • ch • cl • ct • ll • ss • fs • st • oe • OE ### NoSkewedQuads ```csharp bool Datalogics.PDFL.WordFinderConfig.NoSkewedQuads { get; set; } ``` When true, it disables the creation of a quad per character for skewed words, words with a horizontally-aligned, but non-rectangular, bounding region. Each skewed word will, instead, be associated with a single rectangular, bounding region. ### NoStyleInfo ```csharp bool Datalogics.PDFL.WordFinderConfig.NoStyleInfo { get; set; } ``` When true, it disables generating character style information to improve text extraction performance and memory efficiency. When you select this option, you cannot access the the StyleTransition property of Word objects returned from WordFinder. ### NoTextRenderMode3 ```csharp bool Datalogics.PDFL.WordFinderConfig.NoTextRenderMode3 { get; set; } ``` When true, it disables extracting text with Text Rendering mode Tr = 3 ("Neither fill nor stroke text (invisible)."). Normally, the word finder extracts such text as any other. ### NoXYSort ```csharp bool Datalogics.PDFL.WordFinderConfig.NoXYSort { get; set; } ``` When true, it disables generating an XY-ordered word list. ### PreciseQuad ```csharp bool Datalogics.PDFL.WordFinderConfig.PreciseQuad { get; set; } ``` When true, the bounding box or bounding quad will be set based on actual glyph bounding box. ### PreserveRedundantChars ```csharp bool Datalogics.PDFL.WordFinderConfig.PreserveRedundantChars { get; set; } ``` When true, it disables detecting and removing redundant characters. Some PDF pages have the same text drawn multiple times on the same spot to get a special visual effect. Normally, those redundant characters are removed from the word finder output. Since this option may leave extra characters with overlapping bounding boxes, using it together with the disableCharReordering option is recommended for more consistent text extraction results. ### PreserveSpaces ```csharp bool Datalogics.PDFL.WordFinderConfig.PreserveSpaces { get; set; } ``` When true, the word finder preserves space characters during word breaking. Otherwise, spaces are removed from output text. When false (the default), you can add spaces later by considering the WordAttributeFlags.AdjacentToSpace attribute, but there is no way to restore the exact number of consecutive space characters. ### TrustNBSpace ```csharp bool Datalogics.PDFL.WordFinderConfig.TrustNBSpace { get; set; } ``` When true, it disables treating non-breaking space characters as regular space characters in non-tagged PDF files, so that the word finder preserves the space without breaking the word. This option has no effect on tagged PDF files. Normally, the word finder does not differentiate between breaking and non-breaking space characters in non-tagged PDF files, because these are often misused. ### UnknownToStdEnc ```csharp bool Datalogics.PDFL.WordFinderConfig.UnknownToStdEnc { get; set; } ``` When true, it assumes any font with unknown or custom encoding to be Standard Roman. This option overrides the noEncodingGuess option. ## Methods ### Dispose ```csharp void Datalogics.PDFL.WordFinderConfig.Dispose() ``` **Returns:** `void` --- # WordFinderVersion Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WordFinderVersion **Namespace:** `Datalogics::PDFL` ## Description This refers to versions of the WordFinder algorithm. WordFinder extracts words from a PDF file and enumerates the words on a single page or on all of the pages in the document. ## Values - `Latest = 0`: Used to obtain the latest available version. - `Version2 = 2`: The version used for Acrobat 3.x, 4.x. - `Version3 = 3`: For Acrobat 5.0 without accessibility enabled. - `Version4 = 4`: For Acrobat 5.0 with accessibility enabled. --- # WordProc Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WordProc ```csharp class WordProc : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Callback function class for EnumWords. A user-supplied callback that is called once for each word found by the EnumWords method. WordFinder looks for words on a page, and keeps calling WordProc until it runs out of words in its search. Then, WordProc returns "false" as a parameter, and the process ends. **Referenced by:** [`WordFinder`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WordFinder.md) **Uses types:** [`Word`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Word.md), [`WordFinder`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WordFinder.md) ## Constructors ### WordProc ```csharp Datalogics.PDFL.WordProc.WordProc() ``` *constructor* Callback function class for EnumWords. A user-supplied callback that is called once for each word found by the EnumWords method. WordFinder looks for words on a page, and keeps calling WordProc until it runs out of words in its search. Then, WordProc returns "false" as a parameter, and the process ends. ## Methods ### Call ```csharp virtual bool Datalogics.PDFL.WordProc.Call(WordFinder wordFinder, Word wInfo, int pgNum) ``` **Parameters** - `wordFinder` ([`WordFinder`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/WordFinder.md)) - `wInfo` ([`Word`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Word.md)) - `pgNum` (`int`) **Returns:** `bool` ### Dispose ```csharp void Datalogics.PDFL.WordProc.Dispose() ``` **Returns:** `void` --- # WritingMode Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/WritingMode **Namespace:** `Datalogics::PDFL` ## Description The direction of writing ## Values - `Horizontal = 0`: Text is written horizontally - `Vertical = 1`: Text is written vertically --- # XFAFormExportType Enum Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/XFAFormExportType **Namespace:** `Datalogics::PDFL` ## Values - `XML = 1`: XML (Extensible Markup Language) representing form field data. - `XFD = 2`: XFD (Extensible Forms Description language) representing form field data. - `XDP = 3`: XDP (XML Data Package) representing form field data. --- # XPSConvertParams Class Source: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/XPSConvertParams ```csharp class XPSConvertParams : SystemIDisposable ``` **Namespace:** `Datalogics::PDFL` **Inherits from:** `SystemIDisposable` ## Description Class that works with XPS conversion parameters. The XML Paper Specification (XPS) is a standard document format that Microsoft created in 2006 as an alternative to the PDF format. The XPS format is intended to be a simple but secure file format, without embedded images or video clips, and easy to share and print. NOTE: This class is only available on Windows or Linux. **Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md) ## Constructors ### XPSConvertParams ```csharp Datalogics.PDFL.XPSConvertParams.XPSConvertParams() ``` *constructor* Set up default parameters for XPS conversion. ### XPSConvertParams ```csharp Datalogics.PDFL.XPSConvertParams.XPSConvertParams(string SettingsFile) ``` *constructor* **Parameters** - `SettingsFile` (`string`): The path to the .joboptions file to use. By default, the Standard.joboptions file located in the Resources directory is used. The default file will be used if the specified file is not found. Set up parameters for XPS conversion. ## Properties ### PathToSettingsFile ```csharp string Datalogics.PDFL.XPSConvertParams.PathToSettingsFile { get; set; } ``` Gets the path to the .joboptions settings file used for XPS conversion. By default, the Standard.joboptions file located in the Resources directory is used. ## Methods ### Dispose ```csharp void Datalogics.PDFL.XPSConvertParams.Dispose() ``` **Returns:** `void`