ABCpdf Documentation

ABCpdf .NET™ Documentation

ABCpdf .NET lets you dynamically create Adobe® PDF documents on the fly. Because it doesn't use any print drivers and goes Direct to PDF™, it's incredibly fast. WebSupergoo - sticking the web together.

© 2022 WebSupergoo

Every effort has been made to ensure that the information in this manual is accurate. However, WebSupergoo makes no guarantees about the accuracy or quality of this manual or any software it describes.

Apple®, Mac®, Macintosh®, QuickDraw®, and QuickTime® are trademarks of Apple Computer, Inc. Windows®, Windows NT®, Visual Basic® and Visual Studio® are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Adobe®, Acrobat®, Adobe PDF®, PostScript® and Photoshop® are trademarks of Adobe Systems Incorporated or its subsidiaries. Macromedia®, Flash™ and Macromedia Flash™ are trademarks or registered trademarks of Macromedia, Inc. in the United States and/or other countries. The Google Chrome™ browser and Chromium™ open source project are trademarks or registered trademarks of Google Inc. in the United States and/or other countries. The use of these trademarks does not imply any sponsorship or endorsement by the owners of these trademarks. Thanks to Unsplash and the following contributors for the use of their photographs. Ross Stone, Hassan Ishan, Faruk Tokluoglu and David Clode. Also to the National Aeronautics and Space Administration for the use of their website.


What is ABCpdf?

What is ABCpdf .NET?

Use ABCpdf .NET to dynamically create Adobe PDF documents on the fly. You won't believe how simple - yet how powerful this tool truly is!

You can use ABCpdf .NET from languages like C# or Visual Basic .NET.

ABCpdf .NET runs on Windows 10, Windows 8, Windows 7, Windows Server 2019, Windows Server 2016, Windows Server 2012, Windows Server 2008 and indeed all Windows versions since Windows Vista.


Who is this document for?

This document is written as a guide to and reference material for ABCpdf .NET. It assumes basic knowledge of .NET and either Visual Basic or C#.

It also assumes you know how to set up and configure Microsoft's Internet Information Services - IIS.


What do I need to use it?

You can run ABCpdf .NET on all Windows versions since Windows Vista.

You need .NET 4.0 or later.

If you're rendering 3D PDFs, you will need OpenGL version 3.1 compliant graphics drivers.

Finally, you'll need ABCpdf .NET itself.

What happened to ABCpdf ASP? Well, ABCpdf .NET includes a COM layer over the native .NET base - a layer which exactly mimics the interface of ABCpdf ASP. This means you can use one product for your .NET deployment and also for any legacy COM deployment. Think of it as double value - ABCpdf .NET and ABCpdf ASP both in one package. Plus, you get the advantages of the .NET architecture behind a COM front end - advantages like native x64 support and features like SVG import.


How does it work?

ABCpdf .NET gets up close and personal! Because it doesn't use any print drivers and goes Direct to PDF™ it's incredibly fast.

Because it's fully multithreaded you can use it flexibly within any .NET environment from ASP.NET to COM+ to straight Windows applications..

In other products you should look out for external libraries. Threading make no difference at all if further down the line a third-party piece of software pipelines every request.

Because ABCpdf .NET doesn't rely on any other software it can be completely multithreaded without any unpleasant bottlenecks.


What's Cool?

ABCpdf gets up close and personal! Because it goes Direct to PDF™ it's incredibly fast. Because ABCpdf doesn't rely on any other software it can be completely multithreaded without any unpleasant bottlenecks.

ABCpdf is simple yet powerful. It's designed so you can get up to speed and productive within ten minutes. Yet if you want fine low-level control you can have that too with ABCpdf.

Create PDF documents from scratch or read and modify existing PDF documents. Add pages from other documents for seamless joining, insertion and stitching of multiple documents. Stream your documents direct to your client web browser without going via the disk. All up into the GB range and beyond. All with support up to and including PDF 2.0 - ISO 32000-2:2017.

Import HTML / CSS pages from local or remote web sites. Placed HTML support means your HTML can be treated just like any other media - placed wherever you like on the page. Paged HTML support allows you to flow your HTML from one area to another - across pages or columns or both. Select between google Chrome style, Firefox style and Internet Explorer style HTML rendering engines. A vast range of options gives you full control over the HTML rendering process and DOM. Different engines give you amazing levels of compatibilities with associated technologies like HTML5, CSS3, SVG, web fonts and Font Awesome, AJAX, WebGL and many more.

Render your PDF documents in a variety of formats. Output your pages in raster formats like JPEG, GIF, TIFF, PSD, JPEG 2000, High Efficiency Image File Format (HEIF), WebP, DDS or JPEG XR in any of a variety of color spaces and bit depths. Alternatively choose vector formats like EMF, EPS, XPS, SVG, HTML, DOCX, WebGL and SWF (Flash) for specialist areas such as high resolution print work. Control advanced rendering settings such as alpha, compression type, multiple pages and different horizontal and vertical resolutions. Validated against the Ghent PDF Output Suite 5.0.

Add virtually any graphic into your PDFs. ABCpdf supports JPEG, GIF, TIFF, BMP, PNG, PSD, PSB, EXIF, WMF, EMF, JPEG 2000, JPEG XR, High Efficiency Image File Format (HEIF), WebP, RAW, DDS, PS, EPS, XPS, WPF, SVG and SWF (Flash) amongst others. Additionally you can reference image data from multiple locations in your document - great for inserting watermarks and other frequently used graphics. ABCpdf is fully PostScript compatible.

Full support for the XML Paper Specification (XPS), Open XML Paper Specification (OXPS) and for Encapsulated PostScript (EPS). Microsoft XPS provides an alternative for page description and document storage but it is not compatible with the de-facto PDF standard. EPS is widely used in printing but often provides compatibility headaches when it comes to interoperability with PDF. ABCpdf supports full interoperability between Adobe PDF and Microsoft XPS and EPS. Convert your PDF documents to XPS or EPS. Convert your XPS or EPS documents to PDF. And our conversion routines are carefully written to preserve the natural structure of your source documents wherever possible. So this means the preservation of color spaces and the preservation or conversion of embedded fonts. Unless of course you want to change the format in which case you can render directly to Grayscale, RGB or CMYK EPS.

Output, validation and conversion to PDF/A standards. Conversion is made to work the way it should - it operates on practically all documents - even documents provided by third parties. A partner in this is transparency flattening which is a technology which allows you to remove transparency from your documents while leaving the vector nature of the format intact.

Full support for the Windows Presentation Foundation (WPF). Microsoft WPF was the graphics sub-system originally developed for .NET 3.0. Of course with a graphics API drawing to screen a PDF export facility is needed too. As such ABCpdf comes with full WPF import capability. See our WPFTable example project for details and examples.

Not only does ABCpdf support PDF, HTML and Rich Text Format (RTF) natively but it also supports a wide range of other document formats. Formats like Microsoft Word (.doc), Microsoft Excel (.xls), PowerPoint (.ppt), WordPerfect (.wpd), Lotus 1-2-3 (.wk1) and AutoCAD (.dxf). All you need to do is read them in! *

ABCpdf allows you precise control over the way that your text is laid out. Paragraph indent, kerning and tracking, word spacing, line spacing, paragraph spacing and horizontal justification are just some of the settings available. ABCpdf supports synthesized bold and italic typeface styles for situations in which you do not want to reference multiple typefaces.

ABCpdf supports Unicode and foreign languages. Reference fonts from the relevant foreign language pack or embed Unicode fonts for guaranteed fidelity of reproduction on any platform. Draw text horizontally or vertically and quickly subset large CJK fonts with minimal use of memory and impact on server load. Work with bidirectional script such as Hebrew and contextual ligatures in languages such as Arabic

Styled text allows easy creation and layout of multi-styled text; supporting text box chaining to allow you to easily and automatically flow text through from one area to another, around images and other irregular objects. More complex options like text on a curve or drop shadows are simple to implement using our example code.

Apply advanced transformations like rotation, magnification, skew and translation. This means you can draw rotated text, images and graphics all with only a few simple commands.

ABCpdf allows multiple different approaches to layout and document structure. The Table project shows how to use programmatic table based layout. The WPF Table project shows how to take WPF based content and convert it to PDF. The ABCpdf12.Drawing wrapper namespace exists for easy porting of System.Drawing code for PDF output. Or if you're more interested in XML to PDF or tagged PDF output there are the Tagged PDF Example projects.

ABCpdf supports sophisticated color spaces. Mix and match RGB, CMYK, Grayscale, Lab, calibrated color spaces and spot colors. Any kind of graphic from text to lines to blocks of color can be drawn in any of these color spaces. You can even perform complex operations like colorizing grayscale images using spot colors or converting from one color space to another.

ABCpdf supports direct import of ICC based RGB, CMYK and Lab images from TIFF, PSD and PSB. Full TIFF and PSD support for all color spaces, compression models and bit depths up to HDR (High-dynamic-range). This means you can produce high-quality, print-ready PDFs directly from your applications.

ABCpdf supports transparency everywhere. Any kind of graphic from text to lines to blocks of color can be drawn transparently using a simple alpha value to control levels of opacity. You can apply soft masks or chromakey style masks to images for selective transparency. Or you can draw transparent images such as GIF using simple calls.

Create encrypted or signed PDFs for secure storage of PDF documents. Apply user permissions and secure these permissions with encryption keys from 40 to 128 bits in size. Check signed documents for validity. Examine different revisions of documents to find changes between them. Revert back to any previously saved revision for comparison.

ABCpdf supports Fields and Forms. Use placeholder fields in your template documents to position and lay out dynamically created elements or assign field values directly. Stamp fields directly into the PDF to prevent them being modified. Create new annotations, anything from simple text fields through to multiple incrementally updated signatures. With advanced support for exotic types of field structure such as combs and for Acrobat JavaScript for field calculations, triggers and callbacks.

Digital signature signing and verification using software, hardware or cloud based certificates. Support for standards like PAdES for standards compliant signatures - B for the base level, T to add a timestamp, LT for long term archival and PAdES LTA for extended long term archival.

ABCpdf now supports conversion of PDF content into annotated SVG. This allows you to identify individual elements on a page and map them back to the operators in the original PDF file. So it lets you perform operations like search and replace on PDF text or identify individual images on a page.

PDF optimization and size reduction provides whole document optimization using a variety of options to reduce font sizes, remove embedded fonts, to resample and recompress images, to flatten wherever possible for the smallest possible output.

PDF analysis has been extended into easy-to-use operations for text and images. Simple on the surface but sophisticated underneath, they allow you to extract common-sense, de-hyphenated and de-ligatured text from PDFs. Then select items of that text within the PDF and perform operations on those selections.

If you have your own custom PDF analysis needs these can be easily implemented using the content stream deconstruction APIs. So if you want to separate out spot color graphics or change the width of lines or indeed pretty much anything, there are simple classes to allow you to achieve this.

PDF accessibility is now something that can be supported, even for PDFs which were never designed to do so. Standards such as PDF/UA and Section 508 compliance require that PDFs be accessible. Our accessibility operation performs a sophisticated semantic analysis of the document content and adds appropriate tagging information to produce an accessible Tagged PDF output. This includes features like headers, footers, tables, lists and sections.

Our ABCpdfView sample application now demonstrates this and a whole host of other ABCpdf features. It allows you to open, view and print PDF documents. It lets you edit text and text styles within the PDF. It allows you to insert, delete and re-order pages. It allows you to watermark documents. PDFView comes with full source code.

ABCpdf offers great control over images in PDFs. You can resize them using a variety of sophisticated and high quality resampling algorithms. You can assign new color spaces or convert them from one color space to another. You can compress them in CCITT, JPEG, Flate or JPEG 2000 format. You can resample them from one bit depth to another. Determine size, resolution and placements using sophisticated analysis operations.

ABCpdf is fully floating point for precise positioning of text, line and other objects at a fractional point level. Variable precision floating point support allows you to trade off precision against legacy compatibility.

ABCpdf allows even more advanced control over any PDF object in your document. If you can't see how to accomplish a task using our simple to use methods then you can always access the raw PDF structure directly. This is true both for the structure of the document itself and also for any content streams held within that structure. You can use the Atom classes to look at the very lowest level of the data structures involved or you can the Element classes which encompass the entire of the PDF 2.0 specification in structured classes.

If you think there's something missing please do mail us.

* Requires helper applications such as WordGlue .NET, Microsoft Office or OpenOffice.org to be installed. WordGlue .NET is available on our site. OpenOffice.org is freely distributed under the GNU Lesser General Public License (LGPL). For full details of the OpenOffice.org project see http://www.openoffice.org/.


What's New?

.NET 5/6/7

For ABCpdf Version 12 ABCpdf has been extensively updated for the .NET 5.0 world. Version 12.2 extends this to the .NET 6.0 world. Version 12.4 extends this to the .NET 7.0 world.

The original MSI based installer is still recommended for development because it includes everything that you might ever want including documentation and example projects.

However the NuGet installers provide lightweight installation and update and are well integrated into Visual Studio for the development of both .NET 4.0, 5.0, 6.0 and 7.0.

Indeed you can use both at the same time for the best of both worlds.

ABCChrome

ABCpdf Version 12 now comes with an updated ABCChrome HTML rendering engine.

ABCChrome 86 is based around Chromium 86 and contains many fixes and features related to the elimination of vulnerabilities. It introduces Site Isolation for improved security, other changes designed to mitigate the risks associated with the Spectre exploit and new cross-origin policies to provide extra security. It also copes better with extremely large and processor intensive documents.

In addition there are many new CSS features available in the current release - @supports for feature detection, constructible style sheets, styled bullet points and markers for lists, conic gradients - amongst others. Full details can be found on the Chrome version history as detailed on Wikipedia.

However we also include ABCChrome 65 for legacy systems. Although this is quite old - it was released 2018 - there are a few reasons you may wish to continue to use it.

The security changes for ABCChrome 86 have resulted in a more secure engine, but one that can be less performant. So if ABCChrome is only exposed to pre-vetted content then you may not see the need to transition.

Similarly the current engine no longer supports TLS 1.0 and TLS 1.1 so if you are relying on one of these for a legacy system, then you may wish to stay with the older release.

ABCWebKit

ABCpdf Version 12.1 now comes with a new ABCWebKit HTML rendering engine.

The ABCWebKit engine is by no means as full featured or secure as the other HTML engines, however it can be useful in special situations.

In particular it is fairly independent from the OS and so it can often operate on restricted systems such as those hosted on Azure.

Pentest

ABCpdf Version 12.2 has been updated in line with recommendations from professional third party penetration testers.

After spending some weeks attacking ABCpdf, our penetration testers conceded that they were unable to find any exploits or substantive issues.

However they made a number of suggestion related to reducing attack area, which have been implemented for the release of ABCpdf Version 12.2. Further enhancements formed part of 12.3.

Perhaps it is icing on top of the icing on the cake? Belt, braces and double suspenders? However we take security seriously and every little helps.

Images

We have implemented and linked into a whole heap of new image functionality.

We additionally allow import of the following new file formats:

  • High Efficiency Image File Format (HEIF) - .heic, .heif, .avci, .heics, .heifs, .avcs, .avif, .avifs
  • WebP - .webp
  • Various Raw Formats - .3fr, .ari, .arw, .bay, .cap, .cr2, .cr3, .crw, .dcs, .dcr, .drf, .eip, .erf, .fff, .iiq, .k25, .kdc, .mef, .mos, .mrw, .nef, .nrw, .orf, .ori, .pef, .ptx, .pxn, .raf, .raw, .rw2, .rwl, .sr2, .srf, .srw, .x3f, .dng, .arw, .cr2, .crw, .erf, .kdc, .mrw, .nef, .nrw, .orf, .pef, .raf, .raw, .rw2, .rwl, .sr2, .srw, .dng
  • DirectDraw Surface - .dds
  • Windows Media Photo (JPEG XR - JPEG extended range) - .wdp, .jxr

And additionally, export of the following new file formats:

  • High Efficiency Image File Format (HEIF) - .heic, .heif
  • WebP - .webp
  • DirectDraw Surface - .dds
  • Windows Media Photo (JPEG XR - JPEG extended range) - .wdp, .jxr

Note that the precise implementation and set of capabilities may vary between machines.

Ghent

The Ghent Workgroup is an international organization made up of graphics professionals and developers creating best practices for publishing and packaging.

As part of their remit they have created the Ghent PDF Output Suite - a highly demanding PDF rendering suite which is designed to test the conformance of PDF rendering software.

Few PDF rendering engines are compliant. Indeed most of the mainstream PDF rendering engines are non-compliant.

ABCpdf is now fully compliant with the Ghent PDF Output Suite 5.0.

Annots

There are a whole host of new form field and annotations classes for simple creation of different types of markup.

In total there are twenty-one new annotation types covering everything from lines to rubber stamps through to 3D content.

  • ButtonAnnotation
  • CheckBoxAnnotation
  • ChoiceFieldAnnotation
  • CircleAnnotation
  • D3DAnnotation
  • FileAttachmentAnnotation
  • FreeTextAnnotation
  • InkAnnotation
  • LineAnnotation
  • LinkAnnotation
  • PolygonAnnotation
  • PolylineAnnotation
  • PopupAnnotation
  • RadioButtonAnnotation
  • RichMediaAnnotation
  • ScreenAnnotation
  • SquareAnnotation
  • StampAnnotation
  • TextAnnotation
  • TextMarkupAnnotation
  • WidgetAnnotation

Signatures

Digital signature functionality has been greatly improved. A good part of the improvement is internal - it just works.

However on the more visible side you will see new structures such as ValidationInfo, which allows you more detailed examination of the extent to which a signature can be classed as valid.

This release includes methods to lock a document after signing and to make a signature into a document wide certification signature. Then there are new methods for adding and signing timestamp signatures and for adding Long Term Validation (LTV) information.

JavaScript

Acrobat eForms and documents can contain JavaScript. In the past we have supported script to the extent to which it is needed for field calculations.

For this release we have exposed a more flexible delegate based approach, which allows you to define new parts of the document object model (DOM) along with functionality to let you trigger and run JavaScript.

So as an example, take the field object. There is a 'display' property which you can set within Acrobat JavaScript but this is meaningless in terms of ABCpdf because ABCpdf does not have a display. However if you have an application which shows PDF documents you might want to hook into this property so you can allow JavaScript to determine whether fields are shown or not.

To do this you get the field prototype and define a new property on it, with a delegate to handle get and set operations. Within this delegate you can modify the document properties to show or hide the field in question so that your PDF rendering reflects the state of the 'display' property.

Streams

Our classes are great for high level operations but sometimes you need a really fine level of control over the processing of a PDF document.

For example suppose you need to scan through a page looking for a filled rectangle in a particular spot color. This is the kind of thing which has been possible in the past but is terribly tricky to get right because the process of keeping track of the items that exist and of the current graphics state is complex and easy to get wrong.

For this release we have tackled this issue with a set of new operation classes. There is the ContentStreamScanner which allows you to scan through a content stream in an efficient way, looking for particular operations.

This co-exists with the GraphicsState and TextState classes which keep track of current state. Both of these can be used in conjunction with the ContentStreamOperation which allows you to find the content streams you want to process.

Finally there's the Resorcerer class which allows fast and easy access to resources referenced in your content streams. All these classes have been designed to be fast and efficient with minimal overhead for any features you do not need to use.

Atoms

The Atom class allows low level access to the PDF structures. It is a terribly flexible way to access items but sometimes you want something a little higher level.

For Version 12 we have released the Converter class. This provides simple access to Atoms and groups of Atoms while resolving any references which are required.

As well as being what you generally need, it also allows a level of optimization as multiple operations can be batched up and processed as one.

The Converter class is easily available via the ObjectSoup.Convert property.

Precision

Historically ABCpdf has used five decimal digits of precision for floating point numbers.

The reasons for this are rooted in the PDF 1.4 specification which was superseded in 2003.

For this release we now allow the use of high precision floating point values for a more current output style.

This precision is controllable via the PDFLimits.FloatDigits class. The documentation for this includes a discussion as to the pros and cons of changing precision.

PDF 2.0

The PDF 2.0 specification - ISO 32000-2:2020 was released late 2020.

ABCpdf is fully supported and compatible with this new release of the PDF specification.

Examples

The changes in ABCpdf have allowed significant simplification of a number of example projects.

Most notably the Annotations project is much more self contained as much of the required form functionality is now contained in the Form object.

The ContentStreamScanner and related classes have also enabled a large amount of code to be removed from the GetColors and Redaction examples.

Other

And as usual there's a whole host of useful new functions and properties like:

  • HtmlOptions.BaseURI - for specifying the location of resources when using AddImageHtml.
  • Annotation appearance functions for getting and setting appearance streams.
  • Annotation.Color - for specifying the color of annotations.
  • NameAtom.Encode - for name encoding strings for insertion into content streams.
  • StringAtom.Data - for getting strings as raw data for insertion into content streams.
  • FontObject properties and functions for accessing horizontal and vertical font metrics.
  • Rendering.Backdrop - for specifying the page background color.
  • VirtualPageOperation - for constructing Form XObjects and annotation appearance streams.


Acknowledgements

ABCpdf incorporates a variety of freely available and open source software. Many thanks to the authors and contributors.

If you are planning to redistribute ABCpdf you should reproduce these acknowledgments in your documentation.

We use open source if it is available under a non-restrictive license. So Apache, MIT, MPL, BSD, LGPL and similar are all judged to be reasonable and appropriate.

However we do not use software available under the GPL because we think that the legal burdens it imposes on us and our clients are too high.

Portable Document Format

Adobe Systems Incorporated owns the copyright for the particular data structures and operators and the written specification constituting the interchange format called the Portable Document Format (PDF).

Adobe gives copyright permission for this material to be used for generating, viewing, printing and otherwise manipulating PDF documents. This is subject to certain conditions which are designed to maintain the integrity of the PDF standard.

For definitive details see the Adobe PDF Reference 5th Edition.

SWF

Adobe Systems Incorporated owns the copyright for the particular data structures and the written specification constituting the interchange format called the SWF File Format.

Adobe gives copyright permission for this material to be used for generating and manipulating SWF files. This is subject to certain conditions which are designed to maintain the integrity of the SWF standard.

For definitive details see the Adobe SWF File Format Specification Version 9.

libjpeg-turbo

This software is based in part on the work of the Independent JPEG Group.

Find out more at http://www.libjpeg-turbo.org/.

/*
* Copyright (C)2009-2015 D. R. Commander. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the libjpeg-turbo Project nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS",
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/

libpng

This software uses LibPNG. Find out more at http://www.libpng.org/.

libtiff

A library for processing and manipulating TIFF images. Find out more at http://www.libtiff.org/.

Copyright (c) 1988-1997 Sam Leffler
Copyright (c) 1991-1997 Silicon Graphics, Inc.

Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that (i) the above copyright notices and this permission notice appear in all copies of the software and related documentation, and (ii) the names of Sam Leffler and Silicon Graphics may not be used in any advertising or publicity relating to the software without the specific, prior written permission of Sam Leffler and Silicon Graphics.

THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

zlib

A free, general-purpose, legally unencumbered - that is, not covered by any patents - lossless data-compression library. Find out more at http://www.gzip.org/zlib/.

Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler

FreeType

Portions of this software are copyright © 1996-2002 The FreeType Project (www.freetype.org). All rights reserved.

Little cms

Little cms is a fast and efficient color management engine. Find out more at http://www.littlecms.com/. Little cms is distributed under the following license.

Copyright (C) 1998-2004 Marti Maria

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

The Legion Of The Bouncy Castle

The Legion of the Bouncy Castle provide a comprehensive cryptography package. Find out more at http://www.bouncycastle.org/. The software is distributed under the following license.

The Bouncy Castle License

Copyright (c) 2000-2004 The Legion Of The Bouncy Castle (http://www.bouncycastle.org)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

OpenOffice.org

ABCpdf is designed to integrate with OpenOffice.org if it is installed on your system.

OpenOffice.org is a fully-featured open-source office productivity suite available as a free download for major platforms in over 45 supported languages. It is compatible with competing office suites. OpenOffice.org is developed, supported, and promoted by an international community operating from the http://www.openoffice.org/ website. Beginning with the upcoming 2.0 release, OpenOffice.org will store data in the open XML file format adopted by the international standards body OASIS.

Fonts

Selected fonts and glyphs created by BenJamin P. Johnson.

Xerces

This product uses Xerces which is licensed under the Apache License as detailed below. It is not a Derivative Work as it merely links to the interfaces of Xerces.

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

  1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
  2. You must cause any modified files to carry prominent notices stating that You changed the files; and
  3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
  4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.

You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.

XPS

This product may incorporate intellectual property owned by Microsoft Corporation. The terms and conditions upon which Microsoft is licensing such intellectual property may be found at http://go.microsoft.com/fwlink/?LinkId=52369.

XML schemas

Portions of this software may use XML schemas Copyright (c) 2006 DCMI, the Dublin Core Metadata Initiative. These are licensed under the Creative Commons 3.0 Attribution license.

:[diStorm64}:

diStorm64 is an open-source disassembler library for x64, licensed under the BSD License.

:[diStorm64}:
The ultimate disassembler library.
Copyright (c) 2003,2004,2005,2006,2007,2008, Gil Dabah
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the diStorm nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Boost

Boost provides free peer-reviewed portable C++ source libraries.

:Boost Software License - Version 1.0 - August 17th, 2003

Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following:

The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE..

JasPer

This software is based in part on JasPer.

JasPer License Version 2.0

Copyright (c) 2001-2006 Michael David Adams
Copyright (c) 1999-2000 Image Power, Inc.
Copyright (c) 1999-2000 The University of British Columbia

All rights reserved.

Permission is hereby granted, free of charge, to any person (the "User") obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

1. The above copyright notices and this permission notice (which includes the disclaimer below) shall be included in all copies or substantial portions of the Software.

2. The name of a copyright holder shall not be used to endorse or promote products derived from the Software without specific prior written permission.

THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES.

libxml

This software is based in part on libxml.

Except where otherwise noted in the source code (trio files, hash.c and list.c) covered by a similar licence but with different Copyright notices:

Copyright (C) 1998-2002 Daniel Veillard. All Rights Reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Except as contained in this notice, the name of Daniel Veillard shall not be used in advertising or otherwise to promote the sale, use or other deal- ings in this Software without prior written authorization from him.

Trio Files

* Copyright (C) 1998 Bjorn Reese and Daniel Stenberg.
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
* MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
* CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.

Hash.c

* Copyright (C) 2000 Bjorn Reese and Daniel Veillard.
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
* MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
* CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.

List.c

* Copyright (C) 2000 Gary Pennington and Daniel Veillard.
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
* MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
* CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.

ImageMagick

This product uses ImageMagick (http://www.imagemagick.org/), which is available under the following license:

The legally binding and authoritative terms and conditions for use, reproduction, and distribution of ImageMagick follow:

Copyright 1999-2009 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication intentionally sent to the Licensor by its copyright holder or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted.

4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

  1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
  2. You must cause any modified files to carry prominent notices stating that You changed the files; and
  3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
  4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.

You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License.

APPENDIX: How to apply the ImageMagick License to your work
To apply the ImageMagick License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format.

Copyright [yyyy] [name of copyright owner]
Licensed under the ImageMagick License (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.imagemagick.org/script/license.php

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

In addition the following Notice is required to be included by the ImageMagick license:

The ImageMagick logo is copyright Pineapple USA Inc. It is freely distributable, however, modifications (other than resizing) to the logo are not permitted.

----

ImageMagick incorporated a small portion of code from the gsview package to locate Ghostscript under Windows in magick/nt_base.c. The source code is distributed under the following license:

Copyright (C) 2000-2002, Ghostgum Software Pty Ltd. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this file ("Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of this Software, and to permit persons to whom this file is furnished to do so, subject to the following conditions:

This Software is distributed with NO WARRANTY OF ANY KIND. No author or distributor accepts any responsibility for the consequences of using it, or for whether it serves any particular purpose or works at all, unless he or she says so in writing.

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

----

The Base64Decode() and Base64Encode() methods in magick/utility.c is based on source code obtained from OpenSSH. The source code is distributed under the following license:

Copyright (c) 2000 Markus Friedl. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

----

ImageMagick includes patterns in coders/pattern.c which are derived from XFig and is distributed under the following license:

FIG : Facility for Interactive Generation of figures Copyright (c) 1985-1988 by Supoj Sutanthavibul Parts Copyright (c) 1989-2000 by Brian V. Smith Parts Copyright (c) 1991 by Paul King

Any party obtaining a copy of these files is granted, free of charge, a full and unrestricted irrevocable, world-wide, paid up, royalty-free, nonexclusive right and license to deal in this software and documentation files (the "Software"), including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons who receive copies from any such party to do so, with the only requirement being that this copyright notice remain intact.

----

In November 2002, the GraphicsMagick Group created GraphicsMagick from ImageMagick Studio's ImageMagick source. ImageMagick adopted some of their improvements to existing programs and scripts under the following license:

Copyright (C) 2002 GraphicsMagick Group, an organization dedicated to making software imaging solutions freely available.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files ("GraphicsMagick"), to deal in GraphicsMagick without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of GraphicsMagick, and to permit persons to whom GraphicsMagick is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of GraphicsMagick.

The software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall GraphicsMagick Group be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with GraphicsMagick or the use or other dealings in GraphicsMagick.

Except as contained in this notice, the name of the GraphicsMagick Group shall not be used in advertising or otherwise to promote the sale, use or other dealings in GraphicsMagick without prior written authorization from the GraphicsMagick Group.

----

ImageMagick makes use of third-party "delegate" libraries to support certain optional features. These libraries bear their own copyrights and licenses, which may be more or less restrictive than the ImageMagick license.

Mozilla XULRunner

This product uses a modified version of Mozilla XULRunner available under the Mozilla Public License (http://www.mozilla.org/MPL/).

In compliance with the license, the source code required to produce the modified version of Mozilla Firefox binaries used in this product can be obtained from bitbucket.org.

Full license details can be found in the source code for the specific release associated with the product.

ExplorerCanvas

Modern browsers like Firefox, Safari, Chrome and Opera support the HTML5 canvas tag to allow 2D command-based drawing. ExplorerCanvas brings the same functionality to Internet Explorer. ExplorerCanvas is available under the Apache License detailed below.

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

  1. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

  2. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

  3. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

  4. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

  5. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

  6. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

  7. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

  8. "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

  9. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

  10. "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

2. Grant of Copyright License.

  1. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

3. Grant of Patent License.

  1. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

4. Redistribution.
You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

  1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
  2. You must cause any modified files to carry prominent notices stating that You changed the files; and
  3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
  4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

5. Submission of Contributions.

  1. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

6. Trademarks.

  1. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty.

  1. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

8. Limitation of Liability.

  1. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability.

  1. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

  1. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.

  2.    Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

Mhook

Part of this software uses the Mhook library.

Copyright (c) 2007-2008, Marton Anka Portions Copyright (c) 2007, Matt Conover

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

HarfBuzz

Copyright © 2010,2011,2012 Google, Inc.
Copyright © 2012 Mozilla Foundation
Copyright © 2011 Codethink Limited
Copyright © 2008,2010 Nokia Corporation and/or its subsidiary(-ies)
Copyright © 2009 Keith Stribley
Copyright © 2009 Martin Hosken and SIL International
Copyright © 2007 Chris Wilson
Copyright © 2006 Behdad Esfahbod
Copyright © 2005 David Turner
Copyright © 2004,2007,2008,2009,2010 Red Hat, Inc.
Copyright © 1998-2004 David Turner and Werner Lemberg

This is part of HarfBuzz, a text shaping library.

Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software.

IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

UCDN

Copyright (C) 2012 Grigori Goronzy <greg@kinoho.net>

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

LZW

The LZW code is covered by the following licenses.

/*
* Copyright (c) 1988-1997 Sam Leffler
* Copyright (c) 1991-1997 Silicon Graphics, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and
* its documentation for any purpose is hereby granted without fee, provided
* that (i) the above copyright notices and this permission notice appear in
* all copies of the software and related documentation, and (ii) the names of
* Sam Leffler and Silicon Graphics may not be used in any advertising or
* publicity relating to the software without the specific, prior written
* permission of Sam Leffler and Silicon Graphics.
*
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
*
* IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*/

/*
* TIFF Library.
* Rev 5.0 Lempel-Ziv & Welch Compression Support
*
* This code is derived from the compress program whose code is
* derived from software contributed to Berkeley by James A. Woods,
* derived from original work by Spencer Thomas and Joseph Orost.
*
* The original Berkeley copyright notice appears below in its entirety.
*/

/*
* Copyright (c) 1985, 1986 The Regents of the University of California.
* All rights reserved.
*
* This code is derived from software contributed to Berkeley by
* James A. Woods, derived from original work by Spencer Thomas
* and Joseph Orost.
*
* Redistribution and use in source and binary forms are permitted
* provided that the above copyright notice and this paragraph are
* duplicated in all such forms and that any documentation,
* advertising materials, and other materials related to such
* distribution and use acknowledge that the software was developed
* by the University of California, Berkeley. The name of the
* University may not be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/

Random Numbers

One of the random number generators we use is covered by the following license.

//*
* Copyright (c) 1983 Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
* provided that the above copyright notice and this paragraph are
* duplicated in all such forms and that any documentation,
* advertising materials, and other materials related to such
* distribution and use acknowledge that the software was developed
* by the University of California, Berkeley. The name of the
* University may not be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/

jemalloc

We make use of jemalloc for some memory management.

Unless otherwise specified, files in the jemalloc source distribution are
subject to the following license:
--------------------------------------------------------------------------------
Copyright (C) 2002-2014 Jason Evans <jasone@canonware.com>.
All rights reserved.
Copyright (C) 2007-2012 Mozilla Foundation. All rights reserved.
Copyright (C) 2009-2014 Facebook, Inc. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice(s),
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice(s),
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------

Chrome Embedded Framework

We make use of the Chrome Embedded Framework (CEF) for the ABCChome engine.

// Copyright (c) 2008-2014 Marshall A. Greenblatt. Portions Copyright (c)
// 2006-2009 Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

ChakraCore

We make use of ChakraCore for PDF JavaScript processing.

These licenses are specific to the ChakraCore32.dll and ChakraCore64.dll optional components.

ChakraCore
The MIT License (MIT)

Copyright (c) Microsoft Corporation
All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

In addition ChakraCore itself makes use of a variety of libraries. Most of these are build or test oriented and thus are not used in ABCpdf. However we reproduce the entire third party list for completeness.

In particular it should be noted that we do not include the GPL licensed elements - deltablue.js, JavaScript GameBoy Color Emulator, MakeNewWorld() function and pdfjs.js.

ChakraCore uses third party material from the projects listed below.
The original copyright notice and the license under which Microsoft
received such third party material are set forth below. Microsoft
reserves all other rights not expressly granted, whether by
implication, estoppel or otherwise.

In the event that we accidentally failed to list a required notice, please
bring it to our attention. Post an issue or email us: chakracore@microsoft.com

THIRD-PARTY SOFTWARE NOTICES AND INFORMATION
Do Not Translate or Localize

ChakraCore incorporates third party material from the projects listed below.
The original copyright notice and the license under which Microsoft received
such third party material are set forth below. Microsoft reserves all other
rights not expressly granted, whether by implication, estoppel or otherwise.

1. backbone.suggestions (https://github.com/qloo/backbone.suggestions)
2. BeatDetektor.js
3. Catch
4. CRC.h
5. deltablue.js
6. Dojo Toolkit (https://dojotoolkit.org)
7. DSP.js (https://github.com/corbanbrook/dsp.js/)
8. ecma-proposal-object.getownpropertydescriptors (https://github.com/tc39/proposal-object-getownpropertydescriptors/)
9. File copyright Microsoft and Geoff Norton
10. File with code copyright Baron Schwartz (Sunspider/xparb.js)
11. Files copyright .NET Foundation
12. Files with code copyright Paul Johnston (http://pajhome.org.uk/)
13. Intel VTune Amplifier XE (https://software.intel.com/en-us/intel-vtune-amplifier-xe)
14. JavaScript GameBoy Color Emulator
15. JetStream
16. jQuery (https://github.com/jquery/jquery)
17. Kraken (http://krakenbenchmark.mozilla.org)
18. MakeNewWorld() function
19. MochiKit (https://github.com/mochi/mochikit)
20. Mozilla XML-RPC Client code
21. Octane (https://github.com/chromium/octane)
22. pdfjs.js (https://github.com/mozilla/pdf.js)
23. Pixastic Lib (https://github.com/jseidelin/pixastic)
24. Prototype (https://github.com/sstephenson/prototype)
25. Sputnik (https://github.com/fholm/IronJS/tree/master/Src/Tests/Sputnik/sputnik-v1)
26. SunSpider
27. test262 (https://github.com/tc39/test262)
28. The Computer Language Shootout
29. WebAssembly/testsuite (https://github.com/WebAssembly/testsuite)
30. zlib-data.js
31. yargs-parser.js (https://github.com/yargs/yargs-parser)
32. camelcase.js (https://github.com/sindresorhus/camelcase)

%% backbone.suggestions NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
Copyright (c) 2011-2012 Michael Diolosa (@mbrio)

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
=========================================
END OF backbone.suggestions NOTICES, INFORMATION, AND LICENSE

%% BeatDetektor.js NOTICES, INFORMATION, AND LICENSE BEGIN HERE
[PART OF KRAKEN TEST SUITE]
=========================================
* BeatDetektor.js
*
* BeatDetektor - CubicFX Visualizer Beat Detection & Analysis Algorithm
* Javascript port by Charles J. Cliffe and Corban Brook
*
* Created by Charles J. Cliffe on 09-11-30.
* Copyright 2009 Charles J. Cliffe. All rights reserved.
*
* BeatDetektor is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Please note that only the Javascript version of BeatDetektor is licensed
* under the terms of LGPL version 3; ports of BeatDetektor or derivatives
* in other languages are licensed under the terms of GPL version 3.
*
* BeatDetektor is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Please contact cj@cubicproductions.com if you seek alternate
* licensing terms for your project.
*
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this license
document, but changing it is not allowed. This version of the GNU Lesser General
Public License incorporates the terms and conditions of version 3 of the GNU
General Public License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, 'this License' refers to version 3 of the GNU Lesser General
Public License, and the 'GNU GPL' refers to version 3 of the GNU General Public License.
'The Library' refers to a covered work governed by this License, other than an
Application or a Combined Work as defined below.
An 'Application' is any work that makes use of an interface provided by the Library,
but which is not otherwise based on the Library. Defining a subclass of a class
defined by the Library is deemed a mode of using an interface provided by the Library.
A 'Combined Work' is a work produced by combining or linking an Application with
the Library. The particular version of the Library with which the Combined Work
was made is also called the 'Linked Version'.
The 'Minimal Corresponding Source' for a Combined Work means the Corresponding
Source for the Combined Work, excluding any source code for portions of the
Combined Work that, considered in isolation, are based on the Application,
and not on the Linked Version.
The 'Corresponding Application Code' for a Combined Work means the object code
and/or source code for the Application, including any data and utility programs
needed for reproducing the Combined Work from the Application, but excluding the
System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License without being
bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a facility refers
to a function or data to be supplied by an Application that uses the facility
(other than as an argument passed when the facility is invoked), then you may
convey a copy of the modified version:
a) under this License, provided that you make a good faith effort to ensure that,
in the event an Application does not supply the function or data, the facility
still operates, and performs whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of this License
applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from a header file
that is part of the Library. You may convey such object code under terms of your
choice, provided that, if the incorporated material is not limited to numerical
parameters, data structure layouts and accessors, or small macros, inline functions
and templates (ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the Library is used
in it and that the Library and its use are covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that, taken together,
effectively do not restrict modification of the portions of the Library contained
in the Combined Work and reverse engineering for debugging such modifications, if
you also do each of the following:
a) Give prominent notice with each copy of the Combined Work that the Library is
used in it and that the Library and its use are covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license document.
c) For a Combined Work that displays copyright notices during execution, include
the copyright notice for the Library among these notices, as well as a reference
directing the user to the copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this License, and
the Corresponding Application Code in a form suitable for, and under terms that
permit, the user to recombine or relink the Application with a modified version
of the Linked Version to produce a modified Combined Work, in the manner specified
by section 6 of the GNU GPL for conveying Corresponding Source.
1) Use a suitable shared library mechanism for linking with the Library. A suitable
mechanism is one that (a) uses at run time a copy of the Library already present
on the user's computer system, and (b) will operate properly with a modified
version of the Library that is interface-compatible with the Linked Version.
e) Provide Installation Information, but only if you would otherwise be required
to provide such information under section 6 of the GNU GPL, and only to the extent
that such information is necessary to install and execute a modified version of
the Combined Work produced by recombining or relinking the Application with a
modified version of the Linked Version. (If you use option 4d0, the Installation
Information must accompany the Minimal Corresponding Source and Corresponding
Application Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the Library side by
side in a single library together with other library facilities that are not
Applications and are not covered by this License, and convey such a combined
library under terms of your choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based on the
Library, uncombined with any other library facilities, conveyed under the terms
of this License.
b) Give prominent notice with the combined library that part of it is a work
based on the Library, and explaining where to find the accompanying uncombined
form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions of the GNU
Lesser General Public License from time to time. Such new versions will be similar
in spirit to the present version, but may differ in detail to address new problems
or concerns. Each version is given a distinguishing version number. If the Library
as you received it specifies that a certain numbered version of the GNU Lesser
General Public License 'or any later version' applies to it, you have the option
of following the terms and conditions either of that published version or of any
later version published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser General Public
License, you may choose any version of the GNU Lesser General Public License
ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide whether
future versions of the GNU Lesser General Public License shall apply, that
proxy's public statement of acceptance of any version is permanent authorization
for you to choose that version for the Library.
=========================================
END OF BeatDetektor.js NOTICES, INFORMATION, AND LICENSE

%% Catch NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
For Catch:

Catch

Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.

Boost Software License - Version 1.0 - August 17th, 2003

Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:

The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

For code from cocoawithlove.com:

Copyright © 2008-2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved.

Permission to use, copy, modify, and/or distribute this software for any purpose
with or without fee is hereby granted, provided that the above copyright notice
and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED 'AS IS' AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,
OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

For code from developer.apple.com:

Ownership of Site; Agreement to Terms of Use
These Terms and Conditions of Use (the 'Terms of Use') apply to the Apple web
site located at www.apple.com, and all associated sites linked to www.apple.com
by Apple, its subsidiaries and affiliates, including Apple sites around the world
(collectively, the 'Site'). The Site is the property of Apple Inc. ('Apple') and
its licensors. BY USING THE SITE, YOU AGREE TO THESE TERMS OF USE; IF YOU DO NOT
AGREE, DO NOT USE THE SITE.

Apple reserves the right, at its sole discretion, to change, modify, add or remove
portions of these Terms of Use, at any time. It is your responsibility to check
these Terms of Use periodically for changes. Your continued use of the Site following
the posting of changes will mean that you accept and agree to the changes. As long
as you comply with these Terms of Use, Apple grants you a personal, non-exclusive,
non-transferable, limited privilege to enter and use the Site.

Content
All text, graphics, user interfaces, visual interfaces, photographs, trademarks,
logos, sounds, music, artwork and computer code (collectively, 'Content'),
including but not limited to the design, structure, selection, coordination,
expression, 'look and feel' and arrangement of such Content, contained on the
Site is owned, controlled or licensed by or to Apple, and is protected by trade
dress, copyright, patent and trademark laws, and various other intellectual
property rights and unfair competition laws.

Except as expressly provided in these Terms of Use, no part of the Site and no
Content may be copied, reproduced, republished, uploaded, posted, publicly displayed,
encoded, translated, transmitted or distributed in any way (including 'mirroring')
to any other computer, server, Web site or other medium for publication or
distribution or for any commercial enterprise, without Appleís express prior written
consent.

You may use information on Apple products and services (such as data sheets,
knowledge base articles, and similar materials) purposely made available by Apple
for downloading from the Site, provided that you (1) not remove any proprietary
notice language in all copies of such documents, (2) use such information only
for your personal, non-commercial informational purpose and do not copy or post
such information on any networked computer or broadcast it in any media, (3)
make no modifications to any such information, and (4) not make any additional
representations or warranties relating to such documents.

Your Use of the Site
You may not use any 'deep-link', 'page-scrape', 'robot', 'spider' or other
automatic device, program, algorithm or methodology, or any similar or equivalent
manual process, to access, acquire, copy or monitor any portion of the Site or
any Content, or in any way reproduce or circumvent the navigational structure or
presentation of the Site or any Content, to obtain or attempt to obtain any
materials, documents or information through any means not purposely made available
through the Site. Apple reserves the right to bar any such activity.

You may not attempt to gain unauthorized access to any portion or feature of the
Site, or any other systems or networks connected to the Site or to any Apple
server, or to any of the services offered on or through the Site, by hacking,
password 'mining' or any other illegitimate means.

You may not probe, scan or test the vulnerability of the Site or any network
connected to the Site, nor breach the security or authentication measures on
the Site or any network connected to the Site. You may not reverse look-up,
trace or seek to trace any information on any other user of or visitor to the
Site, or any other customer of Apple, including any Apple account not owned by
you, to its source, or exploit the Site or any service or information made
available or offered by or through the Site, in any way where the purpose is
to reveal any information, including but not limited to personal identification
or information, other than your own information, as provided for by the Site.

You agree that you will not take any action that imposes an unreasonable or
disproportionately large load on the infrastructure of the Site or Apple's
systems or networks, or any systems or networks connected to the Site or to Apple.

You agree not to use any device, software or routine to interfere or attempt
to interfere with the proper working of the Site or any transaction being
conducted on the Site, or with any other personís use of the Site.

You may not forge headers or otherwise manipulate identifiers in order to disguise
the origin of any message or transmittal you send to Apple on or through the Site
or any service offered on or through the Site. You may not pretend that you are,
or that you represent, someone else, or impersonate any other individual or entity.

You may not use the Site or any Content for any purpose that is unlawful or
prohibited by these Terms of Use, or to solicit the performance of any illegal
activity or other activity which infringes the rights of Apple or others.

Purchases; Other Terms and Conditions
Additional terms and conditions may apply to purchases of goods or services and
to specific portions or features of the Site, including contests, promotions or
other similar features, all of which terms are made a part of these Terms of Use
by this reference. You agree to abide by such other terms and conditions,
including where applicable representing that you are of sufficient legal age to
use or participate in such service or feature. If there is a conflict between
these Terms of Use and the terms posted for or applicable to a specific portion
of the Site or for any service offered on or through the Site, the latter terms
shall control with respect to your use of that portion of the Site or the specific service.

Apple's obligations, if any, with regard to its products and services are governed
solely by the agreements pursuant to which they are provided, and nothing on this
Site should be construed to alter such agreements.

Apple may make changes to any products or services offered on the Site, or to the
applicable prices for any such products or services, at any time, without notice.
The materials on the Site with respect to products and services may be out of date,
and Apple makes no commitment to update the materials on the Site with respect to
such products and services.

The following terms also govern and apply to your use of the Site, and they are
incorporated herein by this reference:

Guidelines for Using Apple Trademarks & Copyrights
Rights & Permissions
Trademarks
Claims of Copyright Infringement
Piracy
Counterfeit Products
Apple's Unsolicited Idea Submission Policy
Software License Information
Legal Contacts
Each of these policies may be changed from time to time and are effective
immediately upon posting such changes on the Site.

Accounts, Passwords and Security
Certain features or services offered on or through the Site may require you to
open an account (including setting up an Apple ID and password). You are entirely
responsible for maintaining the confidentiality of the information you hold for
your account, including your password, and for any and all activity that occurs
under your account as a result of your failing to keep this information secure
and confidential. You agree to notify Apple immediately of any unauthorized use
of your account or password, or any other breach of security. You may be held
liable for losses incurred by Apple or any other user of or visitor to the Site
due to someone else using your Apple ID, password or account as a result of your
failing to keep your account information secure and confidential.

You may not use anyone elseís Apple ID, password or account at any time without
the express permission and consent of the holder of that Apple ID, password or
account. Apple cannot and will not be liable for any loss or damage arising
from your failure to comply with these obligations.

Privacy
Appleís Privacy Policy applies to use of this Site, and its terms are made a part
of these Terms of Use by this reference. To view Appleís Privacy Policy, click
here. Additionally, by using the Site, you acknowledge and agree that Internet
transmissions are never completely private or secure. You understand that any
message or information you send to the Site may be read or intercepted by others,
even if there is a special notice that a particular transmission (for example,
credit card information) is encrypted.

Links to Other Sites and to the Apple Site
This Site may contain links to other independent third-party Web sites ('Linked
Sites'). These Linked Sites are provided solely as a convenience to our visitors.
Such Linked Sites are not under Appleís control, and Apple is not responsible
for and does not endorse the content of such Linked Sites, including any information
or materials contained on such Linked Sites. You will need to make your own
independent judgment regarding your interaction with these Linked Sites.

Disclaimers
APPLE DOES NOT PROMISE THAT THE SITE OR ANY CONTENT, SERVICE OR FEATURE OF THE
SITE WILL BE ERROR-FREE OR UNINTERRUPTED, OR THAT ANY DEFECTS WILL BE CORRECTED,
OR THAT YOUR USE OF THE SITE WILL PROVIDE SPECIFIC RESULTS. THE SITE AND ITS CONTENT
ARE DELIVERED ON AN 'AS-IS' AND 'AS-AVAILABLE' BASIS. ALL INFORMATION PROVIDED ON
THE SITE IS SUBJECT TO CHANGE WITHOUT NOTICE. APPLE CANNOT ENSURE THAT ANY FILES
OR OTHER DATA YOU DOWNLOAD FROM THE SITE WILL BE FREE OF VIRUSES OR CONTAMINATION
OR DESTRUCTIVE FEATURES. APPLE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING ANY WARRANTIES OF ACCURACY, NON-INFRINGEMENT, MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE. APPLE DISCLAIMS ANY AND ALL LIABILITY FOR THE
ACTS, OMISSIONS AND CONDUCT OF ANY THIRD PARTIES IN CONNECTION WITH OR RELATED
TO YOUR USE OF THE SITE AND/OR ANY APPLE SERVICES. YOU ASSUME TOTAL RESPONSIBILITY
FOR YOUR USE OF THE SITE AND ANY LINKED SITES. YOUR SOLE REMEDY AGAINST APPLE FOR
DISSATISFACTION WITH THE SITE OR ANY CONTENT IS TO STOP USING THE SITE OR ANY SUCH
CONTENT. THIS LIMITATION OF RELIEF IS A PART OF THE BARGAIN BETWEEN THE PARTIES.

The above disclaimer applies to any damages, liability or injuries caused by any
failure of performance, error, omission, interruption, deletion, defect, delay in
operation or transmission, computer virus, communication line failure, theft or
destruction of or unauthorized access to, alteration of, or use, whether for breach
of contract, tort, negligence or any other cause of action.

Apple reserves the right to do any of the following, at any time, without notice:
(1) to modify, suspend or terminate operation of or access to the Site, or any
portion of the Site, for any reason; (2) to modify or change the Site, or any
portion of the Site, and any applicable policies or terms; and (3) to interrupt
the operation of the Site, or any portion of the Site, as necessary to perform
routine or non-routine maintenance, error correction, or other changes.

Limitation of Liability
Except where prohibited by law, in no event will Apple be liable to you for any
indirect, consequential, exemplary, incidental or punitive damages, including
lost profits, even if Apple has been advised of the possibility of such damages.

If, notwithstanding the other provisions of these Terms of Use, Apple is found
to be liable to you for any damage or loss which arises out of or is in any way
connected with your use of the Site or any Content, Appleís liability shall in
no event exceed the greater of (1) the total of any subscription or similar fees
with respect to any service or feature of or on the Site paid in the six months
prior to the date of the initial claim made against Apple (but not including the
purchase price for any Apple hardware or software products or any AppleCare or
similar support program), or (2) US$100.00. Some jurisdictions do not allow
limitations of liability, so the foregoing limitation may not apply to you.

Indemnity
You agree to indemnify and hold Apple, its officers, directors, shareholders,
predecessors, successors in interest, employees, agents, subsidiaries and affiliates,
harmless from any demands, loss, liability, claims or expenses (including attorneys'
fees), made against Apple by any third party due to or arising out of or in
connection with your use of the Site.

Violation of These Terms of Use
Apple may disclose any information we have about you (including your identity)
if we determine that such disclosure is necessary in connection with any
investigation or complaint regarding your use of the Site, or to identify, contact
or bring legal action against someone who may be causing injury to or interference
with (either intentionally or unintentionally) Appleís rights or property, or the
rights or property of visitors to or users of the Site, including Apple's
customers. Apple reserves the right at all times to disclose any information that
Apple deems necessary to comply with any applicable law, regulation, legal process
or governmental request. Apple also may disclose your information when Apple
determines that applicable law requires or permits such disclosure, including
exchanging information with other companies and organizations for fraud protection
purposes.

You acknowledge and agree that Apple may preserve any transmittal or communication
by you with Apple through the Site or any service offered on or through the Site,
and may also disclose such data if required to do so by law or Apple determines
that such preservation or disclosure is reasonably necessary to (1) comply with
legal process, (2) enforce these Terms of Use, (3) respond to claims that any
such data violates the rights of others, or (4) protect the rights, property or
personal safety of Apple, its employees, users of or visitors to the Site, and
the public.

You agree that Apple may, in its sole discretion and without prior notice,
terminate your access to the Site and/or block your future access to the Site
if we determine that you have violated these Terms of Use or other agreements
or guidelines which may be associated with your use of the Site. You also agree
that any violation by you of these Terms of Use will constitute an unlawful and
unfair business practice, and will cause irreparable harm to Apple, for which
monetary damages would be inadequate, and you consent to Apple obtaining any
injunctive or equitable relief that Apple deems necessary or appropriate in
such circumstances. These remedies are in addition to any other remedies Apple
may have at law or in equity.

You agree that Apple may, in its sole discretion and without prior notice,
terminate your access to the Site, for cause, which includes (but is not limited
to) (1) requests by law enforcement or other government agencies, (2) a request
by you (self-initiated account deletions), (3) discontinuance or material
modification of the Site or any service offered on or through the Site, or (4)
unexpected technical issues or problems.

If Apple does take any legal action against you as a result of your violation of
these Terms of Use, Apple will be entitled to recover from you, and you agree to
pay, all reasonable attorneysí fees and costs of such action, in addition to any
other relief granted to Apple. You agree that Apple will not be liable to you or
to any third party for termination of your access to the Site as a result of any
violation of these Terms of Use.

Governing Law; Dispute Resolution
You agree that all matters relating to your access to or use of the Site,
including all disputes, will be governed by the laws of the United States and by
the laws of the State of California without regard to its conflicts of laws
provisions. You agree to the personal jurisdiction by and venue in the state and
federal courts in Santa Clara County, California, and waive any objection to such
jurisdiction or venue. The preceding provision regarding venue does not apply if
you are a consumer based in the European Union. If you are a consumer based in
the European Union, you may make a claim in the courts of the country where you
reside. Any claim under these Terms of Use must be brought within one (1) year
after the cause of action arises, or such claim or cause of action is barred.
Claims made under the separate terms and conditions of purchase for goods and
services are not subject to this limitation. No recovery may be sought or
received for damages other than out-of-pocket expenses, except that the
prevailing party will be entitled to costs and attorneysí fees. In the event of
any controversy or dispute between Apple and you arising out of or in connection
with your use of the Site, the parties shall attempt, promptly and in good faith,
to resolve any such dispute. If we are unable to resolve any such dispute within
a reasonable time (not to exceed thirty (30) days), then either party may submit
such controversy or dispute to mediation. If the dispute cannot be resolved
through mediation, then the parties shall be free to pursue any right or remedy
available to them under applicable law.

Void Where Prohibited
Apple administers and operates the www.apple.com Site from its location in Cupertino,
California USA; other Apple sites may be administered and operated from various
locations outside the United States. Although the Site is accessible worldwide,
not all features, products or services discussed, referenced, provided or offered
through or on the Site are available to all persons or in all geographic locations,
or appropriate or available for use outside the United States. Apple reserves the
right to limit, in its sole discretion, the provision and quantity of any feature,
product or service to any person or geographic area. Any offer for any feature,
product or service made on the Site is void where prohibited. If you choose to
access the Site from outside the United States, you do so on your own initiative
and you are solely responsible for complying with applicable local laws.

Miscellaneous
You may not use or export or re-export any Content or any copy or adaptation of
such Content, or any product or service offered on the Site, in violation of any
applicable laws or regulations, including without limitation United States export
laws and regulations.

If any of the provisions of these Terms of Use are held by a court or other
tribunal of competent jurisdiction to be void or unenforceable, such provisions
shall be limited or eliminated to the minimum extent necessary and replaced with
a valid provision that best embodies the intent of these Terms of Use, so that
these Terms of Use shall remain in full force and effect. These Terms of Use
constitute the entire agreement between you and Apple with regard to your use of
the Site, and any and all other written or oral agreements or understandings
previously existing between you and Apple with respect to such use are hereby
superseded and cancelled. Other than as provided in a purchase agreement you
enter into with Apple, Apple will not accept any counter-offers to these Terms
of Use, and all such offers are hereby categorically rejected. Appleís failure
to insist on or enforce strict performance of these Terms of Use shall not be
construed as a waiver by Apple of any provision or any right it has to enforce
these Terms of Use, nor shall any course of conduct between Apple and you or
any other party be deemed to modify any provision of these Terms of Use. These
Terms of Use shall not be interpreted or construed to confer any rights or
remedies on any third parties.

Apple provides access to Apple international data and, therefore, may contain
references or cross references to Apple products, programs and services that
are not announced in your country. Such reference does not imply that Apple in
your country intends to announce such products, programs or services.

Feedback and Information
Any feedback you provide at this site shall be deemed to be non-confidential.
Apple shall be free to use such information on an unrestricted basis.

The information contained in this web site is subject to change without notice.
Copyright © 1997-2009 Apple Inc. All rights reserved.
Apple Inc., 1 Infinite Loop, Cupertino, CA 95014, USA.

Updated by The Apple Legal Team on Nov. 20, 2009

=========================================
END OF Catch NOTICES, INFORMATION, AND LICENSE

%% CRC.h NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
COPYRIGHT (C) 1986 Gary S. Brown. You may use this program, or code or tables
extracted from it, as desired without restriction.
=========================================
END OF CRC.h NOTICES, INFORMATION, AND LICENSE

%% deltablue.js NOTICES, INFORMATION, AND LICENSE BEGIN HERE
[PART OF OCTANE BENCHMARK]
=========================================
/////////////////////////////////////////////////////////////
// deltablue.js
/////////////////////////////////////////////////////////////

// Copyright 2008 the V8 project authors. All rights reserved.
// Copyright 1996 John Maloney and Mario Wolczko.

// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

// This implementation of the DeltaBlue benchmark is derived
// from the Smalltalk implementation by John Maloney and Mario
// Wolczko. Some parts have been translated directly, whereas
// others have been modified more aggresively to make it feel
// more like a JavaScript program.

GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your freedom to share
and change it. By contrast, the GNU General Public License is intended to guarantee
your freedom to share and change free software--to make sure the software is free
for all its users. This General Public License applies to most of the Free
Software Foundation's software and to any other program whose authors commit
to using it. (Some other Free Software Foundation software is covered by the GNU
Lesser General Public License instead.) You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General
Public Licenses are designed to make sure that you have the freedom to distribute
copies of free software (and charge for this service if you wish), that you receive
source code or can get it if you want it, that you can change the software or
use pieces of it in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny
you these rights or to ask you to surrender the rights. These restrictions
translate to certain responsibilities for you if you distribute copies of the
software, or if you modify it. For example, if you distribute copies of such a
program, whether gratis or for a fee, you must give the recipients all the rights
that you have. You must make sure that they, too, receive or can get the source
code. And you must show them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2) offer
you this license which gives you legal permission to copy, distribute and/or
modify the software.
Also, for each author's protection and ours, we want to make certain that
everyone understands that there is no warranty for this free software. If the
software is modified by someone else and passed on, we want its recipients to
know that what they have is not the original, so that any problems introduced
by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We wish
to avoid the danger that redistributors of a free program will individually
obtain patent licenses, in effect making the program proprietary. To prevent
this, we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification follow.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains a notice
placed by the copyright holder saying it may be distributed under the terms
of this General Public License. The "Program", below, refers to any such program
or work, and a "work based on the Program" means either the Program or any
derivative work under copyright law: that is to say, a work containing the
Program or a portion of it, either verbatim or with modifications and/or translated
into another language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not covered by
this License; they are outside its scope. The act of running the Program is not
restricted, and the output from the Program is covered only if its contents
constitute a work based on the Program (independent of having been made by running
the Program). Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's source code as
you receive it, in any medium, provided that you conspicuously and appropriately
publish on each copy an appropriate copyright notice and disclaimer of warranty;
keep intact all the notices that refer to this License and to the absence of any
warranty; and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and you may at
your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus
forming a work based on the Program, and copy and distribute such modifications
or work under the terms of Section 1 above, provided that you also meet all of
these conditions:

a) You must cause the modified files to carry prominent notices stating that
you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in whole or in
part contains or is derived from the Program or any part thereof, to be licensed
as a whole at no charge to all third parties under the terms of this License.

c) If the modified program normally reads commands interactively when run, you
must cause it, when started running for such interactive use in the most ordinary
way, to print or display an announcement including an appropriate copyright notice
and a notice that there is no warranty (or else, saying that you provide a
warranty) and that users may redistribute the program under these conditions,
and telling the user how to view a copy of this License. (Exception: if the
Program itself is interactive but does not normally print such an announcement,
your work based on the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable sections
of that work are not derived from the Program, and can be reasonably considered
independent and separate works in themselves, then this License, and its terms,
do not apply to those sections when you distribute them as separate works. But
when you distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of this
License, whose permissions for other licensees extend to the entire whole, and
thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights
to work written entirely by you; rather, the intent is to exercise the right to
control the distribution of derivative or collective works based on the Program.
In addition, mere aggregation of another work not based on the Program with the
Program (or with a work based on the Program) on a volume of a storage or
distribution medium does not bring the other work under the scope of this License.
3. You may copy and distribute the Program (or a work based on it, under
Section 2) in object code or executable form under the terms of Sections 1 and 2
above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code,
which must be distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three years, to give
any third party, for a charge no more than your cost of physically performing
source distribution, a complete machine-readable copy of the corresponding
source code, to be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer to distribute
corresponding source code. (This alternative is allowed only for noncommercial
distribution and only if you received the program in object code or executable
form with such an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for making
modifications to it. For an executable work, complete source code means all
the source code for all modules it contains, plus any associated interface
definition files, plus the scripts used to control compilation and installation
of the executable. However, as a special exception, the source code distributed
need not include anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the operating
system on which the executable runs, unless that component itself accompanies the
executable. If distribution of executable or object code is made by offering access
to copy from a designated place, then offering equivalent access to copy the source
code from the same place counts as distribution of the source code, even though
third parties are not compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program except as
expressly provided under this License. Any attempt otherwise to copy, modify,
sublicense or distribute the Program is void, and will automatically terminate
your rights under this License. However, parties who have received copies, or
rights, from you under this License will not have their licenses terminated so
long as such parties remain in full compliance.
5. You are not required to accept this License, since you have not signed it.
However, nothing else grants you permission to modify or distribute the Program
or its derivative works. These actions are prohibited by law if you do not
accept this License. Therefore, by modifying or distributing the Program (or any
work based on the Program), you indicate your acceptance of this License to do so,
and all its terms and conditions for copying, distributing or modifying the Program
or works based on it.
6. Each time you redistribute the Program (or any work based on the Program), the
recipient automatically receives a license from the original licensor to copy,
distribute or modify the Program subject to these terms and conditions. You may
not impose any further restrictions on the recipients' exercise of the rights
granted herein. You are not responsible for enforcing compliance by third parties
to this License.
7. If, as a consequence of a court judgment or allegation of patent infringement
or for any other reason (not limited to patent issues), conditions are imposed
on you (whether by court order, agreement or otherwise) that contradict the
conditions of this License, they do not excuse you from the conditions of this
License. If you cannot distribute so as to satisfy simultaneously your obligations
under this License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent license would not
permit royalty-free redistribution of the Program by all those who receive copies
directly or indirectly through you, then the only way you could satisfy both it
and this License would be to refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any particular
circumstance, the balance of the section is intended to apply and the section as
a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or
other property right claims or to contest validity of any such claims; this
section has the sole purpose of protecting the integrity of the free software
distribution system, which is implemented by public license practices. Many
people have made generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that system; it is
up to the author/donor to decide if he or she is willing to distribute software
through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a
consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain countries
either by patents or by copyrighted interfaces, the original copyright holder who
places the Program under this License may add an explicit geographical distribution
limitation excluding those countries, so that distribution is permitted only in or
among countries not thus excluded. In such case, this License incorporates the
limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions of the
General Public License from time to time. Such new versions will be similar in
spirit to the present version, but may differ in detail to address new problems
or concerns.
Each version is given a distinguishing version number. If the Program specifies
a version number of this License which applies to it and "any later version",
you have the option of following the terms and conditions either of that version
or of any later version published by the Free Software Foundation. If the Program
does not specify a version number of this License, you may choose any version ever
published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs whose
distribution conditions are different, write to the author to ask for permission.
For software which is copyrighted by the Free Software Foundation, write to the
Free Software Foundation; we sometimes make exceptions for this. Our decision
will be guided by the two goals of preserving the free status of all derivatives
of our free software and of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE
PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED
IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS"
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH
YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY
TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE
OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR
OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
=========================================
END OF deltablue.js NOTICES, INFORMATION, AND LICENSE

%% Dojo Toolkit NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
Copyright (c) 2005-2015, The Dojo Foundation All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list
of conditions and the following disclaimer. Redistributions in binary form must
reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of the Dojo Foundation nor the names of its contributors may be
used to endorse or promote products derived from this software without specific
prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=========================================
END OF Dojo Toolkit NOTICES, INFORMATION, AND LICENSE

%% DSP.js NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
For DSP.js:

Copyright (c) 2010 Corban Brook

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

For Locutus:

Copyright (c) 2007-2016 Kevin van Zonneveld (http://kvz.io)
and Contributors (http://locutus.io/authors)

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
=========================================
END OF DSP.js NOTICES, INFORMATION, AND LICENSE

%% ecma-proposal-object.getownpropertydescriptors NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
Copyright (c) 2016, Andrea Giammarchi
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The views and conclusions contained in the software and documentation are those
of the authors and should not be interpreted as representing official policies,
either expressed or implied, of the FreeBSD Project.
=========================================
END OF ecma-proposal-object.getownpropertydescriptors NOTICES, INFORMATION, AND LICENSE

%% File copyright Microsoft and Geoff Norton NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
Copyright (c) Microsoft
Copyright (c) Geoff Norton

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the ""Software""), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE."
=========================================
END OF File copyright Microsoft and Geoff Norton NOTICES, INFORMATION, AND LICENSE

%% File with code copyright Baron Schwartz NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
Includes code prefaced by the following notice:

/*
* Copyright (C) 2004 Baron Schwartz <baron at sequent dot org>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by the
* Free Software Foundation, version 2.1.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
=========================================
END OF File with code copyright Baron Schwartz NOTICES, INFORMATION, AND LICENSE

%% Files copyright .NET Foundation NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
Copyright (c) .NET Foundation

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the ""Software""), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE."
=========================================
END OF Files copyright .NET Foundation NOTICES, INFORMATION, AND LICENSE

%% Files with code copyright Paul Johnston NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
For overall Paul Johnson material:

Copyright (c) 1998 - 2009, Paul Johnston & Contributors
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list
of conditions and the following disclaimer. Redistributions in binary form must
reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of the author nor the names of its contributors may be used to
endorse or promote products derived from this software without specific prior
written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.

For RSA MD5 implementation:

License to copy and use this software is granted provided that it is identified
as the "RSA Data Security, Inc. MD5 Message-Digest Algorithm" in all material
mentioning or referencing this software or this function.

License is also granted to make and use derivative works provided that such works
are identified as "derived from the RSA Data Security, Inc. MD5 Message-Digest
Algorithm" in all material mentioning or referencing the derived work.

RSA Data Security, Inc. makes no representations concerning either the merchantability
of this software or the suitability of this software for any particular purpose.
It is provided "as is" without express or implied warranty of any kind.

These notices must be retained in any copies of any part of this documentation and/or software.

This copyright does not prohibit distribution of the JavaScript MD5 code under the BSD license.
=========================================
END OF Files with code copyright Paul Johnston NOTICES, INFORMATION, AND LICENSE

%% Intel VTune Amplifier XE NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
/*
BSD LICENSE
Copyright (c) 2005-2013 Intel Corporation. All rights reserved.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
* Neither the name of Intel Corporation nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
=========================================
END OF Intel VTune Amplifier XE NOTICES, INFORMATION, AND LICENSE

%% JavaScript GameBoy Color Emulator NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
// Copyright (C) 2010 - 2012 Grant Galitz
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
// published by the Free Software Foundation.
// The full license is available at http://www.gnu.org/licenses/gpl.html
// This program is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details.

// The code has been adapted for use as a benchmark by Google.

and

/*
* JavaScript GameBoy Color Emulator
* Copyright (C) 2010 - 2012 Grant Galitz
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation.
* The full license is available at http://www.gnu.org/licenses/gpl.html
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
=========================================
END OF JavaScript GameBoy Color Emulator NOTICES, INFORMATION, AND LICENSE

%% JetStream NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
JetStream - LLVM Release License
==============================================================================
University of Illinois/NCSA
Open Source License

Copyright (c) 2003, 2004, 2005 University of Illinois at Urbana-Champaign.
All rights reserved.

Developed by:

LLVM Team

University of Illinois at Urbana-Champaign

http://llvm.org/

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal with
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:

* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimers.

* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimers in the
documentation and/or other materials provided with the distribution.

* Neither the names of the LLVM Team, University of Illinois at
Urbana-Champaign, nor the names of its contributors may be used to
endorse or promote products derived from this Software without specific
prior written permission.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
SOFTWARE.

===

Anything not in the tests/ directory:

Copyright (C) 2014 Apple Inc. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=========================================
END OF JetStream NOTICES, INFORMATION, AND LICENSE

%% jQuery NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
Copyright jQuery Foundation and other contributors, https://jquery.org/

This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
available at https://github.com/jquery/jquery

The following license applies to all parts of this software except as
documented below:

====

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

====

All files located in the node_modules and external directories are
externally maintained libraries used by this software which have their
own licenses; we recommend you read them, as their terms may differ from
the terms above.
=========================================
END OF jQuery NOTICES, INFORMATION, AND LICENSE

%% Kraken NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
Copyright (C) 2007 Apple Inc. All rights reserved.
Copyright (C) 2010 Mozilla Foundation

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=========================================
END OF Kraken NOTICES, INFORMATION, AND LICENSE

%% MakeNewWorld() function NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
// Copyright 2013 the V8 project authors. All rights reserved.

// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
=========================================
END OF MakeNewWorld() function NOTICES, INFORMATION, AND LICENSE

%% MochiKit NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
Copyright (c) 2005 Bob Ippolito. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in the
Software without restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
Software, and to permit persons to whom the Software is furnished to do so, subject
to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
=========================================
END OF MochiKit NOTICES, INFORMATION, AND LICENSE

%% Mozilla XML-RPC Client code NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is Mozilla XML-RPC Client component.
*
* The Initial Developer of the Original Code is
* Digital Creations 2, Inc.
* Portions created by the Initial Developer are Copyright (C) 2000
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Martijn Pieters <mj@digicool.com> (original author)
* Samuel Sieb <samuel@sieb.net>
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
=========================================
END OF Mozilla XML-RPC Client code NOTICES, INFORMATION, AND LICENSE

%% Octane NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
Copyright (c) 2013, the V8 project authors (http://code.google.com/p/v8/)
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

* Neither the name of Google, Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=========================================
END OF Octane NOTICES, INFORMATION, AND LICENSE

%% pdfjs.js NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
////////////////////////////////////////////////////////////////////////////////
// pdfjs.js
////////////////////////////////////////////////////////////////////////////////

// Portions copyright 2012 Google, Inc.
// Portions copyright 2011 Mozilla Foundation. All rights reserved.

// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

// The PDF-JS code in this file has been written by Mozilla.
// It is available in its latest version from:
//
// https://github.com/mozilla/pdf.js

=========================================
END OF pdfjs.js NOTICES, INFORMATION, AND LICENSE

%% Pixastic Lib NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
* Pixastic Lib - Desaturation filter - v0.1.1
* Copyright (c) 2008 Jacob Seidelin, jseidelin@nihilogic.dk, http://blog.nihilogic.dk/
* License: [http://www.pixastic.com/lib/license.txt] (MPL 1.1)

Mozilla Public License Version 1.1
1. Definitions.
1.0.1. "Commercial Use"
means distribution or otherwise making the Covered Code available to a third party.
1.1. "Contributor"
means each entity that creates or contributes to the creation of Modifications.
1.2. "Contributor Version"
means the combination of the Original Code, prior Modifications used by a Contributor,
and the Modifications made by that particular Contributor.
1.3. "Covered Code"
means the Original Code or Modifications or the combination of the Original Code
and Modifications, in each case including portions thereof.
1.4. "Electronic Distribution Mechanism"
means a mechanism generally accepted in the software development community for
the electronic transfer of data.
1.5. "Executable"
means Covered Code in any form other than Source Code.
1.6. "Initial Developer"
means the individual or entity identified as the Initial Developer in the Source
Code notice required by Exhibit A.
1.7. "Larger Work"
means a work which combines Covered Code or portions thereof with code not
governed by the terms of this License.
1.8. "License"
means this document.
1.8.1. "Licensable"
means having the right to grant, to the maximum extent possible, whether at the
time of the initial grant or subsequently acquired, any and all of the rights
conveyed herein.
1.9. "Modifications"
means any addition to or deletion from the substance or structure of either the
Original Code or any previous Modifications. When Covered Code is released as a
series of files, a Modification is:
Any addition to or deletion from the contents of a file containing Original Code
or previous Modifications. Any new file that contains any part of the Original
Code or previous Modifications.
1.10. "Original Code"
means Source Code of computer software code which is described in the Source
Code notice required by Exhibit A as Original Code, and which, at the time of
its release under this License is not already Covered Code governed by this License.
1.10.1. "Patent Claims"
means any patent claim(s), now owned or hereafter acquired, including without
limitation, method, process, and apparatus claims, in any patent Licensable by
grantor.
1.11. "Source Code"
means the preferred form of the Covered Code for making modifications to it,
including all modules it contains, plus any associated interface definition files,
scripts used to control compilation and installation of an Executable, or source
code differential comparisons against either the Original Code or another well
known, available Covered Code of the Contributor's choice. The Source Code can
be in a compressed or archival form, provided the appropriate decompression or
de-archiving software is widely available for no charge.
1.12. "You" (or "Your")
means an individual or a legal entity exercising rights under, and complying with
all of the terms of, this License or a future version of this License issued under
Section 6.1. For legal entities, "You" includes any entity which controls, is
controlled by, or is under common control with You. For purposes of this definition,
"control" means (a) the power, direct or indirect, to cause the direction or
management of such entity, whether by contract or otherwise, or (b) ownership of
more than fifty percent (50%) of the outstanding shares or beneficial ownership
of such entity.
2. Source Code License.
2.1. The Initial Developer Grant.
The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive
license, subject to third party intellectual property claims:
under intellectual property rights (other than patent or trademark) Licensable by
Initial Developer to use, reproduce, modify, display, perform, sublicense and
distribute the Original Code (or portions thereof) with or without Modifications,
and/or as part of a Larger Work; and
under Patents Claims infringed by the making, using or selling of Original Code,
to make, have made, use, practice, sell, and offer for sale, and/or otherwise
dispose of the Original Code (or portions thereof).
the licenses granted in this Section 2.1 (a) and (b) are effective on the date
Initial Developer first distributes Original Code under the terms of this License.
Notwithstanding Section 2.1 (b) above, no patent license is granted: 1) for code
that You delete from the Original Code; 2) separate from the Original Code;
or 3) for infringements caused by: i) the modification of the Original Code
or ii) the combination of the Original Code with other software or devices.
2.2. Contributor Grant.
Subject to third party intellectual property claims, each Contributor hereby grants
You a world-wide, royalty-free, non-exclusive license under intellectual property
rights (other than patent or trademark) Licensable by Contributor, to use,
reproduce, modify, display, perform, sublicense and distribute the Modifications
created by such Contributor (or portions thereof) either on an unmodified basis,
with other Modifications, as Covered Code and/or as part of a Larger Work; and
under Patent Claims infringed by the making, using, or selling of Modifications
made by that Contributor either alone and/or in combination with its Contributor
Version (or portions of such combination), to make, use, sell, offer for sale,
have made, and/or otherwise dispose of: 1) Modifications made by that Contributor
(or portions thereof); and 2) the combination of Modifications made by that
Contributor with its Contributor Version (or portions of such combination).
the licenses granted in Sections 2.2 (a) and 2.2 (b) are effective on the date
Contributor first makes Commercial Use of the Covered Code.
Notwithstanding Section 2.2 (b) above, no patent license is granted: 1) for any
code that Contributor has deleted from the Contributor Version; 2) separate from
the Contributor Version; 3) for infringements caused by: i) third party
modifications of Contributor Version or ii) the combination of Modifications
made by that Contributor with other software (except as part of the Contributor
Version) or other devices; or 4) under Patent Claims infringed by Covered Code
in the absence of Modifications made by that Contributor.
3. Distribution Obligations.
3.1. Application of License.
The Modifications which You create or to which You contribute are governed by
the terms of this License, including without limitation Section 2.2. The Source
Code version of Covered Code may be distributed only under the terms of this
License or a future version of this License released under Section 6.1, and
You must include a copy of this License with every copy of the Source Code You
distribute. You may not offer or impose any terms on any Source Code version that
alters or restricts the applicable version of this License or the recipients'
rights hereunder. However, You may include an additional document offering the
additional rights described in Section 3.5.
3.2. Availability of Source Code.
Any Modification which You create or to which You contribute must be made available
in Source Code form under the terms of this License either on the same media as an
Executable version or via an accepted Electronic Distribution Mechanism to anyone
to whom you made an Executable version available; and if made available via
Electronic Distribution Mechanism, must remain available for at least twelve (12)
months after the date it initially became available, or at least six (6) months
after a subsequent version of that particular Modification has been made available
to such recipients. You are responsible for ensuring that the Source Code version
remains available even if the Electronic Distribution Mechanism is maintained by
a third party.
3.3. Description of Modifications.
You must cause all Covered Code to which You contribute to contain a file documenting
the changes You made to create that Covered Code and the date of any change. You must
include a prominent statement that the Modification is derived, directly or indirectly,
from Original Code provided by the Initial Developer and including the name of the
Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version
or related documentation in which You describe the origin or ownership of the Covered Code.
3.4. Intellectual Property Matters
(a) Third Party Claims
If Contributor has knowledge that a license under a third party's intellectual
property rights is required to exercise the rights granted by such Contributor
under Sections 2.1 or 2.2, Contributor must include a text file with the Source
Code distribution titled "LEGAL" which describes the claim and the party making the
claim in sufficient detail that a recipient will know whom to contact. If Contributor
obtains such knowledge after the Modification is made available as described in
Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor
makes available thereafter and shall take other steps (such as notifying appropriate
mailing lists or newsgroups) reasonably calculated to inform those who received the
Covered Code that new knowledge has been obtained.
(b) Contributor APIs
If Contributor's Modifications include an application programming interface and
Contributor has knowledge of patent licenses which are reasonably necessary to
implement that API, Contributor must also include this information in the legal
file.
(c) Representations.
Contributor represents that, except as disclosed pursuant to Section 3.4 (a) above,
Contributor believes that Contributor's Modifications are Contributor's original
creation(s) and/or Contributor has sufficient rights to grant the rights conveyed
by this License.
3.5. Required Notices.
You must duplicate the notice in Exhibit A in each file of the Source Code. If it
is not possible to put such notice in a particular Source Code file due to its
structure, then You must include such notice in a location (such as a relevant
directory) where a user would be likely to look for such a notice. If You created
one or more Modification(s) You may add your name as a Contributor to the notice
described in Exhibit A. You must also duplicate this License in any documentation
for the Source Code where You describe recipients' rights or ownership rights
relating to Covered Code. You may choose to offer, and to charge a fee for, warranty,
support, indemnity or liability obligations to one or more recipients of Covered Code.
However, You may do so only on Your own behalf, and not on behalf of the Initial
Developer or any Contributor. You must make it absolutely clear than any such warranty,
support, indemnity or liability obligation is offered by You alone, and You hereby
agree to indemnify the Initial Developer and every Contributor for any liability
incurred by the Initial Developer or such Contributor as a result of warranty,
support, indemnity or liability terms You offer.
3.6. Distribution of Executable Versions.
You may distribute Covered Code in Executable form only if the requirements of
Sections 3.1, 3.2, 3.3, 3.4 and 3.5 have been met for that Covered Code, and if
You include a notice stating that the Source Code version of the Covered Code is
available under the terms of this License, including a description of how and where
You have fulfilled the obligations of Section 3.2. The notice must be conspicuously
included in any notice in an Executable version, related documentation or collateral
in which You describe recipients' rights relating to the Covered Code. You may
distribute the Executable version of Covered Code or ownership rights under a
license of Your choice, which may contain terms different from this License, provided
that You are in compliance with the terms of this License and that the license for
the Executable version does not attempt to limit or alter the recipient's rights
in the Source Code version from the rights set forth in this License. If You
distribute the Executable version under a different license You must make it
absolutely clear that any terms which differ from this License are offered by
You alone, not by the Initial Developer or any Contributor. You hereby agree to
indemnify the Initial Developer and every Contributor for any liability incurred
by the Initial Developer or such Contributor as a result of any such terms You offer.
3.7. Larger Works.
You may create a Larger Work by combining Covered Code with other code not governed
by the terms of this License and distribute the Larger Work as a single product.
In such a case, You must make sure the requirements of this License are fulfilled
for the Covered Code.
4. Inability to Comply Due to Statute or Regulation.
If it is impossible for You to comply with any of the terms of this License with
respect to some or all of the Covered Code due to statute, judicial order, or
regulation then You must: (a) comply with the terms of this License to the maximum
extent possible; and (b) describe the limitations and the code they affect. Such
description must be included in the legal file described in Section 3.4 and must
be included with all distributions of the Source Code. Except to the extent
prohibited by statute or regulation, such description must be sufficiently detailed
for a recipient of ordinary skill to be able to understand it.
5. Application of this License.
This License applies to code to which the Initial Developer has attached the notice
in Exhibit A and to related Covered Code.
6. Versions of the License.
6.1. New Versions
Netscape Communications Corporation ("Netscape") may publish revised and/or new
versions of the License from time to time. Each version will be given a
distinguishing version number.
6.2. Effect of New Versions
Once Covered Code has been published under a particular version of the License,
You may always continue to use it under the terms of that version. You may also
choose to use such Covered Code under the terms of any subsequent version of the
License published by Netscape. No one other than Netscape has the right to modify
the terms applicable to Covered Code created under this License.
6.3. Derivative Works
If You create or use a modified version of this License (which you may only do in
order to apply it to code which is not already Covered Code governed by this
License), You must (a) rename Your license so that the phrases "Mozilla", "MOZILLAPL",
"MOZPL", "Netscape", "MPL", "NPL" or any confusingly similar phrase do not appear in
your license (except to note that your license differs from this License) and (b)
otherwise make it clear that Your version of the license contains terms which differ
from the Mozilla Public License and Netscape Public License. (Filling in the name
of the Initial Developer, Original Code or Contributor in the notice described in
Exhibit A shall not of themselves be deemed to be modifications of this License.)
7. Disclaimer of warranty
Covered code is provided under this license on an "as is" basis, without warranty
of any kind, either expressed or implied, including, without limitation, warranties
that the covered code is free of defects, merchantable, fit for a particular purpose
or non-infringing. The entire risk as to the quality and performance of the covered
code is with you. Should any covered code prove defective in any respect, you (not
the initial developer or any other contributor) assume the cost of any necessary
servicing, repair or correction. This disclaimer of warranty constitutes an
essential part of this license. No use of any covered code is authorized hereunder
except under this disclaimer.
8. Termination
8.1. This License and the rights granted hereunder will terminate automatically if
You fail to comply with terms herein and fail to cure such breach within 30 days of
becoming aware of the breach. All sublicenses to the Covered Code which are properly
granted shall survive any termination of this License. Provisions which, by their
nature, must remain in effect beyond the termination of this License shall survive.
8.2. If You initiate litigation by asserting a patent infringement claim (excluding
declatory judgment actions) against Initial Developer or a Contributor (the Initial
Developer or Contributor against whom You file such action is referred to as
"Participant") alleging that:
such Participant's Contributor Version directly or indirectly infringes any patent,
then any and all rights granted by such Participant to You under Sections 2.1 and/or
2.2 of this License shall, upon 60 days notice from Participant terminate
prospectively, unless if within 60 days after receipt of notice You either:
(i) agree in writing to pay Participant a mutually agreeable reasonable royalty
for Your past and future use of Modifications made by such Participant, or
(ii) withdraw Your litigation claim with respect to the Contributor Version against
such Participant. If within 60 days of notice, a reasonable royalty and payment
arrangement are not mutually agreed upon in writing by the parties or the litigation
claim is not withdrawn, the rights granted by Participant to You under Sections 2.1
and/or 2.2 automatically terminate at the expiration of the 60 day notice period
specified above. any software, hardware, or device, other than such Participant's
Contributor Version, directly or indirectly infringes any patent, then any rights
granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked
effective as of the date You first made, used, sold, distributed, or had made,
Modifications made by that Participant.
8.3. If You assert a patent infringement claim against Participant alleging that
such Participant's Contributor Version directly or indirectly infringes any patent
where such claim is resolved (such as by license or settlement) prior to the
initiation of patent infringement litigation, then the reasonable value of the
licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken
into account in determining the amount or value of any payment or license.
8.4. In the event of termination under Sections 8.1 or 8.2 above, all end user
license agreements (excluding distributors and resellers) which have been validly
granted by You or any distributor hereunder prior to termination shall survive
termination.
9. Limitation of liability
Under no circumstances and under no legal theory, whether tort (including
negligence), contract, or otherwise, shall you, the initial developer, any
other contributor, or any distributor of covered code, or any supplier of any
of such parties, be liable to any person for any indirect, special, incidental,
or consequential damages of any character including, without limitation, damages
for loss of goodwill, work stoppage, computer failure or malfunction, or any and
all other commercial damages or losses, even if such party shall have been
informed of the possibility of such damages. This limitation of liability shall
not apply to liability for death or personal injury resulting from such party's
negligence to the extent applicable law prohibits such limitation. Some jurisdictions
do not allow the exclusion or limitation of incidental or consequential damages,
so this exclusion and limitation may not apply to you.
10. U.S. government end users
The Covered Code is a "commercial item," as that term is defined in 48 C.F.R.
2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial
computer software documentation," as such terms are used in 48 C.F.R. 12.212
(Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through
227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with
only those rights set forth herein.
11. Miscellaneous
This License represents the complete agreement concerning subject matter hereof.
If any provision of this License is held to be unenforceable, such provision
shall be reformed only to the extent necessary to make it enforceable. This
License shall be governed by California law provisions (except to the extent
applicable law, if any, provides otherwise), excluding its conflict-of-law
provisions. With respect to disputes in which at least one party is a citizen
of, or an entity chartered or registered to do business in the United States of
America, any litigation relating to this License shall be subject to the
jurisdiction of the Federal Courts of the Northern District of California, with
venue lying in Santa Clara County, California, with the losing party responsible
for costs, including without limitation, court costs and reasonable attorneys'
fees and expenses. The application of the United Nations Convention on Contracts
for the International Sale of Goods is expressly excluded. Any law or regulation
which provides that the language of a contract shall be construed against the
drafter shall not apply to this License.
12. Responsibility for claims
As between Initial Developer and the Contributors, each party is responsible for
claims and damages arising, directly or indirectly, out of its utilization of
rights under this License and You agree to work with Initial Developer and
Contributors to distribute such responsibility on an equitable basis. Nothing
herein is intended or shall be deemed to constitute any admission of liability.
13. Multiple-licensed code
Initial Developer may designate portions of the Covered Code as "Multiple-Licensed".
"Multiple-Licensed" means that the Initial Developer permits you to utilize portions
of the Covered Code under Your choice of the MPL or the alternative licenses, if
any, specified by the Initial Developer in the file described in Exhibit A.
=========================================
END OF Pixastic Lib NOTICES, INFORMATION, AND LICENSE

%% Prototype NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
Copyright (c) 2005-2010 Sam Stephenson

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
=========================================
END OF Prototype NOTICES, INFORMATION, AND LICENSE

%% Sputnik NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
Copyright 2009, Google Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=========================================
END OF Sputnik NOTICES, INFORMATION, AND LICENSE

%% SunSpider NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
SunSpider

Copyright (C) 2007 Apple Inc. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=========================================
END OF SunSpider NOTICES, INFORMATION, AND LICENSE

%% test262 NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
The << Software identified by reference to the Ecma Standard* ("Software)">> is
protected by copyright and is being made available under the "BSD License",
included below. This Software may be subject to third party rights (rights from
parties other than Ecma International), including patent rights, and no licenses
under such third party rights are granted under this license even if the third
party concerned is a member of Ecma International. SEE THE ECMA CODE OF CONDUCT
IN PATENT MATTERS AVAILABLE AT http://www.ecma-international.org/memento/codeofconduct.htm FOR
INFORMATION REGARDING THE LICENSING OF PATENT CLAIMS THAT ARE REQUIRED TO
IMPLEMENT ECMA INTERNATIONAL STANDARDS*.

Copyright (C) 2012-2013 Ecma International
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the authors nor Ecma International may be used to endorse
or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE ECMA INTERNATIONAL "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL ECMA INTERNATIONAL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

* Ecma International Standards hereafter means Ecma International Standards as
well as Ecma Technical Reports
=========================================
END OF test262 NOTICES, INFORMATION, AND LICENSE

%% The Computer Language Shootout NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
Copyright © 2004-2012 Brent Fulgham
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list
of conditions and the following disclaimer. Redistributions in binary form must
reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of "The Computer Language Benchmarks Game" nor the name of "The
Computer Language Shootout Benchmarks" nor the names of its contributors may be
used to endorse or promote products derived from this software without specific
prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=========================================
END OF The Computer Language Shootout NOTICES, INFORMATION, AND LICENSE

%% WebAssembly/testsuite NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
* Copyright 2016 WebAssembly Community Group participants
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
=========================================
END OF WebAssembly/testsuite NOTICES, INFORMATION, AND LICENSE

%% zlib-data.js NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
For material from https://github.com/dvander/arewefastyet/blob/master/benchmarks/asmjs-apps/zlib.js:

This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.

Third party benchmarks included with AreWeFastYet uses different licenses.

For material from zlib and https://github.com/kripken/emscripten/blob/master/tests/zlib/benchmark.c:

/* zlib.h -- interface of the 'zlib' general purpose compression library
version 1.2.8, April 28th, 2013

Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler

This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.

Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.

Jean-loup Gailly Mark Adler
jloup@gzip.org madler@alumni.caltech.edu

*/
=========================================
END OF zlib-data.js NOTICES, INFORMATION, AND LICENSE

%% yargs-parser.js NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
Copyright (c) 2016, Contributors

Permission to use, copy, modify, and/or distribute this software
for any purpose with or without fee is hereby granted, provided
that the above copyright notice and this permission notice
appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE
LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
=========================================
END OF yargs-parser.js NOTICES, INFORMATION, AND LICENSE

%% camelcase.js NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
The MIT License (MIT)

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
=========================================
END OF camelcase.js NOTICES, INFORMATION, AND LICENSE

---------------------------------------------------------------------------
Wabt

URL of the license https://github.com/WebAssembly/wabt/blob/master/LICENSE

The files in lib/wabt are licensed as specified in lib/wabt/LICENSE
unless otherwise stated in the file

---------------------------------------------

glMatrix

We make use of glMatrix for code exported to WebGL.

Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

wkhtmltopdf - ABCWebKit

ABCWebKit makes use of the wkhtmltopdf library available under the LGPL.

GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007

Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.

0. Additional Definitions.

As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.

"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.

An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.

A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".

The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.

The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.

1. Exception to Section 3 of the GNU GPL.

You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.

2. Conveying Modified Versions.

If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:

a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or

b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.

3. Object Code Incorporating Material from Library Header Files.

The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:

a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.

b) Accompany the object code with a copy of the GNU GPL and this license
document.

4. Combined Works.

You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:

a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.

b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.

c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.

d) Do one of the following:

0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.

1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.

e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)

5. Combined Libraries.

You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:

a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.

b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.

6. Revised Versions of the GNU Lesser General Public License.

The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.

If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.

OpenJPEG

ABCWebKit makes use of the OpenJPEG JPEG 2000 library, available under the BSD License.

/*
* The copyright in this software is being made available under the 2-clauses
* BSD License, included below. This software may be subject to other third
* party and contributor rights, including patent rights, and no such rights
* are granted under this license.
*
* Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium
* Copyright (c) 2002-2014, Professor Benoit Macq
* Copyright (c) 2003-2014, Antonin Descampe
* Copyright (c) 2003-2009, Francois-Olivier Devaux
* Copyright (c) 2005, Herve Drolon, FreeImage Team
* Copyright (c) 2002-2003, Yannick Verschueren
* Copyright (c) 2001-2003, David Janssens
* Copyright (c) 2011-2012, Centre National d'Etudes Spatiales (CNES), France
* Copyright (c) 2012, CS Systemes d'Information, France
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/


Legal Requirements

Adobe claims Intellectual Property rights over the Adobe PDF specification and we aim to ensure that those rights are upheld.

When you install ABCpdf you accept the ABCpdf license agreement. Part of the agreement specifies that you must abide by the conditions of use for PDF set down by Adobe and detailed in the Adobe PDF Specification.

For full details you should see the specification. However in summary, Adobe permits you to write software to create, display and manipulate PDF documents.

This permission is conditional on the basis that your software should respect the permissions and permission controls embedded within existing PDF documents.

These permissions do not necessarily make sense within the ABCpdf framework. For example the concept of an encrypted document which bars the user from filling in form fields makes sense if there is a user. However ABCpdf is a component and so is removed from the final user.

You should ensure that when you create software which an end user may operate that your software respects these types of permissions. You are legally bound to do this both by the ABCpdf license agreement and also by the Adobe conditions of use.


.NET Essentials

Refs

You need to add a reference to ABCpdf from your Visual Studio Project. This tells Visual Studio to link the ABCpdf assembly into the build.

Typically you will do this by referencing the ABCpdf NuGet package. Right click on 'Dependencies' and then select the 'Manage NuGet Packages...' item, click on "Browse" and search for "ABCpdf - you should see ABCpdf amongst the results from NuGet.org.

If you have run the full MSI installer, ABCpdf is placed in the GAC, so under .NET 4 you can add a reference simply by looking in the 'Assemblies > Extensions' section of the Reference Manager. Just right click on 'References' in your project and 'Add Reference' - you'll see "ABCpdf .NET" near the top of the extensions list. .NET 5, .NET 6.0 and .NET 7.0 do not have a GAC, so while you can add the relevant reference by browsing to the DLL in the ABCpdf installation folder, it is probably easier to add a NuGet reference.

If you are using .NET 7.0 your project target is "net7.0" however since ABCpdf makes use of Windows specific features, more commonly you will target "net7.0-windows". If you are using .NET 6.0 the equivalent is "net6.0" and "net6.0-windows". If you are using .NET 5.0 the equivalent is "net5.0" and "net5.0-windows". If you are using .NET Classic then your target will be "v4.0" or later.

The ABCpdf NuGet package ships with the MSHTML and ABCChrome86 HTML conversion engines. If you want to use the ABCChrome65 HTML conversion engine, you will need to reference the ABCChrome65 NuGet package in addition to the ABCpdf one. Similarly for ABCGecko you will need to reference the ABCGecko package. Similarly for ABCWebKit you will need the ABCWebKit package. All these engines are installed by default if you run the downloadable MSI installer.

You can mix and match the full MSI installer with the NuGet packages. If you reference a different NuGet version in your project then that version, rather than the MSI installed version, is the one that will be used. Be careful as it can be confusing if you have multiple different versions of ABCpdf in use.

If you are not using Visual Studio, you will need to consult the documentation for your chosen development environment.

Notes

Different project types require different setups and these notes may help if you hit any problems.

Sometimes you may get exceptions saying that elements like WindowsBase, ConfigurationManager, Packaging and PresesentationCore are not available.

WindowsBase is required for parts of ABCpdf which make use of WPF and XPS. To resolve this issue change the project settings to target Windows and then add a UseWPF tag to your project.

Currently Visual Studio does not support adding this tag so it has to be done by hand using a text editor. You need to insert it into your csproj file as follows.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net7.0-windows</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <UseWPF>true</UseWPF>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="ABCpdf" Version="12.4.0.0" />
  </ItemGroup>

</Project>

System.Configuration.ConfigurationManager and System.IO.Packaging can be obtained as NuGet packages.

For PresentationCore and System.Drawing you just need to open the project properties and target Windows.

Names

There are four public namespaces in ABCpdf. You can reference these using the following directives.

[C#]

using WebSupergoo.ABCpdf12;
using WebSupergoo.ABCpdf12.Objects;
using WebSupergoo.ABCpdf12.Atoms;
using WebSupergoo.ABCpdf12.Operations;

[Visual Basic]
Imports WebSupergoo.ABCpdf12
Imports WebSupergoo.ABCpdf12.Objects
Imports WebSupergoo.ABCpdf12.Atoms
Imports WebSupergoo.ABCpdf12.Operations

The ABCpdf12 namespace contains the objects you will use for page layout. Most of the time, it is the only namespace you will need.

The Objects namespace allows you to access and manipulate content you've already added. You may use this namespace for complex operations in which the standard page layout functionality requires some modification.

The Atoms namespace allows you low level access to the raw PDF data structures. You are unlikely to use objects from this namespace unless you are writing very low level code.

The Operations namespace allows you to perform complex operations with multiple parameters and callbacks.

Example

This is some simple example code. All it does is create a simple 'Hello World' PDF in the current working directory.

[C#]

Doc doc = new Doc();
doc.AddText("Hello World!");
doc.Save("output.pdf");

[Visual Basic]
Dim doc As New Doc()
doc.AddText("Hello World!")
doc.Save("output.pdf")

Security

ASP.NET operates under a restricted set of security permissions. It is quite common for the ASPNET user not to be able to create or write files.

So, if you want to save a PDF file from your ASP.NET code, it is quite likely that you will need to adjust the permissions on your destination directory to allow write access for the ASPNET user.


Simple Example

Intro

Creating a PDF document is a simple process. First you create an ABCpdf Document object and then you add your content to it. You can add text, images and other kinds of graphics.

All content addition is done on the current Page and within the current Rect on that page. You can change the Page to draw on different pages and the Rect to draw in different areas. The default page is the first page and the default drawing area is the entire page.

You may find it useful to use the FrameRect method during development. This frames the current rectangle on the current page so that the area you are about to draw on is outlined.

Every time you add an item of content you will get an Object ID returned. You may wish to save these IDs and use them to query or change object properties at a later date.

Code

First we create an ABCpdf Doc object. Next we set the font size and add some text to it. Finally we save at a specified location.

[C#]

Doc theDoc = new Doc();
theDoc.FontSize = 96;
theDoc.AddText("Hello World");
theDoc.Save(Server.MapPath("simple.pdf"));

[Visual Basic]
Dim theDoc As Doc = New Doc()
theDoc.FontSize = 96
theDoc.AddText("Hello World")
theDoc.Save(Server.MapPath("simple.pdf"))

Results

simple.pdf


Coordinate Spaces

General

ABCpdf uses the standard Adobe PDF coordinate space. The origin of this space is at the bottom left of the document. Distances are measured up and to the right in points. Points are a traditional measure for print work - there are 72 points in an inch.

Please note that the bottom-up PDF coordinate space is different from the top-down coordinate system often used in Windows. It means that everything is based around the bottom left of objects - not the top left. If you wish to use a different coordinate system you can use the document Units, TopDown or Transform to accomplish this.

ABCpdf uses the XPoint object to represent positions in space. It uses the XRect object to represent areas like the current drawing area or the size of a page.

The Doc.Rect property is probably the most important property to be aware of. Virtually everything happens within the Doc.Rect. If you add text to a document it is added within the Doc.Rect. If you paint or frame a rectangle it is done within the Doc.Rect. If you add an image it is scaled to fit exactly within the Doc.Rect.

The default document size for ABCpdf is 612 by 792. This equates to a physical page size of 8.5 by 11 inches.

Example

The following example draws a rectangle with the bottom left corner positioned 100 points from the left of the page and 200 points up from the bottom. The width of the rectangle is 400 points and the height is 500 points. We add a grid to show the positioning of the rectangle.

[C#]

Doc theDoc = new Doc();
theDoc.AddGrid();
theDoc.Color.String = "255 0 0";
theDoc.Width = 10;
theDoc.Rect.Position(100, 200);
theDoc.Rect.Width = 400;
theDoc.Rect.Height = 500;
theDoc.FrameRect();
theDoc.Save(Server.MapPath("coordinates.pdf"));

[Visual Basic]
Dim theDoc As Doc = New Doc()
theDoc.AddGrid()
theDoc.Color.String = "255 0 0"
theDoc.Width = 10
theDoc.Rect.Position(100, 200)
theDoc.Rect.Width = 400
theDoc.Rect.Height = 500
theDoc.FrameRect()
theDoc.Save(Server.MapPath("coordinates.pdf"))

coordinates.pdf


Examples

There are many code examples in the documentation. These cover common tasks like adding text, flowing text and adding images.

Every major object method or property has an accompanying code sample. So if you want to know how to use a method like AddText or AddImageFile just look at the code sample.

Code samples also cover operations like rendering HTML pages, paged HTML renders, watermarking, appending PDF documents and drawing pages from one PDF document into another.

For in-situ examples you should look at the example web site that comes installed with ABCpdf.


Upgrading

Basics

ABCpdf 12 is a new version completely independent of the old. It incorporates the ABCpdf2, ABCpdf3, ABCpdf4, ABCpdf5, ABCpdf6, ABCpdf7, ABCpdf8, ABCpdf9, ABCpdf10 and ABCpdf11 namespaces so that you can upgrade with minimal changes to your code. When you want to take advantage of the new features, simply reference the new name.

Simply replace...

[C#]

using WebSupergoo.ABCpdf11;

[Visual Basic]
Imports WebSupergoo.ABCpdf11

with...

[C#]

using WebSupergoo.ABCpdf12;

[Visual Basic]
Imports WebSupergoo.ABCpdf12

Changes

ABCpdf is fully backward compatible. Although extensive changes have been made to the core engine, we check that these changes produce results that are compatible with previous versions.

There are some minor differences in behavior between the ABCpdf11 and ABCpdf12 namespaces.

The new Chrome86 HTML conversion engine is our new default as it is more secure than the previous one. If your HTML conversions rely on specific output styles created by the previous default engines - eg MSHTML - you will want to use the following line of code after creating any Doc object, after calling Doc.Read and after calling Doc.Clear.

[C#]

doc.HtmlOptions.Engine = EngineType.MSHtml;

[Visual Basic]
doc.HtmlOptions.Engine = EngineType.MSHtml

For this release we have increased the default HTML timeout to twenty seconds. If this is a value you were relying on you may wish to change the value in your code.

In ABCpdf you can set the Doc.PageNumber to set the current page of the document. The Doc.PageNumber is one based so to find the first page you set the property to one. In older releases setting the property to zero was allowed, however this allowed subtle bugs in client code to pass without error. In ABCpdf 12 if you set the Doc.PageNumber to zero then an exception will be raised. The solution here is to fix your code.


Security and ABCpdf

Inro

ABCpdf is a component presenting an API, much like .NET itself.

Like .NET there are no restrictions on what you can do with the API. If you call File.Delete it will delete a file. That is what the API does.

It is not difficult to make your use of the APIs secure, but you have to actively do it. You need to be making design decisions here.

Each system is different and each system has different needs, however the following are the base principles by which you should operate when securing a system using ABCpdf.

Basics

Fundamentals

You are in control. You call into ABCpdf. You decide what APIs to use. You decide which parts you deploy. You decide the environment in which it operates. You are in control here and the majority of choices are going to be made by you - not by ABCpdf.

Defense in depth is key. One impenetrable barrier is not enough. You want a series of barriers. If one is breached the others will hold. Layers are what keep you safe.

ABCpdf contains architectural structures which provide defense in depth. Most are internal and are not visible from outside. Some - such as our FireShield technology - are visible and documented.

Most of the defensive layers will come from you because there is a limited amount we can restrict without impacting your ability to use the software.

Evaluate security before you start to write code. Then review your evaluation as your code and architecture develops.

Trust

Do not trust your users

Attacks can only occur if attackers can provide input to a system. The obvious route in, is via a standard method supplied to your users.

Once this route is compromised an attacker can experiment with various inputs to see how they can manipulate your systems.

Stack overflow exploits, SQL injection and cross site scripting are just some of the many exploits which are based on insufficient input vetting of user input.

You need to be suspicious of the data that is provided to you. Vet it first and make sure it is good before passing it to ABCpdf.

If you store data, consider encrypting it so that a breach will not result in data loss. If encryption is too complex or dangerous, even just a level of obfuscation will add a significant barrier.

ABCpdf will do its own vetting too, but you know much better than it, what it is that you consider to be acceptable.

Vetting Inputs. How should input data be validated or vetted?

Every application is different and every situation needs evaluation but there are some obvious factors which one should bear in mind. At minimum you need to ensure that your inputs and outputs are not excessively large or numerous.

ABCpdf will do its best to accommodate your requests, so if you ask it to do something excessive it will do its best to do so. At that point it becomes a matter related to the OS as to whether it is allowed the resources to do this or not. Better to decide these things yourself rather than leave them up to chance.

For example, if you allow your users to upload TIFF images, consider if it would be reasonable for them to upload a 1TB image. If you allow users to render a PDF, consider if it would be reasonable to allow them to select 72,000 dpi as the target resolution (producing a 500 Gigapixel output). If they are allowed to provide a description for an item in an invoice, should they be allowed to provide the text of Moby Dick?

Do not trust your code

ABCpdf is designed to run from a reduced permission environment.

Take advantage of this. Ensure that your code runs in a process as a low privilege user with access only to the resources that it needs.

If you are running under IIS something like this will already be in place for you. If you are running in a different environment you may need to make more active decisions.

Where ABCpdf offers further layers of protection, take advantage of them. Use technologies like FireShield to further restrict access and add layers of protection.

ABCpdf is modular so if you do not need a particular module then consider eliminating it. You deploy ABCpdf and you can decide which pieces should be deployed.

Read the documentation for the functions you use and ensure you take note of any security relevant details. If security is mentioned in the documentation it is for good reason.

Do not trust yourself

Many of us have blind spots to our failings and there is no more obvious place for this than when we write code.

Users find bugs that developers had never dreamed of. Developers have a rather myopic view of what might happen and how things will work.

The reality is that the code you write will be flawed and you are not the best person to judge the ways in which it is flawed.

You need to submit your code for review by a third party. A third party can be someone else in your team, or for especially sensitive situations you might consider employing a penetration tester.

You should do team-based threat assessments based on the architecture of your systems. Consider the access points and think about how these might expose attackable surfaces.

Automate as much as possible to reduce the possibility that human error may creep in. A complex manual deployment is bound to go wrong sooner or later. Automate to eliminate.

Do not trust your machine

You need perimeter security on your host machine. Most obviously this comes from a firewall and anti-virus software.

Do also consider if other technologies might be appropriate, perhaps at the network level.

Simple

Simple and Secure

Try and keep things simple. It is much easier to secure a system with one access point than it is a system with ten.

The simpler your systems, the simpler it will be to:

  • see if they are designed well and correctly
  • assess any threats they may be vulnerable to
  • know if something goes wrong

Signatures

Signed Files

As Microsoft Best Practice we sign all our binaries - DLLs and EXEs - using certificates issued by a Trusted Publisher.

While this forms a solid base for security and trust, this approach is insufficient for a mature and complex product like ABCpdf.

For example the ABCGecko engine contains many files including DLLs but also configuration files. Only binaries can be signed: configuration files cannot be signed in this way. A corruption of the configuration files could be just as damaging as one affecting DLLs and EXEs, yet they cannot be verified using the standard Microsoft approach.

Each DLL which is signed requires checks. In cases where .NET needs to go to the internet to validate certificates, this can represent a substantial overhead. In cases where a few base DLLs are being verified this is acceptable. If one has to verify a thousand files, it becomes something approaching a problem.

For these reasons ABCpdf operates a dual security policy. Binaries we produce are digitally signed according to Microsoft Best Practice. Files that we use, but do not produce, are verified at run time by our signed and trusted binaries. This allows fast, low overhead, validation of integrity covering all dependencies rather than just binaries.


Object Paths

Adobe Portable Document Format (PDF) files are made of a number of objects. Objects may describe a page, a resource, a sequence of drawing operations an image or many other components as required by the document.

Every object has a unique Object ID numbered from one upwards. The ID zero refers to the Empty Object which is an object required internally within ABCpdf. ID -1 refers to the document trailer. The root of the document hierarchy can be accessed using the Doc.Root property or the ObjectSoup.Catalog.

You can use the GetInfo and SetInfo methods to directly manipulate any PDF object in your document. However, this is not advisable unless you are reasonably familiar with the Adobe PDF Specification.

Under normal situations, ABCpdf ensures that your documents are internally consistent. Using the SetInfo method with Dictionaries, Values or Paths allows great flexibility in modifying documents but also allows you to create invalid or corrupt documents.

Dictionaries

If your object is a dictionary, you can specify a particular dictionary entry for replacement or insertion (dictionary entries always begin with a slash '/' character). So if you wanted to change the type of an annotation, you might use the following code:

[C#]

theDoc.SetInfo(theID, "/Subtype", "(Stamp)");

[Visual Basic]
theDoc.SetInfo(theID, "/Subtype", "(Stamp)")

Values

Alternatively, you can use the 'Value' selector to specify a replacement for the entire object. However, if you do this, you must ensure that the type of your new object is the same as the type of your old one - you cannot replace a number with a string. For example.

[C#]

theDoc.SetInfo(theID, "Value", "<</Font /Helvetica /Size 10>>");

[Visual Basic]
theDoc.SetInfo(theID, "Value", "<</Font /Helvetica /Size 10>>")

Paths

Specifications can be chained together to form complete paths. Dictionary entries are specified by preceding the entry name with a slash. Array items are specified using square brackets containing the index of the item you wish to reference (starting at zero).

For example, the code below would return the first item in the MediaBox array.

[C#]

theDoc.GetInfo(theID, "/MediaBox[0]");

[Visual Basic]
theDoc.GetInfo(theID, "/MediaBox[0]")

And the code below would return the count entry of the parent of the object.

[C#]

theDoc.GetInfo(theID, "/Parent/Count");

[Visual Basic]
theDoc.GetInfo(theID, "/Parent/Count")

References

Sometimes, you may wish to find a reference to a particular object. Sometimes, you may wish to skip through the reference and jump straight into the object itself.

You can do this using an asterisk to de-reference an object within a path. If the object is a reference, it will be de-referenced; if it is not, then the operator will be ignored.

For example, the code below might be used to return the content stream of the first page of a document.

[C#]

theDoc.GetInfo(theDoc.Root, "/Pages*/Kids*[0]*/Contents");

[Visual Basic]
theDoc.GetInfo(theDoc.Root, "/Pages*/Kids*[0]*/Contents")

SetInfo

You can use SetInfo to insert values specified by paths. You can specify the type of object to be inserted by appending an identifier to the path.

Object Type Description
:Bool

A Boolean value.

:Name

A name value.

:Num

A numeric value

:Text

A string value.

:Ref

An indirect reference to an object.

:Rect

A rectangle. Internally, rectangles are held as arrays of numbers, but this provides a convenient shortcut.

:Del

This is a special entry. It does not insert an object. Instead, it ensures that the object specified by the path is deleted.

:Text[Hex*NoBreak]

The asterisk is a delimiter. Each of 'Hex', 'NoBreak', and 'Byte' is optional. For example, you can specify "/MyEntry:Text[Hex]".

The 'Hex' specifier indicates that the text should be hex-encoded. The 'NoBreak' specifier indicates that there should be no line breaks. Also available is the 'Byte' specifier, which indicates that characters should be interpreted as a string of bytes rather than a Unicode string. These settings are used infrequently, and in general, you will not need them.
:String

This only works for string atoms.

If the string atom contains a value it returns that value.

If there is no value, or the atom is of the wrong type, it returns the special string.

"string_is_null\0ABCpdf"
:Int32

The number in 32 bit integer format.

It may not be possible to represent a value in this format if the number has a floating point element or is too big or too small.

If it is not possible to represent the value, a default value of zero is returned.
:Int64

The equivalent of Int32 but for 64 bit integer values.
:Int32[-1]

The equivalent of Int32 but specifying a default value of -1.
:Int64[-1]

The equivalent of Int64 but specifying a default value of -1.

Suppose you wanted to insert an annotation into the page annotations array. The following code will find the page entry named "/Annots" (or it will create it if it doesn't exist). It will then ensure that this entry references an array, and it will insert a reference Atom at the beginning (item zero) of the array.

[C#]

theDoc.SetInfo(theDoc.Page, "/Annots[0]:Ref", theID);

[Visual Basic]
theDoc.SetInfo(theDoc.Page, "/Annots[0]:Ref", theID)

Alternatively, if you want to insert your annotation at the end of the array, just leave out the array index:

[C#]

theDoc.SetInfo(theDoc.Page, "/Annots[]:Ref", theID);

[Visual Basic]
theDoc.SetInfo(theDoc.Page, "/Annots[]:Ref", theID)

You can also locate items in an array from the end. Use -1 for the last item, -2 for the second last item, and so on.

[C#]

theDoc.GetInfo(theDoc.Page, "/Annots[-1]:Ref");

[Visual Basic]
theDoc.GetInfo(theDoc.Page, "/Annots[-1]:Ref")

Insertions can be complex. The next example gets the entry called "/Font", which contains a dictionary. This dictionary includes an element called "/Names", which contains an array. The call inserts the Name object "/Helvetica" at the start of this array.

[C#]

theDoc.SetInfo(theID, "/Font/Names[0]:Name", "Helvetica");

[Visual Basic]
theDoc.SetInfo(theID, "/Font/Names[0]:Name", "Helvetica")

GetInfo

You can use GetInfo to query values specified by paths. The format of the return value is exactly the same as would be output to your PDF file. You can specify an alternative format by appending an identifier to the string.

Format Name Description
:ID

The Object ID associated with an object reference.

Normally, object references are returned in an extended format (e.g.

23 0 R
). However, if you are only interested in the Object ID, then you use this format specifier to get only the Object ID (e.g.
23
).

:Obj

The object value.

This is used to ensure that all indirect references are resolved before the value of the object is returned. This ensures you always get an object value rather than an object reference.

:Text

The text of a name or string.

Names and strings may be encoded in a number of ways before output to PDF. The text format specifier ensures that the unencoded value is returned.

:Num

The value of a number.

If the object referred to is not a number, then no value is returned.

:Rect

The rect string for a rectangle object.

Rects are typically represented as an array. By specifying the rect format, you will get a string value you can place directly into the XRect object.

:Count

The number of items in an array.

The count specifier is a special directive which returns the number of items in an array rather than an item from that array.

:KeyCount

The number of items in a dictionary.

The keycount specifier is a special directive which returns the number of items in a dictionary rather than an item from that dictionary.

:Keys

The keys for a dictionary.

The keys specifier is a special directive which returns a comma delimited list of the names of the entries in the dictionary.

For example, the code below could return the rect of the page CropBox.

[C#]

theDoc.GetInfo(theID, "/CropBox:Rect");

[Visual Basic]
theDoc.GetInfo(theID, "/CropBox:Rect")


XML to PDF

When ABCpdf was designed a conscious design decision was made not to make it XML based. While XML templates might be an obvious route to take there are problems with this approach.

The key factor is that the creation of a PDF document is an interactive one. Often you do not know how much text you're going to be adding until you're given the text. You may need to flow the text from one column to another, you may need to create a new page to hold any extra text or you may choose to reduce the font size so that all your text fits. These are the kinds of decision that are very difficult to describe in terms of XML.

Although it is easy to create an XML based PDF generator using a product like ABCpdf it is not possible to work the other way round. So you can produce template based documents using ABCpdf. If you were to want to implement interactive code using an XML based solution this would be impossible.

For an example of how to convert XML content to PDF using ABCpdf see the Tagged PDF Example project under the ABCpdf menu item. As well as demonstrating how to convert XML to PDF it also demonstrates how to add semantic tags to the document at the same time.


Manual Installation

Under most circumstances, you will want to install ABCpdf .NET using the standard installer and register it using the PDFSettings control panel.

Occasionally, you may wish to install ABCpdf manually. To do this, you will need the files listed below as obtained from the ABCpdf programs folder (look in %PROGRAMFILES%).

File Name Notes
ABCpdf.NET7.dll

The Assembly used by .NET 7.0.

The MSI installer places this Assembly at the following location:

%ProgramFiles%\WebSupergoo\ABCpdf12 .NET\Common\

However, typically you will be using the DLL as provided by the ABCpdf NuGet package.
ABCpdf.NET6.dll

The Assembly used by .NET 6.0.

The MSI installer places this Assembly at the following location:

%ProgramFiles%\WebSupergoo\ABCpdf12 .NET\Common\

However, typically you will be using the DLL as provided by the ABCpdf NuGet package.
ABCpdf.NET5.dll

The Assembly used by .NET 5.0.

The MSI installer places this Assembly at the following location:

%ProgramFiles%\WebSupergoo\ABCpdf12 .NET\Common\

However, typically you will be using the DLL as provided by the ABCpdf NuGet package.
ABCpdf.dll

The Assembly used by .NET 4.0.

The MSI installer places this Assembly in the GAC to allow global access from any .NET application. It installs a second reference copy at the following location:

%ProgramFiles%\WebSupergoo\ABCpdf12 .NET\Common\

However, if you are installing manually, you can just place this file in the bin directory of your application.
ABCpdfCore.dll

The Assembly used by .NET Core 3.1.

The MSI installer places this Assembly at the following location:

%ProgramFiles%\WebSupergoo\ABCpdf12 .NET\Common\

However, typically you will be using the DLL as provided by the ABCpdf NuGet package.
ABCpdf12-32.dll
ABCpdf12-64.dll

The ABCpdf core engine.

There is a 32-bit and a 64-bit version of this DLL. Having both installed is the safest and simplest way to deploy.

This DLL contains the core engine. It incorporates our proprietary Direct to PDF technology and is designed for high performance PDF manipulation in a multithreaded environment. This DLL is placed into the System32 directory typically at:

%SystemRoot%\System32\

However, if you are installing manually, you can just place this file in the bin directory of your application.

32 vs 64. Do I need the 32-bit DLLs or the 64-bit ones or both?

If your project targets x86 then you will only ever need the 32-bit DLLs (these will execute under WOW64 on a 64-bit machine). If it targets x64 then you will only ever need the 64-bit DLLs.

If your project targets AnyCPU then then you need the 32-bit DLLs on a 32-bit version of Windows and the 64-bit ones on a 64-bit version.

However it does not hurt to have all the DLLs installed. Only the ones which are needed will be used.

3DGlue12-32.dll
3DGlue12-64.dll

This is an optional component required for use of the PDF 3D rendering.

There is a 32-bit and a 64-bit version of this DLL. Having both installed is the safest and simplest way to deploy.

This DLL is normally located in the same directory as the core engine.
ChakraCore32.dll
ChakraCore64.dll

This is an optional component required for form JavaScript calculations.

There is a 32-bit and a 64-bit version of this DLL. Having both installed is the safest and simplest way to deploy.

If this component is not installed then field JavaScript calculations will not function. The effect will be the same as having XForm.UseFieldScript set to false.

This DLL is normally located in the same directory as the core engine.

PrintHook32.dll
PrintHook64.dll

This is an optional component required for use of the XpsAny ReadModule.

It is unlikely that you will want to use this, as the functionality of the XpsAny module has been largely superceded by other modules.

The component intercepts the Microsoft XPS Document Writer and enables ABCpdf to import an extended range of file types via XPS.

There is a 32-bit and a 64-bit version of this DLL. Having both installed is the safest and simplest way to deploy.

This DLL is normally located in the same directory as the core engine.
ABCChrome65 (directory)

This is an optional component required for use of the ABCChrome HTML engine prior to ABCpdf version 12.

This folder should be placed in the bin directory (next to ABCpdf.dll).
ABCChrome86 (directory)

These are optional components for use of the ABCChrome HTML engine from version 12.

This folder should be placed in the bin directory (next to ABCpdf.dll).

Only ABCChrome86 is required for the default ABCChrome engine.
ABCGeckoWP.exe,
XULRunner38_0 (directory)

This is an optional component required for use of the Gecko HTML engine.

This EXE is the interface ABCpdf uses to access the Gecko HTML engine. However, it is not the engine itself. The engine is held in the XULRunner38_0 folder, which must be located in the same directory as ABCGeckoWP.exe.

You should generally put these items in the bin directory (next to ABCpdf.dll). ABCpdf uses a LoadLibrary type search to find the EXE, so it can be put in other places, but taking advantage of this may result in an installation which is confusing to other people.

Be aware that on x64 Windows, if you put ABCGeckoWP.exe in %SystemRoot%\System32, File System Redirection will prevent it from finding the XULRunner38_0 folder. For this type of deployment you would need to use %SystemRoot%\SysWOW64 instead.
TaskGardener.exe

This is an optional component required for out-of-process execution in restricted permission environments.

The Gecko HTML engine runs in separate worker processes. In a restricted environment, such as IIS, it is not possible to specify the user account to directly start a process. If your IIS application specifies the user in Doc.HtmlOptions.ProcessOptions.UserName, you will need to install this EXE as a Windows Service so that it starts processes for ABCpdf.

Run it with -install to install it as a Windows Service or with -uninstall to uninstall it.
ABCWebKit (directory)

This is an optional component required for use of the ABCWebKit HTML engine.

This folder should be placed in the bin directory (next to ABCpdf.dll). From version 2.2

If you are deploying manually to a restricted permission environment such as IIS and also you are using the MSHtml engine for converting HTML content, then you may need to check the registry for certain structures. The registry key HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NT\CurrentVersion\Devices should contain printer entries. The Microsoft XPS Document Writer that comes with Windows suffices to satisfy this requirement. If there are no entries in this key, you can copy them from HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices. Absence of entries in this registry key may result in errors from the MSHtml engine when using ABCpdf in IIS.

Background. Why XULRunner?

Well, XUL (pronounced zool) is a kind of enhanced XHTML designed for cross platform user interface development. The name XUL is both an acronym and also a reference to the scene in Ghostbusters in which an ancient god called Zuul possesses Dana and tells Dr Venkman,

"There is no Dana, only Zuul!"

Since XUL incorporates everything needed for an application in a completely self-contained manner, the developers adopted the catchphrase,

"There is no data, only XUL."

Other references to the Ghostbusters movie are scattered throughout the development of Mozilla, Gecko and Firefox.

Most calls to ABCpdf will result in a trial license being installed if it is found that no license has yet been installed. At minimum, all that is required is to query the value of the XSettings.LicenseDescription property. Write access to the registry is required for a trial to be inserted.

[C#]

using WebSupergoo.ABCpdf12;
MessageBox.Show("New License: " + XSettings.LicenseDescription);

[Visual Basic]
Imports WebSupergoo.ABCpdf12
MessageBox.Show("New License: " + XSettings.LicenseDescription)

You can use a full license key as provided to you when you purchase, or you can use a trial license key copied from the PDFSettings application. To enter a license key, call XSettings.InstallLicense or at application startup before any ABCpdf objects have been created. If you have purchased a Redistribution license, you may prefer to call XSettings.InstallRedistributionLicense. In both cases the license will remain available to the process until it unloads.

[C#]

using WebSupergoo.ABCpdf12;
// here we use a trial license key as copied from the PDFSettings application
if (XSettings.InstallLicense("cd9b5c07db69df2bf57c0a04d9bca58b10c44889c9fb197984e592f49addfce5ec5fe85d7b9205bc"))
  MessageBox.Show("License Installed Successfully: " + XSettings.LicenseDescription);
else
  MessageBox.Show("License Installation Failed");

[Visual Basic]
Imports WebSupergoo.ABCpdf12
' here we use a trial license key as copied from the PDFSettings application
If XSettings.InstallLicense("cd9b5c07db69df2bf57c0a04d9bca58b10c44889c9fb197984e592f49addfce5ec5fe85d7b9205bc") Then
  MessageBox.Show("License Installed Successfully: " + XSettings.LicenseDescription)
Else
  MessageBox.Show("License Installation Failed")
End If

Shared Hosts. Most installations of ABCpdf .NET on shared servers are seamless. However, you need to be aware that you are a guest on the server and your host may have locked down permissions in ways which will make your life difficult. If this occurs, there is typically little that either you or we can do about it.

This is why we recommend deployment on a dedicated server. Dedicated servers are cheaper than you might think, and the level of control they allow is only one of the very significant advantages they afford. It is one of the best decisions you can make.

If you are intending to install on a shared server, the essential thing to do is to deploy early and discover any issues before they become major problems.


Fonts and Languages

Base

The base fonts are guaranteed to be available on all systems.

Using the base fonts in your PDF results in a small document which is guaranteed to render in the same way on all systems. However the base fonts do not support complex languages such as Chinese and Japanese and they do not support some characters used in Eastern Europe.

The following are the names of the base fonts.

  • Times-Roman
  • Times-Bold
  • Times-Italic
  • Times-BoldItalic
  • Helvetica
  • Helvetica-Bold
  • Helvetica-Oblique
  • Helvetica-BoldOblique
  • Courier
  • Courier-Bold
  • Courier-Oblique
  • Courier-BoldOblique
  • Symbol
  • ZapfDingbats

Use the AddFont method, with the "Latin" language, to reference these fonts.

Embed

Embedded TrueType or OpenTypeUnicode fonts are generally the most efficient and reliable way of adding complex language support to your PDF documents. However you need to ensure that you have permission to embed and redistribute your chosen font.

ABCpdf includes options to try and protect you from inadvertently embedding copyrighted fonts. However you should not rely on this protection. If you wish to embed fonts It is vitally important that you think about the way these fonts will be used and that you understand the operations permitted by the copyright holder. Ultimately you need to take responsibility for any fonts you embed in your PDF documents.

When embedding large fonts you should generally choose to subset them. Not only does it produce smaller PDF documents but It is also generally faster to embed a subset of a large font than to embed the entire font.

Use the Doc.EmbedFont method to embed fonts. Only Latin and Unicode languages can be embedded; other languages will be referenced.

The table below shows the valid combinations of language and horizontal and vertical writing directions.

Language | Horizontal | Vertical | Notes
"Latin" |  |  | The default and most efficient encoding for Western languages.
"Unicode" |  |  | The setting you will most often want to use when embedding foreign character sets.
"Korean" |  |  |
"Japanese" |  |  |
"ChineseS" |  |  | Simple Chinese
"ChineseT" |  |  | Traditional Chinese

Refs

Referenced TrueType or OpenType fonts produce a smaller PDF document. However for complex languages you will need a recent version of Adobe Acrobat and you will need to install the relevant language pack. Without these you will not be able to view your documents and your viewer may report errors.

Use the Doc.AddFont method to reference fonts.

The table below shows the valid combinations of language and horizontal and vertical writing directions.

Language | Horizontal | Vertical | Notes
"Latin" |  |  | The default and most efficient encoding for Western languages.
"Unicode" |  |  | This selector requires that the font be embedded - it cannot be used for referencing fonts.
"Korean" |  |  | Requires the relevant Adobe Acrobat Language Pack
"Japanese" |  |  | Requires the relevant Adobe Acrobat Language Pack
"ChineseS" |  |  | Simple Chinese requires the relevant Adobe Acrobat Language Pack
"ChineseT" |  |  | Traditional Chinese requires the relevant Adobe Acrobat Language Pack

Type 1

Sometimes, typically when dealing with the Mac platform, you may need to add or embed Type 1 fonts. You can do this using Doc.EmbedFont or Doc.AddFont in exactly the same way as you would for any other font.

Type 1 fonts contain a limited set of characters. As such the only language which is available is the "Latin" language.

Reuse

Fonts are changed when they are inserted into a PDF document. As such it can be difficult to reuse a font which has already been embedded.

Unicode fonts are complex and the changes that are made to insert them into a PDF document mean that the characteristics that ABCpdf requires for general text operations are unlikely to be present.

Any font that has been subsetted is obviously going to present difficulty because glyphs have been removed . If you wish to reuse such a font you will not be able to generate output for those glyphs.

Because Type 1 fonts contain contain a limited set of characters and a simple encoding, they are the most reliable for re-use. They are much more reliable than TrueType fonts.

To access a font that you might be able to re-use you can scan through the ObjectSoup looking for FontObject objects.

However be aware that the changes made to fonts may vary between software and between font types. As such this kind of operation is unpredictable.

Issues

ABCpdf will allow you to use any valid TrueType or Type 1 (PostScript) font.

If you are having problems accessing a particular font try disabling the ABCpdf font protection functionality. However note that you should not embed and redistribute fonts unless you have permission to do so.

ABCpdf maintains a font cache. This means that for ABCpdf to pick up on a newly installed font you will need to restart any processes that are using ABCpdf.

Alternatively you can pass the path to your font file to the AddFont or EmbedFont method. This will automatically load the font file. Do not move the font file after doing this - ABCpdf relies on fonts staying in place.

Sometimes permissions are placed on individual font files which may restrict access from restricted permission accounts such as ASP or ASP.NET.

Occasionally TrueType fonts are corrupt or non- standard. This can cause problems for ABCpdf (which will refuse to recognize them) or Acrobat (which will refuse to use a font embedded in the PDF). However this type of problem is relatively infrequent and tends to be restricted to unusual fonts such as bar-codes.

If you hit a problem you think is related to a corrupt or nonstandard font please mail us the font and we'll see what we can suggest.


Fields and Forms

Basics

PDF allows the creation of interactive forms. Sometimes you will hear these types of PDF referred to as electronic forms, eForms or AcroForms.

To a client an eForm simply looks like a normal PDF containing text boxes, buttons and other interactive elements of the type you typically see on the web.

Indeed eForms support elements almost identical to HTML forms. They also support mechanisms very similar or identical to HTML forms for content submission to a web server.

For more details see the Adobe Web Site.

Fields

Most people coming to eForms will be coming from an HTML background. There are subtle differences between the PDF form model and the HTML form model that can cause confusion.

In HTML a form is part of a web page. Each field in the HTML form has a visible appearance on the page (with the exception of hidden fields). So the concept of a field and what it looks like on the page is pretty much identical.

eForms separate the idea of a field from its visible representation.

Each page of the document owns a set of visible annotations. There are lots of different types of annotation but the ones that are used in eForm fields are called widgets. A widget contains properties that allow a PDF reader to display it appropriately on the page.

Each document owns a tree structure of fields which spans the entire document. Each field has a name and also a full name (like a file path) which tells you how to get to that field from the top level of the tree. The leaves of the tree contain the visible widgets that you see on the pages. Note that PDF does not require that full names are unique.

So there are two independent sets of entities each with its own features. The bits you see and which people normally call fields are in fact widgets.

Widgets do not have a name or identity as such - it's just that they may be associated with a field which has an identity. Similarly a field doesn't exist at a location or on a page it is just that it is associated with a widget that exists at a particular location on a particular page.

ABCpdf hides these distinctions from you. When you ask for a field by name it will return you the widget associated with that field. Given the widget you can find out where it is physically located in terms of page numbers and page rectangles. Similarly if you have a widget you can ask it for a field name. Behind the scenes ABCpdf finds the field associated with the widget and returns you the field name.

Why?

So why are eForms useful? There are a range of purposes to which eForms can be put. However probably the most common purpose is to provide placeholders in template PDFs.

Suppose you have a template document you want to use within ABCpdf. Using Acrobat you can insert form fields into the PDF at locations you want content to be inserted. Using ABCpdf you can automatically detect the locations of those fields and enter content at those locations.

If later you want to shift your content a little it's a simple matter to open the PDF in Acrobat and move the fields around.

See the eForm Example for details.

Creation

You can use Acrobat to edit forms using the Advanced Editing tools available under the Tools menu.

However if you choose items from the Forms menu or toolbar then you will probably find that you end up editing your form in Adobe LiveCycle Designer rather than Acrobat.

Adobe Designer is an application which comes with Acrobat Pro. It uses PDF as an output medium. However the way that Designer operates means that forms created by Designer are fundamentally different from forms created by Acrobat.

For example an Acrobat created form typically contains a background and then a set of fields. The fields operate separately from the background.

Adobe Designer created forms do not make this distinction. They use a separate data store to specify the fields. The PDF content is merely the visible rendition of this field specification. The underlying field specification is made up of chunks of XML embedded in the PDF. This XML format is known as XFA - Adobe XML Forms Architecture.

XFA is referenced in, but is not part of, the ISO standard for PDF.

Because Designer documents are PDF documents you can add content to them using standard ABCpdf methods of adding PDF content. However if you then open them then in Designer the content will most likely be deleted because Designer will recreate the PDF appearance using the separate field specification.

Equally because the PDF output is merely the visible rendition of a separate field specification the fields and background may be tied to each other. So you might use ABCpdf to delete a field and find that the border has been left behind.

In extreme cases the LiveCycle documents may not even contain any useful PDF content. Instead the PDF becomes a placeholder which contains an XFA document. The document is only really a thin PDF wrapper around XFA data. You will find that many PDF viewers (including Acrobat Reader X and earlier) cannot display this type of PDF properly.

If you have input to the document creation process, using LifeCycle to save the file as "Adobe Static PDF Form" may help.

If you want to modify forms you will generally find it easier to work with Acrobat created forms than Designer created ones.


Image Handling

Basics

ABCpdf embeds images into the PDF at their original resolution. Images may be displayed at different sizes but the underlying image is exactly the same. If your image looks grainy when you print you'll need to find a higher resolution (bigger) image.

Suppose you have an image 300 pixels wide by 600 pixels high. If you wanted this image to print well at 300 dpi then you would need to add it into a rectangle no larger than 1 inch by 2 inches. If you wanted to view it at a screen resolution of 75 dpi you could place it into a rectangle up to 4 inches by 8 inches.

Modes

In general you will need to put your data into an XImage object before adding the Image object to your document using Doc.AddImageObject.

ABCpdf will attempt to place the image data directly into the PDF as literally as possible. This means compression settings and color spaces will be preserved as far as possible.

Because the image may not have to be decompressed and re-compressed, this method can be very fast. This is particularly true for scanned TIFF images.

Because the original image compression is maintained there is no possibility of expansion due to re-compression.

Images are inserted in their native color space together with any color profiles - this guarantees fidelity of color reproduction.

Colors

Colors can be specified in a number of ways - most commonly in terms of RGB or CMYK values. These values are literal - RGB values relate directly to the brightness of the red, green and blue phosphors on a display - CMYK values relate directly to the amounts of Cyan, Magenta, Yellow and Black inks applied to a piece of paper.

These literal values do not always equate to the same perceived color. Monitors vary and an image displayed on one may look quite different to the same image displayed on another. Similarly a CMYK value applied with one printer to one type of paper may look quite different to a CMYK value applied with a different printer to a different type of paper.

The International Color Consortium (ICC) provides specifications to allow an independent definition of color. An ICC color profile is designed to complement your raw color data. So if you have a CMYK image you also specify an color profile which tells you more about the intended destination of the image. This allows you to adjust the colors for your intended output medium.

In order to maintain flexibility and color fidelity it is important to preserve both the raw image data and the ICC profile associated with it. This can only be done if you provide images in pass-through rather than direct mode.

ABCpdf will accept RGB TIFF, CMYK TIFF, LAB TIFF, Grayscale JPEG, RGB JPEG and CMYK JPEG direct. This means whatever colors you pass into ABCpdf will go direct into the PDF without any modification. Additionally any ICC profile will be preserved and inserted appropriately so that the colors can be adjusted accurately for any output.

Comp

So what types of compression does the Image object use?

The Image object generally uses Flate compression. This is the same compression type as is used for PNG images. It is a lossless method which ensures that the quality of your original image is maintained.

However if your source image is black and white then ABCpdf will use CCITT G4 fax compression as this typically results in reduced file sizes for this type of image.


Styled Text

Basics

ABCpdf allows a range of HTML support for use when inserting multi-styled text. This can make it much easier to design documents and it can reduce the quantity of code required.

The HTML support offered here does not cover the entire HTML specification. It covers a limited range of the HTML specification as is required for styled text. It also extends the HTML specification to allow you to precisely control elements of style not covered by HTML.

Chars

ABCpdf lets you use Unicode text. So you can use Styled Text with any language from English to Korean to Japanese.

Normal character entities are standard HTML and hence use the Latin 1 character set. For example '&#153;' equates to the trademark sign.

For convenience you can also specify hex and octal character entities. For example '&#65;', '&#x0041;' and '&#o0101;' all equate to lower case 'a'. Hex and octal character entities are assumed to be expressed in the Unicode character set.

For most situations this will make no difference. However you should note that, above character 127, there are differences between the Latin 1 and the Unicode character set. For example the trademark symbol which is character 153 in Latin 1 is 8482 in Unicode.

If you require fine control over hyphenation you can make use of the soft hyphen character – '&shy;'. This character is invisible and indicates a point at which a chunk of text may reasonably be broken.

Tags

You can add styled text to your documents using the AddTextStyled method. ABCpdf supports the following HTML tags and Attributes.

  • <Head>
  • <Body>
  • <BR>
  • <P>
  • <H1> to <H6>
  • <List>
  • <UL>
  • <OL>
  • <LI>
  • <A>
  • <B>
  • <I>
  • <U>
  • <Strike>
  • <Sup>
  • <Sub>
  • <Font>
  • <StyleRun>
  • <BlockQuote>
  • <Pre>
  • <Leader>

<Head>

This tag is used to delimit the head of an HTML document. All content in the head is ignored.

This tag does not accept any attributes.

<Body>

This tag is used to mark the body of an HTML document. The body is a type of stylerun and so it accepts the same attributes as a stylerun tag. It also accepts the following additional attributes.

Attribute Notes
link

The color for links (anchors) in subsequent content.

Colors are generally specified as RGB in hexadecimal notation (e.g. color="#FF0000") or as one of the sixteen standard color names (e.g. color=red").

You can specify grayscale colors by supplying only one component (e.g. color="#80") and CMYK colors by supplying four (e.g. color="#10203040"). CMYK component ranges between 0 and 100 inclusively so the hexadecimal representation is between 00 and 64.

You can specify high precision colors by passing an array of floating point numbers prepended by an at sign. Each number represents a component intensity in the range zero to one (e.g. color="@ 0.244 0.122 0.342"). The number of components indicates whether the color space is grayscale, RGB or CMYK (e.g. color="@ 0.123 0.246 0.999 0.025" would be CMYK). An alpha value can be indicated by prepending an 'a' to one of the components.

The default link color is RGB blue.

vpos

The vertical positioning for the block of text.

Changing this attribute is identical to changing the XTextStyle.VPos property.

<BR>

This tag is used to force a line break. It also accepts the following additional attributes.

Attribute | Notes
collapse | Whether to vertically collapse the line break or not. Normally, line breaks are affected by the paragraph and line spacing. However sometimes you may need a minimal line break with no spacing. By setting this property to true you can accomplish this. The default collapse value is false.

<P>

This tag is used to mark up paragraphs. Paragraphs are types of styleruns and so they accept the same attributes as stylerun tags. They also accept the following additional attributes.

Attribute Notes
align

The text alignment for the paragraph. If no value is specified it is assumed that the text should be left aligned.

You can specify left aligned text (e.g. align=left), right aligned text (e.g. align=right), centered text (e.g. align=center) or justified text (e.g. align=justify).

Changing this attribute is identical to changing the XTextStyle.HPos or XTextStyle.Justification properties.

break

The line breaking style for the paragraph. This attribute takes a comma delimited list of hints used to control how lines are broken when chaining from one text area to another.

You can specify that a paragraph should be kept with the next one by assigning the keepwithnext hint (e.g. break=keepwithnext). You can specify that there should be a break before a paragraph by specifying the breakbefore hint (e.g. break=breakbefore).

For details on chaining see the AddTextStyled function.

spacebefore

Normally paragraphs have vertical space before and after the body text.

By setting this attribute to zero you can remove vertical space before the paragraph.

spaceafter

Normally paragraphs have vertical space before and after the body text.

By setting this attribute to zero you can remove vertical space after the paragraph.

<H1> to <H6>

This tag is used to mark header sections. Headers are types of paragraphs and so they accept the same attributes as paragraph tags.

<List>

This tag is used to indicate a list of items. Each list item consists of a marker and some text. Markers may be bullet points, numbers or letters.

Lists are types of paragraphs and so they accept the same attributes as paragraph tags. They also accept the following additional attributes.

Attribute Notes
itemindent

The indent of the item text from the left of the marker. This value is measured in the current units.

By altering this property you can change the distance between the marker and the text.

The default is dynamically determined based on the type of marker and the size of the text.

markerindent

The indent of the left of the marker from the current left of the surrounding text. This value is measured in the current units.

By altering this property you can alter the indent distance for the markers in the list.

The default is dynamically determined based on the type of marker and the size of the text.

start

Specifies the starting number for the first item in the list.

This is only used when ordered markers are specified.

The default is one.

type

Specifies the type of marker to use. You can use either ordered markers or unordered markers.

Ordered markers increment for each item in the list. You can use numbers (type=1), lower case roman numerals (type=i), upper case roman numerals (type=I), lower case letters (type='a'), upper case letters (type=A) or none (type=none).

Unordered markers are the same for each item in the list. You can specify bullet points (type=disk), hollow bullets (type=circle) or squares (type=square).

The default type is 'disk'.

<UL>

The UL tag is used to indicate an unordered list. Unordered lists are types of lists and so they accept the same attributes as list tags. The default marker is the bullet point but the marker will change as lists are nested within each other.

<OL>

The OL tag is used to indicate an ordered list. Ordered lists are types of lists and so they accept the same attributes as list tags. The default marker type is numeric.

<LI>

This tag is used to indicate an item within a list. It accepts the following attributes.

Attribute | Notes
value | Specifies the number for this list item. Subsequent items are numbered incrementally from this new value.
type | Specifies the type of marker to use. You can use the same types as you find in the type attribute of the list tag.

<A>

The anchor tag is used to mark subsequent content as a hyperlink. Anchors are types of styleruns and so they accept the same attributes as stylerun tags. They also accept the following additional attributes.

Attribute | Notes
href | The URL of the destination.

Hyperlinks normally appear as blue underlined text. You can override this style using the body link attribute or by using stylerun attributes in the body of your anchor tag.

<B>

This tag is used to apply a bold text style to subsequent content.

ABCpdf will attempt to reference an appropriate bold font. If it cannot locate one it will generate a synthetic bold style using the XTextStyle.Bold property.

This tag does not accept any attributes.

<I>

This tag is used to apply an italic text style to subsequent content.

ABCpdf will attempt to reference an appropriate italic font. If it cannot locate one it will generate a synthetic italic style using the XTextStyle.Italic property.

This tag does not accept any attributes.

<U>

This tag is used to apply an underline text style to subsequent content. The effect is identical to changing the XTextStyle.Underline property.

This tag does not accept any attributes.

<Strike>

This tag is used to apply an strike-through text style to subsequent content. The effect is identical to changing the XTextStyle.Strike property.

This tag does not accept any attributes.

<Sup>

This tag is used to indicate text to be rendered as superscript.

This tag does not accept any attributes.

<Sub>

This tag is used to indicate text to be rendered as subscript.

This tag does not accept any attributes.

<Font>

The font tag is used to change the current font style. Fonts are types of styleruns and so they accept the same attributes as stylerun tags. They also accept the following additional attributes.

Attribute Notes
size

The font size for subsequent content.

You can set absolute font size by specifying an integer ranging from one to seven (e.g. size=6). Or you can specify a font size relative to the current base font size (e.g. size="+1").

For greater control over the size of text you should use the fontsize attribute.

color

The color for subsequent content.

Colors are generally specified as RGB in hexadecimal notation (e.g. color="#FF0000") or as one of the sixteen standard color names (e.g. color=red").

You can specify grayscale colors by supplying only one component (e.g. color="#80") and CMYK colors by supplying four (e.g. color="#10203040"). CMYK component ranges between 0 and 100 inclusively so the hexadecimal representation is between 00 and 64.

You can specify an alpha value for your color by appending a slash and a hex value to the end of your color string (e.g. color="#10203040/C0").

You can specify that no color should be applied by using the special 'none' keyword (e.g. color="none"). This can be useful if you wish to specify your own color operators in your own low level code.

You can specify high precision colors by passing an array of floating point numbers prepended by an at sign. Each number represents a component intensity in the range zero to one (e.g. color="@ 0.244 0.122 0.342"). The number of components indicates whether the color space is grayscale, RGB or CMYK (e.g. color="@ 0.123 0.246 0.999 0.025" would be CMYK). An alpha value can be indicated by prepending an 'a' to one of the components.

This attribute sets both the stroke and fill colors.

color-stroke

The stroke color for subsequent content.

This attribute allows you to specify the stroke color independently from the fill color.

color-fill

The fill color for subsequent content.

This attribute allows you to specify the fill color independently from the stroke color.

csid

The color space for subsequent content.

This attribute takes an Object ID obtained from a previous call to AddColorSpaceFile or AddColorSpaceSpot.

This attribute sets both the stroke and fill color space.

csid-stroke

The stroke color space for subsequent content.

This attribute allows you to specify the stroke color space independently from the fill color space.

csid-fill

The fill color space for subsequent content.

This attribute allows you to specify the fill color space independently from the stroke color space.

face

The font typeface for subsequent content.

This value takes a comma delimited list of typeface names, listed in order of preference. Fonts are referenced rather than embedded.

For greater control over the way that fonts are added to your document you should use the pid attribute.

embed

Whether to embed or reference fonts added via the face attribute.

For details see the EmbedFont method. The default is false.

language

What language to use when embedding fonts added via the face attribute.

For details see the EmbedFont method. The default is Latin.

protection

Whether to apply font protection when embedding fonts added via the face attribute.

For details see the EmbedFont method. The default is true.

font-family

The font family for subsequent content.

This value operates in the same way as the face attribute detailed above.

font-style

The font style.

This attribute can take the values oblique, italic or normal. Normal is the default.

NB. ABCpdf does not currently make a distinction between oblique and italic styles.

font-weight

The font weight.

This attribute can take the a value between 100 (lightest) and 900 (heaviest).

It can also take the following pre-defined values – normal, bold, bolder and lighter.

The default is normal – 400.

NB. ABCpdf cannot currently synthesize font weights of less than 400.

rendering-mode

The text rendering mode. Possible values are:

0 Fill text (default)
1 Stroke text.
2 Fill, then stroke text.
3 Neither fill nor stroke text (invisible).
4 Fill text and add to path for clipping.
5 Stroke text and add to path for clipping.
6 Fill, then stroke text and add to path for clipping.
7 Add text to path for clipping.

NB. The outline style is a more commonly used alternative to the rendering-mode.

<StyleRun>

The stylerun tag is used to change the current style. It accepts the following attributes.

Attribute Notes
pid

The font typeface for subsequent content.

This attribute take an Object ID obtained from a previous call to AddFont or EmbedFont.

fontsize

The font size for subsequent content.

Changing this attribute is identical to changing the XTextStyle.Size property.

charspacing

The character spacing for subsequent content.

Changing this attribute is identical to changing the XTextStyle.CharSpacing property.

wordspacing

The word spacing for subsequent content.

Changing this attribute is identical to changing the XTextStyle.WordSpacing property.

justification

The justification for subsequent content.

Changing this attribute is identical to changing the XTextStyle.Justification property.

hpos

The horizontal positioning for subsequent content.

Changing this attribute is identical to changing the XTextStyle.HPos property.

bold

Whether to apply a synthetic bold style to subsequent content.

Changing this attribute is identical to changing the XTextStyle.Bold property.

italic

Whether to apply a synthetic italic style subsequent content.

Changing this attribute is identical to changing the XTextStyle.Italic property.

underline

Whether to underline subsequent content.

Changing this attribute is identical to changing the XTextStyle.Underline property.

strike

Whether to apply a strike-through effect to subsequent content.

Changing this attribute is identical to changing the XTextStyle.Strike property.

strike2

Whether to apply a double strike-through effect to subsequent content.

Changing this attribute is identical to changing the XTextStyle.Strike2 property.

outline

Whether to outline subsequent content.

Changing this attribute is identical to changing the XTextStyle.Outline property.

linespacing

The line spacing for subsequent content.

Changing this attribute is identical to changing the XTextStyle.LineSpacing property.

paraspacing

The paragraph spacing for subsequent content.

Changing this attribute is identical to changing the XTextStyle.ParaSpacing property.

collapselines

By default this value is false which means that XTextStyle.LineSpacing will be applied before each line.

However by setting this parameter to false you can disable line spacing for the first line of text added in a call to AddTextStyled. This has the effect of moving the text up so it butts up against the top of the current Doc.Rect.

collapseparas

By default this value is false which means that XTextStyle.ParaSpacing will be applied before each paragraph.

However by setting this parameter to false you can disable paragraph spacing for the first line of text added in a call to AddTextStyled. This has the effect of moving the text up so it butts up against the top of the current Doc.Rect.

leftmargin

The left margin for subsequent content.

Changing this attribute is identical to changing the XTextStyle.LeftMargin property.
leftmargins

Variable left margins for subsequent content.

The leftmargin property applies one margin to all text in the range. The leftmargins property allows you to apply variable margins depending on how far down the page the text is being positioned. This can be used to flow text around objects such as pictures.

This tag takes a an array of floating point numbers. The array must be a multiple of three long and each triplet defines a margin for a particular vertical range within the Doc.Rect. The values are [yMin yMax Margin] where the y values are measured downwards from the top of the Doc.Rect.

For typical code see the Text Flow Round Image example.
rightmargin

The right margin for subsequent content.

This property is similar to the leftmargin attribute but allows you to specify a margin on the right hand side of the text block.
rightmargins

Variable right margins for subsequent content.

This property is similar to the leftmargins attribute but allows you to specify margins on the right hand side of the text block.

indent

The indent for subsequent content.

Changing this attribute is identical to changing the XTextStyle.Indent property.

fixedwidth

A fixed with for the style run.

Each style run has a width. The width is normally determined by the size of the characters in the text.

Under some situations it can be useful to assign a fixed width to the entire style run. This can be used for aligning text and for bullet pointed lists.

Note that the fixed width is specific to each style run and may be inherited by elements within it. So if you nest one stylerun within a container with a fixedwidth attribute, you will end up with two fixed width styleruns. The result may be content twice as wide as you are expecting.

textrise

The text rise for subsequent content.

Positive values shift the text upwards. Negative values shift it downwards. The textrise distance is measured in the current units.

annots

Annotations associated with subsequent content.

You can use a link annotation to insert a hyperlink (e.g. annots='link:http://www.google.com/').

You can use a goto annotation to insert a link to another page in the document (e.g. annots='goto:3'). The number indicates the page number. Note that the destination page must exist at the point at which the text is inserted.

You can use a text annotation to insert a textual note (e.g. annots='text:A note to be inserted').

You can use highlight, squiggly, underline, and strikeout annotations for text markup (e.g. annots='highlight:some contents').

While other types of annotations have textual contents (that are specified after colon), link and goto annotations do not. However, you can still mark link and goto annotations with (non-displayed) textual contents using "contents:" so that you can later identify them easily with Doc.GetInfo or Annotation.Contents (e.g. annots='link:http://www.google.com/;contents:alternative description').

dir

The default reading direction.

Bi-directional text such as Hebrew or Arabic is laid out in the context of the default reading direction.

You can specify left to right paragraph direction (e.g. dir=ltr), right to left paragraph direction (e.g. dir=rtl), or use the default of none (e.g. dir=none).

When none is specified the original ABCpdf left to right layout is preserved for compatibility with previous versions.

Arabic requires special text shaping for contextual ligatures and combining characters. This is because each character has different forms depending on placement within a string. Each character can be independent, initial, medial or final. This text shaping is only performed if a reading direction is set. So for Arabic support you should always specify a default reading direction.

canbreakafter

Characters at which lines may be broken.

Normally ABCpdf will only break lines after certain characters like spaces. You can indicate additional characters after which a break is acceptable using this parameter.

For example to allow a break after hyphens or underscores you might use canbreakafter='-_'.

breakengine

The default line breaking engine.

The line breaking engine determines at which points lines can be broken.

You can specify the Uniscribe line breaking engine (e.g. breakengine=uniscribe), the Unicode line breaking engine (e.g. breakengine=unicode), or use the default of auto (e.g. breakengine=auto).

When auto is specified the Uniscribe engine is used for installations on Windows XP and 2003 and the Unicode engine is used for installations on Windows NT and 2000.

wrap

Whether lines should wrap or not. The default is true.

If wrapping is turned off (ie by setting this value to false) then lines of text extending outside the drawing area will be truncated.

transform

The transformation for text.

The format of this value is the same as that of XTransform.String. The default value is the identity. This attribute takes precedence over the rotate attribute. The numeric values can optionally be preceded by 'fixed' (e.g. transform='fixed 2 0 0 2 0 0'), which fixes the transformation origin.

The direction to which the rightward direction (the default primary advancement direction) is mapped is the primary advancement direction. The direction in which a new line is offset (i.e. the direction of the offset caused by starting a new line) is the secondary advancement direction.

When the origin is not fixed and the StyleRun is broken into pieces (because of nested tags or line breaks, for example), the transformation is applied to each piece individually. When the primary advancement direction is not horizontal, the effect is observably different as each piece starts at the original baseline.

When the origin is fixed, each piece (without its own transformation) appears as if it starts at where the previous piece ends because the transformation origin is fixed at the beginning of the StyleRun.

The secondary advancement direction is always perpendicular to the primary advancement direction regardless of skews in the transformation. (This is meaningful only in the context of multiple lines within a StyleRun with a fixed transformation.) In which of the two opposite directions the secondary advancement is depends on the direction to which the downward direction (the default secondary advancement direction) is mapped. This allows artificial styles that simulate oblique/italic without affecting the secondary advancement.

Decorations (underline and strike-through) are placed at the correct locations without distortion so they remain rectangular.

rotate

The rotation for text.

This value is measured in degrees anticlockwise. The default is zero. This attribute is ignored if the transform attribute is present. The numeric value can be preceded by 'fixed' (e.g. rotate='fixed 30'), which fixes the transformation origin as explained in the transform attribute.

ascender

The default size of the ascender.

The PDF specification defines text as drawn from a point anchored at the baseline of a letter. So to place a chunk of text inside a box the text needs to be shifted downwards by the distance between the baseline and the top of the letter. This distance is typically known as the ascender height.

ABCpdf uses its own methods to determine the ascender height for fonts. However using this attribute you can override these methods and specify your own values. This can be useful for situations in which you are drawing text anchored at the baseline rather than the top of the glyphs.

The ascender value is measured in 1000ths of the font height. A typical value might be 800.

ligature-language

The language for the insertion of ligatures such as 'ff' and 'ffl. Ligatures sets are automatically retrieved from the current font.

Languages are specified using IEFT language tags. A typical value would be "en-us".

Ligatures can operate for more complex stylistic reasons than just the ones detailed above. Contextual alternates are a generic mechanism by which the particular glyph that is used is selected dependent on the characters that surround it.

This can be used for cursive scripts in which the characters flow and join together and for pseudo random scripts in which the glyphs used for a specific character vary. You can read more about this on typography sites such as iLoveTypgraphy.

To engage support for contextual-alternates you need to set the text direction to something other than default (typically dir=ltr) and also set the ligature-language (typically ligature-language=en-us).
ligature-script

The script for the insertion of ligatures such as 'ff' and 'ffl. Ligatures sets are automatically retrieved from the current font.

Scripts are specified using four character ISO 15924 Codes. A typical value would be "Latn" (Latin) or "Hant" (Traditional Chinese).
tag-start

This tag is used to insert raw content into the PDF content stream.

It is a low level construct which can be used for the insertion of operators like BDC and EMC. However since the content stream is sensitive, be careful only to use these operators if you are sure of what you are doing. Incorrect use is likely to corrupt the page.

You can specify a starting tag for the point at which the tagged content is first written to stream and and ending tag for the point at which it finishes being written. These tags will be written outside a BT/ET block. For point based operators like MP you may wish to specify only a starting tag. Tags may be nested.

Bear in mind that an item of text may be split across more than one page so there may be more than one set of start and end tags each enclosing a portion of the tagged text. For example take the following call,

doc.AddTextStyled("<p tag-start=\"/H1 <</MCID 1>> BDC\" tag-end=\"EMC\">Some text.</p>")

If the complete text fits on one page it might be represented as follows,

/H1 <</MCID 1>> BDC
BT
...
(Some Text) Tj
ET
EMC

However the words split across pages, you might end up with this on the first page,

/H1 <</MCID 1>> BDC
BT
...
(Some) Tj
ET
EMC

and this on the second.

/H1 <</MCID 1>> BDC
BT
...
(Text) Tj
ET
EMC
tag-end

This tag is used to insert raw content into the PDF content stream.

See the tag-start attribute above for details.

<BlockQuote>

This tag is used to indicate quotations. Block quotes are indented on the left and right relative to the surrounding text. The tag accepts the following attributes.

Attribute | Notes
leftindent | The left indent for the block of text. Distances are measured in the current units. The default is 36 points.
rightindent | The right indent for the block of text. Distances are measured in the current units. The default is 36 points.

<Pre>

This tag is used to indicate preformatted text. Spaces and line breaks are preserved.

<Leader>

This tag is used to create leaders for structures like a table of contents. A leader is a repeated character - most normally a period - which runs across the page from the heading on the left to the page number on the right.

The item to be repeated is placed between the start and end tag of the leaders element. For example code see the XTextStyle.Kerning property.

The tag accepts the following attributes.

Attribute Notes
align

Specifies whether the leaders should be horizontally aligned with each other.

If the tag value is set to true then the individual items in the leader (typically period characters) will be aligned so that leaders on one line are horizontally aligned with the leaders on the next.

If the tag value is set to false then the alignment of the leaders on a particular line will be determined by the width of the text which precedes the leaders..

The default align is 'true'.
hpos

Specifies the alignment for the leaders.

The align and hpos tags are mutually incompatible. As such, specifying an hpos will automatically set the align to false.

A block of leaders may not exactly fill the gap between the item of text on the left and the item of text on the right. This setting controls how the block is aligned within this gap. It works in the same way as the XTextStyle.HPos property. So to center your block of leaders between the two items of text you would set the value to 0.5.

By default the hpos is blank.
padding

Specifies any padding for the leaders.

By default leaders will fit exactly into the gap between the header text and the page number. However it can be useful to be able to extend the leaders a little.

The padding is a distance measured in points, by which the leader will be extended. The effect of this is to push the page numbers out and past the Doc.Rect.Right. The main text remains in the Doc.Rect but the numbers are shifted to the right.

By default the padding is zero.


Other Coordinate Spaces

Basics

ABCpdf uses the standard PDF coordinate space.

The origin of this space is at the bottom left of the document. Distances are measured up and to the right in points.

Windows often uses a top-down coordinate space. The difference between the bottom-up nature of PDF and the top-down nature of Windows can result in confusion. Using the AddGrid method in your code can be very helpful in resolving this type of issue.

Abstracting the coordinate space can make layout easier but removes you from the underlying page layout embedded into your PDF. For this reason we would suggest you stick to the standard PDF coordinate space where practical.

If you wish to use a different coordinate system you can use the document Units and TopDown properties or a Transform to accomplish this. There are subtle differences between these approaches.

Units

The document Units and TopDown properties allow you to use units of measurement like mm or cm. They also allow you to invert the coordinate system so that distances are measured down from the top rather than up from the bottom.

These properties enable an abstraction designed to make layout easier. However the underlying units of measurement and page layout remain the same.

When you call a page layout operation like AddText or FrameRect your abstracted coordinates are translated into PDF coordinates before the object is inserted into the document.

For most layout tasks you can ignore the translation. However if you are using low-level access to the PDF structure or if you are using Transforms then you need to be aware of it.

Suppose you call FrameRect and then extract the raw content stream from the returned object. You must be aware that the base coordinates included in the stream are measured in the PDF coordinate space and not in your current coordinate system.

Document Transforms operate on the native PDF coordinate space. So when you specify a rotation around the origin - the origin specified is at the bottom left of the document - not the top.

Transform

Transforms are an inherent part of the PDF specification. They are not an abstraction imposed by ABCpdf but a set of drawing instructions inserted into the PDF document to modify the PDF drawing space. The fact that there is no abstraction can be very useful.

For example suppose you impose a scale transform so you can specify your page layout in mm rather than points. You then call FrameRect and get the raw content stream from the returned object. The coordinates included in the stream are measured in mm rather than points.

However transforms can be difficult to understand and they are extremely literal.

Suppose you impose a transform to flip, scale and translate your coordinate space so that distances are measured in mm from the top left rather than points from the bottom left.

Many graphical objects - lines and rectangles - will appear correctly. However the transform is literal and the flip aspect means that any images and text you add will appear upside down.


Low Level Overrides

Some aspects of ABCpdf can be controlled on a global level.

These are low level settings and are infrequently used. In general you will not need them.

Defaults can be adjusted using registry keys or config files but more often you will simply want to override them on a per-document basis using Doc.SetInfo.

For example to ensure that CCITT images are decompressed and recompressed rather than being inserted directly, you might use code of the following form.

[C#]

theDoc.SetInfo(0, "InsertEmbeddedCCITTsDirect", 0);

[Visual Basic]
theDoc.SetInfo(0, "InsertEmbeddedCCITTsDirect", 0)

Registry settings are held at:

HKEY_LOCAL_MACHINE\SOFTWARE\WebSupergoo\ABCpdfNET\12

Except those listed as "registry only", they can also be specified in app.config or web.config. Please see XSettings.SetConfigSection for the syntax.

Name | Type | Default | Overridable | Description
TempDirectory STRING ""

ABCpdf uses the temp directory.

You can override the location it uses by setting this value. The specified directory must pre-exist; ABCpdf does not create the non-default temp directory.

V3Compatible DWORD 0 [false]

By setting this value to 1, you can ensure full compatibility with ABCpdf version 3 layout algorithms.

This setting is obsolete.
V4Compatible DWORD 0 [false]

By setting this value to 1, you can ensure full compatibility with ABCpdf version 4 layout algorithms.

This setting is obsolete.
V5Compatible DWORD 0 [false]

By setting this value to 1, you can ensure full compatibility with ABCpdf version 5 layout algorithms.

This setting is obsolete.
RAMLimitPercent DWORD 200

This provides guidance to ABCpdf as to the maximum amount of memory it should use.

In a 64 bit environment Windows will attempt to honor all memory requests. However if very large amounts of memory are requested then paging will slow the system down. For this reason ABCpdf will attempt to be a good citizen and limit the maximum amount of memory it will request.

This value is determined in terms of the percentage of RAM available. So if the figure is 200% on a system with 32GB of RAM then ABCpdf will try not to ask for more than 64GB of memory.
MemoryManager DWORD 1

This determines the memory management routines used by ABCpdf.

The default memory manager is designed for speed and low fragmentation.

You are unlikely to want to change the value of this key.
DisableCCITT DWORD 0 [false]

ABCpdf compresses black and white images using CCITT compression.

You can disable this type of compression if you wish to produce simple flate compressed images.

InsertJPEGsDirect DWORD 1 [true]

When you insert JPEGs using the XImage object, they bypass the normal rendering process and are inserted direct. This can result in a considerable reduction in file size without any loss of visual quality.

However, the final output may vary slightly from that produced by older versions of ABCpdf.

By setting this value to 0, you can ensure compatibility.

InsertTIFFsDirect DWORD 1 [true]

When you insert TIFFs using the XImage object, they bypass the normal rendering process and are inserted direct. This can result in a considerable reduction in file size without any loss of visual quality.

If this flag is set this enables certain special features like autorotation.

If the flat is cleared then these features are disabled.
InsertEmbeddedCCITTsDirect DWORD 1 [true]

Formats such as TIFF may contain embedded CCITT data which can be inserted directly into a PDF.

On the positive side avoiding a decompression-recompression cycle can save significant time. On the negative side, because the data is not decompressed, there are no checks to ensure the validity of the compression. Acrobat is generally more particular about the format of data and occasionally it can fail to display data that renders correctly when inside a different wrapper. This is rare but not unheard of.

If this flag is set this enables the direct import of this type of data. If the flat is cleared then these features are disabled.
InsertEmbeddedJBIG2sDirect DWORD 1 [true]

JBIG2 images can be inserted directly into a PDF.

On the positive side avoiding a decompression-recompression cycle can save significant time. On the negative side, because the data is not decompressed, there are no checks to ensure the validity of the compression. Acrobat is generally more particular about the format of data and occasionally it can fail to display data that renders correctly when inside a different wrapper. This is not something we have ever seen any problems with but it is possible.

If this flag is set this enables the direct import of this type of data. If the flat is cleared then these features are disabled.
InsertEmbeddedJPEGsDirect DWORD 1 [true]

Formats such as TIFF may contain embedded JPEG data which can be inserted directly into a PDF.

On the positive side avoiding a decompression-recompression cycle can save significant time. On the negative side, because the data is not decompressed, there are no checks to ensure the validity of the compression. Acrobat is generally more particular about the format of data and occasionally it can fail to display data that renders correctly when inside a different wrapper. This is exceptionally rare but not unheard of.

If this flag is set this enables the direct import of this type of data. If the flat is cleared then these features are disabled.
ExtractJPEGFromTIFFUsingGDIPlus DWORD 1 [true]

Formats such as TIFF may contain embedded JPEG data which can be inserted directly into a PDF.

This data can be extracted by ABCpdf directly or it can be extracted using features of GDI+. ABCpdf is probably slightly faster at doing this but historically it has used GDI+ as a first option before falling back to its own methods.

If this flag is set this feature will be attempted first using GDI+.
LogEvents DWORD 1 [true]

Determines whether anything will be logged in the Application Event Log.

LogErrors DWORD 0 [false]

Determines whether errors will be logged in the Application Event Log.

AutoRecover DWORD 0 [false]

Whether ABCpdf should automatically attempt to recover from serious errors.

This is generally set to false. Recovery may work in some situations but in others it will leave the application in an inconsistent state.

LogOperations | DWORD | 0 [false] | Unused in release versions.
MaxOperationTime | DWORD | 1,000 | Unused in release versions.
LogDirectory | STRING | "%SystemRoot%\Temp\" | Unused in release versions.
LogMaxFileSize | DWORD | 0xFFFF | Unused in release versions.
LogAsserts DWORD 1 [true]

If true, certain run-time consistency checks will be enabled.

If any consistency check fails, then an error will be logged in the Application Event Log.

LogAssertsMax | DWORD | 5 | The maximum number of times an assertion will log an error. This is kept at a small number to avoid excessive use of the Application Event Log.
ClearoutSize DWORD 1,000

On startup, the ABCpdf temp directory is checked. If it appears that there are a large number of unused items, then the directory will be cleared.

This setting determines the maximum number of items which are permitted in the directory before a clearout is deemed necessary.

LoadType1Fonts | DWORD | 1 [true] | Whether ABCpdf should allow the use of Type 1 fonts.
WriteVersionNumber | DWORD | 1 [true] | Whether the ABCpdf version should be embedded in the PDF output.
SetInfoProps DWORD 1 [true]

Whether registry keys can be overridden on a per-document basis.

To override a registry key, use SetInfo with the name of the key and passing zero as the ID. For example:

theDoc.SetInfo(0, "UseScript", "1")

Note that only keys marked as overridable can be overridden this way.

CheckSaveRestore DWORD 1 [true]

Some PDFs do not conform to Adobe document structuring conventions. For details see section 4.3.1 of the Adobe PDF Specification .

Conforming documents should save the graphics state at the start of drawing and restore the graphics state after drawing is complete. This way it is guaranteed that drawing operations are independent of each other.

Non-conforming documents may make transform and other graphics state changes which cannot easily be undone. When you add your content, it is affected by these leftover state changes.

This key determines whether ABCpdf will automatically detect and fix non-conforming documents.

Preflight DWORD 1

Whether to preflight objects in the destination document when appending or adding a page from another document.

See XSaveOptions.Preflight for details.
Refactor DWORD 1

Whether to eliminate redundant objects on save or append.

See XSaveOptions.Refactor for details.
IgnoreObjectsOnIncSave STRING ""

A comma separated list of object ids to ignore when XSaveOptions.Incremental is set to true. It is provided for debugging puposes.

NB this option can only be set using Doc.SetInfo for example: theDoc.SetInfo(0, "IgnoreObjectsOnIncSave", "15,99,101");
PagesMaxKids DWORD 20

The maximum number of children of non-leaf nodes in the page tree. If it is 2 or below, no balancing of the page tree is performed.

The page tree gives the order to the pages. The look-up of pages from page numbers and the identification of page numbers from the pages' IDs are performed using the page tree. The time complexity of these operations is O(PagesMaxKids×log PageCount/log PagesMaxKids) so the smaller PagesMaxKids, the faster the operations.

If the value is 3 or above, the entire tree is balanced when the first time the page tree is modified either by adding a page or removing a page or a non-leaf node (a Pages object). When a page is added such that the parent node has more than PagesMaxKids children or when a page or a non-leaf node is removed such that the (non-root) parent node has less than PagesMaxKids/2 children (or equivalently, less than the floor of (PagesMaxKids + 1)/2 children), the page tree is partially balanced. The balancing of the tree is triggered more often if PagesMaxKids is small.

ErrorOnBadPage DWORD 0 [false]

Setting the PageNumber property to a particular value is not always possible. Most obviously if one sets it to a value smaller than one or greater than the PageCount, the operation is not possible.

Less commonly, PDF documents can contain page trees which are corrupt. In this case when one sets the PageNumber property it may be that the object which is indicated is not a page.

This property determines what should happen in these cases. The default is to ignore the error and leave the current page unchanged. However if you prefer an exception to be thrown you can change the default value of this property.
FontInheritsStyles DWORD 0 [false]

When the value is false (zero), Doc.AddTextStyled removes pre-existing bold <b> and italic <i> styles within specification of font face in the HTML.

When the value is true (non-zero), Doc.AddTextStyled maintains pre-existing bold <b> and italic <i> styles within specification of font face in the HTML unless overridden by the specification.

SVGDrawInvisible DWORD 0 [false]

This flag controls whether invisible SVG elements are drawn as transparent objects when converted to PDF. Invisible SVG elements are defined as those with "visibility" set to "false", those without any strokes or any fills, or those with both stroke-opacity and fill-opacity set to 0.

For presentation purposes, it is best to not draw invisible objects (the default) because transparency in PDF may radically change the rendering mode in many PDF readers.

AutorotateTIFFImages DWORD 1 [true]

TIFF and JPEG images may contain flags to indicate orientation and mirroring.

If this flag is set, ABCpdf will use these flags to ensure that your TIFF and JPEG images are automatically provided the right way up.

This flag also affects the default value of XImage.AppliedOrientation.
AutosizeImages DWORD 0 [false]

In ABCpdf10 and earlier, images were autosized if the width or height of the destination rectangle was zero.

If you were working in TopDown mode the image was positioned with its top left pinned at the location indicated by the rectangle. If you were not in TopDown mode the bottom left of the image was pinned at the location indicated by the rectangle. In both cases the natural dimensions of the supplied image were used to determine the displayed width and height resulting in a 72 dpi output.

The functions that performed autosizing were AddImageBitmap, AddImageCopy, AddImageDoc, AddImageFile and AddImageObject.

This autosizing was problematic for many reasons and it is now disabled by default.

If this flag is set autosizing will be performed.
KerningType DWORD 1

This flag controls the default value of the TextStyle.Kerning property.
EncryptCompat DWORD 0

AES Encryption has been through a number of revisions.

Revision 4 used to be the default. However in 2014 Adobe stopped using it and moved to revision 5.

Adobe products automatically re-encode any revision 4 documents as revision 5. As such ABCpdf now does the same.

We expect revision 4 to be deprecated in due course.

If, for compatibility, you require the use of revision 4, you can re-enable it by setting this flag.
CompressedDataPaddingLeniency DWORD 2

When decompressing data, ABCpdf occaisionally encounters decompression errors. If a quantity of data is decompressed before the error occurs, then this value is a tolerance for how much compressed data is left over after the error.

PreferToUnicode DWORD 0

Documents can contain multiple different mappings for characters. Most of the time the mappings are correct and in sync. Occasionally you may come across PDFs which have inconsistent mappings in the different tables.

If this occurs then extracting text from a PDF becomes an imprecise science. Depending on the table used, the output will be different. Most of the time the differences are small but sometimes, on severely compromised documents, they can be abrupt.

In this situation ABCpdf has to determine the most appropriate table using a heuristic method. To prefer the ToUnicode table over this heuristic you can set this property to 1 (true).
ProgressiveJPEGRecompressionQuality DWORD 0

Acrobat can sometimes find it difficult to decompress and display progressive JPEG images. So sometimes, if you add this type of data directly into a PDF the image may not display when viewed in Acrobat.

In the long run we would expect that Adobe will resolve this issue within Acrobat. However in the shorter run it can be desirable to work around this issue.

To mitigate the effect of this problem you can detect and recompress progressive JPEG images as they are added to. To do this you simply need to specify a quality setting between 1 and 100.

Annotation and Field

Name | Type | Default | Overridable | Description
AnnotBorder DWORD 0
SetInfo only

The default width of borders on Annotations added to PDF documents.

This property is only accessible using the Doc.SetInfo method. The default cannot be overridden using a registry key.

NeverClipAppearances DWORD 1 [true]

This parameter allows control over the way that text field appearances are generated.

Some documents contain text fields which are not tall enough for the text that they contain. There are two choices here. You can preserve the requested text size and let the text be clipped. Alternatively, you can reduce the text size so that it fits the height of the field.

The default behavior is to reduce the text size. However, in some cases you may want to override this behavior by altering this setting.

ForceUpdateAppearances DWORD 0 [false]

In general ABCpdf will try to avoid updating field appearances. This is because different applications have different ways of generating field appearances and so any update is likely to cause changes.

These changes are likely to be pretty subtle - involving pixel level movements and perhaps changes in text wrapping. However because there is no specification relating to how field appearances should be generated these kind of subtle shifts are inevitable if you regenerate appearance streams.

Acrobat will always regenerate field appearance streams for any documents in which the NeedsAppearances flag is set. This comes at the cost of the kind of subtle shifts detailed above. However because this is done interactively this doesn't tend to matter very much.

Some PDF producers create PDF documents containing incorrect appearance streams. Because Acrobat regenerates the field appearance streams it will display these correctly. ABCpdf will assume that because they are there they are correct and will not.

In this case you may wish to mimic the behavior of Acrobat force the update of the appearance streams. This flag allows you to specify that this should be the case.
SignatureSizeMultiplier DWORD 15

This can affect the sizes of buffers ABCpdf will allocate for the /Contents field in signatures. The value is in 1/10 time, so the default value represents 1.5 times.

This is a low level setting. If ABCpdf encounters error related to buffer size not big enough to hold signed messages, you can manually increase this multiplier.

CustomProp_Build STRING ""

When a document is signed a Prop_Build entry is generated which describes the software environment used to generate the signature.

This is a PDF requirement which is needed so that, if in future, part of the environment is found to be compromised, one can identify documents which may have been affected.

By default ABCpdf will enter elements it feels are relevant. If you wish to add in your own application identifier you can do this by assigning a three element, semicolon delimited string to this property. The three elements within the string relate to the Name, the R and the REx entry respectively.

This property is only accessible using the Doc.SetInfo method. The default cannot be overridden using a registry key.

EnableKeystrokeJS DWORD 0
SetInfo only

Field JavaScript can be used to modify and validate field values.

Each time a character is added by a user, a keystroke JavaScript is triggered to ensure that the value is allowed. Then when the user leaves the field, a validation JavaScript runs to check the entire field. Each time one of these scripts is run the field value may be altered.

Sometimes when you change the value of a field programmatically, you may want to operate in the same way as a user. So programmatically changing a value might be equivalent to a user copying and pasting a value into a field. In that case you would want both the keystroke and validation scripts to be run in the same they would be for a user.

This property allows you to enable the keystroke script.

This property is only accessible using the Doc.SetInfo method. The default cannot be overridden using a registry key.

ThousandsSeparator STRING ","
SetInfo only

Different locales allow the use of different decimal point and thousand separator symbols.

However Acrobat does not cater for these differences and thus assumptions have to be made.

This property allows you to change the character which is used for delimiting thousands in numeric values.

It will only be used in cases where there are multiple possible interpretations of a string.

This property is only accessible using the Doc.SetInfo method. The default cannot be overridden using a registry key.

HTML/EMF Rendering

Name | Type | Default | Overridable | Description
RenderDelay DWORD 0

HTML rendering sometimes requires two stages: an information gathering stage and a render stage.

For backwards compatibility reasons, you can insert a delay between these two stages. This value is measured in milliseconds.

AutoDeleteHTML DWORD 1 [true]

Certain HTML temp files are automatically deleted by ABCpdf after use.

You are unlikely to want to change the value of this key.

OneStageRender DWORD 1 [true]

This property is included for backwards compatibility reasons.

LargeDocumentSize DWORD 2,000

The size at which a binary search tree is constructed for HTML rendering.

For larger documents, a binary search tree is a much more efficient structure for HTML rendering than is a linear search tree.

For smaller documents, the time taken to build the tree can outweigh the speed advantages so a linear search tree is better.

This property determines the point at which ABCpdf shifts its strategy from linear to binary searches. The number relates to the number of object fragments in the HTML. The number of object fragments is extremely dependent on the complexity of the page, but a couple of hundred object fragments per PDF page would not be atypical.

DisableFilters DWORD 1 [true]
SetInfo only

Whether to automatically disable HTML filters.

HTML filters can interfere with the HTML to PDF conversion process because they are raster rather than vector based. For this reason, we try to disable them.

This property is only accessible using the Doc.SetInfo method. The default cannot be overridden using a registry key.

JPEGThreshold DWORD 256
SetInfo only

The threshold at which images are JPEG compressed.

When an uncompressed image is added to a document ABCpdf may decide whether to use JPEG (lossy) compression or lossless compression based on an analysis of the image.

ABCpdf counts the number of colors used in the image and if the number is greater than this threshold ABCpdf assumes that the image is continuous tone and thus eligible for JPEG compression. The threshold for grayscale images is half that for color images.

This property is only accessible using the Doc.SetInfo method. The default cannot be overridden using a registry key.

UnloadInterval DWORD 0
SetInfo only

Whether we allow MSHTML to be unloaded when the screen depth changes.

Appropriate values are 0 (MSHTML is never unloaded) and 10 (it is unloaded a little while after the screen properties change).

The number actually refers to the number of calls that ABCpdf makes (once a monitor change has occurred) without keeping MSHTML force loaded. We assume that at some point during this period, Windows will unload the DLL.

This property is only accessible using the Doc.SetInfo method. The default cannot be overridden using a registry key.

MakeURLsUnique DWORD 1 [true]

Whether to make URLs unique when the page cache is disabled. A URL parameter with a 7-random-uppercase-letter name and a 7-random-uppercase-letter value is added to the URL. It is applied to URLs that contain queries or have paths that do not end with a slash.

Sometimes caching can occur outside of ABCpdf. Making the URL unique can provide an effective way of forcing the page to be refreshed.

BgImageVertProximity DWORD 480

ABCpdf treats background and foreground images differently. For example, it is generally acceptable to split a background image across pages while it is much less acceptable to split a foreground image in this way.

For this reason, ABCpdf tries to determine whether images are foreground or background using a variety of methods.

If the same image appears a number of times within a limited area of the HTML, ABCpdf will assume it is a background image.

This property represents the vertical distance (in pixels) above a particular image in which ABCpdf looks for repeated images.

BgImageMinRepeat DWORD 5

ABCpdf treats background and foreground images differently. For example, it is generally acceptable to split a background image across pages while it is much less acceptable to split a foreground image in this way.

For this reason, ABCpdf tries to determine whether images are foreground or background using a variety of methods.

If the same image appears a number of times within a limited area of the HTML, ABCpdf will assume it is a background image.

This property represents the number of repeats above which ABCpdf determines that the image is background.

NarrowBgImageMaxWidth DWORD 80

ABCpdf treats background and foreground images differently. For example, it is generally acceptable to split a background image across pages while it is much less acceptable to split a foreground image in this way.

For this reason, ABCpdf tries to determine whether images are foreground or background using a variety of methods.

If an image is very tall and thin, ABCpdf will assume it is a background image.

This property represents the maximum width for this test.

NarrowBgImageMinHeight DWORD 480

ABCpdf treats background and foreground images differently. For example, it is generally acceptable to split a background image across pages while it is much less acceptable to split a foreground image in this way.

For this reason, ABCpdf tries to determine whether images are foreground or background using a variety of methods.

If an image is very tall and thin, ABCpdf will assume it is a background image.

This property represents the minimum height for this test.

CheckBgImages DWORD 0 [false]

Sometimes, Windows can tell ABCpdf that an HTML page is complete even though background images have not yet finished loading.

This option allows you to specify that ABCpdf should force-load any background images.

HTMLBottomExtraMargin DWORD 30

Change this value to change the extra margin that ABCpdf adds at the bottom when rendering HTML pages. Due to rendering issues in Internet Explorer, it is necessary to make the HTML page a bit taller. This extra margin is then clipped and so it does not alter the final PDF output.

However, if the page contains objects positioned relatively to the bottom of the page, the objects may be clipped/shifted. Set this property to zero or to a smaller value in order to avoid such problems.

HostWebBrowser DWORD 1 [true]

The initial value of XHtmlOptions.HostWebBrowser.
URLPolicies STRING "0x1608 0x03"

This setting allows you to override the default URL security policies in place on your machine. You can open up or lock down security settings using this registry key.

The string is a sequence of URL Actions (such as URLACTION_HTML_META_REFRESH) and policies (e.g. URLPOLICY_DISALLOW) in a space delimited list. Appropriate values for these type of actions and policies can be found on the Microsoft web site. The default value for this setting disables meta-refresh tags.

Treat with caution as existing security settings are there for a reason.

TrustedSites STRING ""

Cross domain operations are not normally permitted when accessing the HTML DOM. This means that if you have a frameset on one domain and frames in another ABCpdf will be unable to determine appropriate widths and heights for any of the frames.

Ideally to resolve this type of issue you should move the pages to the same domain or reference the domain within the frameset to ensure that MSHTML will allow this type of cross domain scripting. In situations where this is not possible you can specify sites which should be trusted. Any page URLs which start with one of the trusted site URLs will be assigned a special trusted status.

URL lists are space delimited. For example:

http://www.google.com/ http://www.microsoft.com/ http://www.yahoo.com/

Treat with caution as existing security settings are there for a reason.

CharWidthRatioMin DWORD 700

When importing EMF or HTML content using the MSHTML engine, this property specifies the minimum EMF-to-PDF character-width ratio in 1000ths.

Characters whose (EMF and PDF) widths form ratios between the specified minimum and CharWidthRatioMax (exclusively) assume the PDF character widths as font substitution may occur. Characters whose widths form ratios outside the interval are placed as specified because the text is placed in an unusual way.

CharWidthRatioMax DWORD 1,400

When importing EMF or HTML content using the MSHTML engine, this property specifies the maximum EMF-to-PDF character-width ratio in 1000ths.

Characters whose (EMF and PDF) widths form ratios between CharWidthRatioMin and the specified maximum (exclusively) assume the PDF character widths as font substitution may occur. Characters whose widths form ratios outside the interval are placed as specified because the text is placed in an unusual way.

FlashPreviewTime DWORD 0

When HTML contained Flash (SWF) movies are added to a PDF document, ABCpdf will make a preview image for the movie.

The preview is what you will see if you do not have Flash installed. It is what is used when printing PDFs. In general, it is what you will see if you open your PDF using a viewer other than Acrobat.

This value is used for SWF raster import in previous versions of ABCpdf and has the same meaning as FlashPreviewWaitTime for SWF vector import.

When the movie is intialized, you can specify a time (in milliseconds) at which the movie will be started.

Note that many movies contain script which can alter the way that the movie is played. For example, a script might reset the the current frame to the start after five seconds of content have been played. So the content you get by setting the preview time to ten seconds may be very different to the content a user will see after watching the movie for ten seconds.

FlashPreviewWaitTime DWORD 2,000

When HTML contained Flash (SWF) movies are added to a PDF document, ABCpdf will make a preview image for the movie.

The preview is what you will see if you do not have Flash installed. It is what is used when printing PDFs. In general, it is what you will see if you open your PDF using a viewer other than Acrobat.

This property determines the time (in milliseconds) that the movie will be given to play before the preview will be made.

Note that many movies contain script which can alter the way that the movie is played. For example, a movie might reset the the current frame to the start after five seconds of content have been played. So the content you get by setting the preview time to ten seconds may be very different to the content a user will see after watching the movie for ten seconds.

FlashPreviewDPI DWORD 96

When HTML contained Flash (SWF) movies are added to a PDF document, ABCpdf will make a preview image for the movie.

The preview is what you will see if you do not have Flash installed. It is what is used when printing PDFs. In general, it is what you will see if you open your PDF using a viewer other than Acrobat.

This value is used for SWF raster import in previous versions of ABCpdf and is not used for SWF vector import.

This property determines the resolution (in dots per inch) at which the preview will be made.

CheckDisplaySettings DWORD 0

Changing the screen resolution while a process is running can cause some versions of MSHTML to become confused. If the screen size is reduced then portions of the output HTML may be clipped at the right hand side.

It is unusual for this to be a problem because changing the screen resolution is not a normal event. However some remote access applications can change screen settings in an uncontrolled way which means that someone logging onto a server remotely can sometimes trigger this kind of event in a long running process such as a web application.

This registry key allows you to control what ABCpdf does when this type of event is detected. The possible options are.

  • 0 - Ignore any screen changes.
  • 1 - Raise an exception "Display settings changed.". This may be used as a trigger for recycling the current package and thus resolving the issue.
  • 2 - Attempt to revert screen to previous settings, raising an exception only if this could not be done.
HtmlProcessPoolSize DWORD 10

When using the out-of-process HTML rendering, such as the Gecko HTML engine or MSHtml with MSHtmlBootstrap specifying out-of-process, ABCpdf maintains a pool of worker processes. This value specifies the maximum number of such processes that ABCpdf can spawn. Please also see XHtmlProcessOptions.MaxProcesses.

The default value is optimized for multi-threaded environments such as a Web server. If your application does not use multiple threads to perform HTML rendering, you can reduce this value to save system resources.

MSHtmlBootstrap DWORD 0

This setting determines the method ABCpdf uses to bootstrap MSHTML.

  • 0 - This is the same as 3 (writing to the registry) if IE9 or above is installed. If IE9 or above is not installed, this is the same as 5 (no bootstrap).
  • 1 - MSHTML will be hosted out-of-process, and ABCpdf will attempt to load IE8 DLLs, which allows you to achieve better compatibility. This requires certain IE8 DLLs to be present in the system.
  • 2 - ABCpdf will attempt to perform the required registry-based configuration without writing to the registry. This can be used if you cannot enable "Load User Profile" or have no access to the registry.
  • 3 - ABCpdf will write the required configuration to the HKCU registry hive if equivalent registry values are not in effect. For IIS applications, this requires "Load User Profile" to be enabled.
  • 4 - ABCpdf will attempt to load IE8 DLLs in-process, which allows you to achieve better compatibility. This requires certain IE8 DLLs to be present in the system, and your application should not have accessed MSHTML (e.g. using the WebBrowser control) before ABCpdf loads the DLLs.
  • 5 - ABCpdf will not do additional bootstrap for MSHTML.
AddLinksToIDs DWORD 1 [true]

This is a setting that may be used to speed up HTML rendering of documents when AddLinks is set to true.

Fragment links within an HTML page may refer to anchor names or to element IDs. So to use the LinkPages method one has to keep track of all the IDs in the page. This can add a significant overhead for pages which contain many elements with IDs.

If you are not going to use the LinkPages method you can safely set this property to false. Indeed even if you set it to false ABCpdf will still keep track of names and IDs in anchor elements as there is little overhead associated with this subset of elements.

AddImagePolicy DWORD 0 [default]

This is a setting that determines how images in HTML are added to a document.

The default behavior is to add all images directly as long as an ImageQuality has not been specified. This ensures that the quality and size of JPEG images is maintained, that transparent PNG images are inserted using correct transparency and that memory use is minimized.

By setting this property to one you can force images to be inserted indirectly. The HTML rendering engine will be used to decompress any images and then they will be recompressed for insertion into the PDF.

MSHtmlOverrideKeyPath STRING ""

The registry key path in HKEY_CURRENT_USER for overriding MSHTML options. This is the value returned through IDocHostUIHandler2::GetOverrideKeyPath.

You can place keys/values in the specified key in HKEY_CURRENT_USER to override values in "Software\Microsoft\Internet Explorer". While MSHTML queries "Software\Microsoft\Internet Explorer" in both HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE, the path specified by this setting is only queried in HKEY_CURRENT_USER.

If this setting is specified and valid, ABCpdf will write in the specified key instead of "Software\Microsoft\Internet Explorer" when bootstrapping MSHTML.

XULRunnerDirectory STRING ""

The path to the parent directory containing the XULRunner38_0 folder for the Gecko engine.

GeckoPrefFile STRING ""

The path to the JavaScript file that sets the preferences for the Gecko engine. See XHtmlOptions.Engine for details.

ABCGeckoDisableFileCheck DWORD 0

When the Gecko worker process pool is started, dependent files are checked to ensure that they are untampered. If the files appear to be different from the ones expected, an exception will be thrown.

The check of Non-Microsoft code files involves signature validation, which requires the establishment of a chain of trust, which may require Internet access - something that may not be permitted easily on all setups.

The value is treated as flags if it is not 1, so 0xffff has the same effect as 1. However, any value greater than 0xffff is invalid and the corresponding behavior is undefined.

  • 0 - All dependent files are checked.
  • 1 - No file is checked.
  • 2 (bit 1) - Non-Microsoft code files (.exe, .dll, .xpt) are not checked.
  • 4 (bit 2) - Microsoft code files (.exe, .dll) are not checked.
  • 8 (bit 3) - Image files (.gif, .png) are not checked.
  • 0x10 (bit 4) - Media files (.wav) are not checked.
  • 0x20 (bit 5) - JavaScript files (.js, .jsm) are not checked.
  • 0x40 (bit 6) - CSS files (.css) are not checked.
  • 0x80 (bit 7) - XML files (.xul, .xhtml, .html, .xml, .xsl, .svg, .rdf) are not checked.
  • 0x100 (bit 8) - DTD files (.dtd, .ent) are not checked.
  • 0x800 (bit 11) - Text files (.manifest, .list, .ini, .xulrunner, .properties, .txt, .aff, .dic, .info, .voucher, LICENSE) are not checked.
  • 0xf600 (bits 9, 10, 12-15) - Other files are not checked. These are the unused bits in 0xffff. (Currently, no file is in this category.) Though disabling the check is not recommended, if you want to future-proof the disabling of the check of other files, you may want to set all these bits to 1.
IPCTransport DWORD 0

When MSHTML or the Gecko engine is run in a separate worker process, this specifies the method of interprocess communication between ABCpdf and the worker process.

  • 0 - This is the same as 1 if the OS is Windows XP or Windows Server 2003 or earlier. This is the same as 2, otherwise.
  • 1 - Named pipe.
  • 2 - Standard/console I/O streams.
UseCSSClassToAddTags DWORD 1 [true]

When the Gecko engine is used, this setting specifies whether CSS class 'abcpdf-tag-visible' may be used for adding tags (XHtmlOptions.AddTags). For example,

<p id="p1" class="abcpdf-tag-visible" style="border: 1px solid transparent">Gallia est omnis divisa in partes tres.</p>

However this method is deprecated. Use CSS style 'abcpdf-tag-visible: true', instead.

StopSMILAnimation DWORD 1 [true]

When the Gecko engine is used, this setting specifies whether SMIL animation is stopped. When the animation is stopped, the first frame/sample is used.

RelCharShiftTolerance DWORD 60

This value is in 1000ths of the font size. When the Gecko engine is used, this specifies the maximum relative horizontal shift between adjacent glyphs to consider the glyphs to be in a continuous flow of text. Because of font hinting, character widths and positions reported by Gecko may be different from those in the fonts. Glyphs in a continuous flow are evenly spaced in the text area.

AbsCharShiftTolerance DWORD 500

This value is in 1000ths of a point. (A point is 1/72 of an inch.) When the Gecko engine is used, this specifies the maximum absolute horizontal shift between adjacent glyphs to consider the glyphs to be in a continuous flow of text. Because of font hinting, character widths and positions reported by Gecko may be different from those in the fonts. Glyphs in a continuous flow are evenly spaced in the text area.

ABCChromeDirectory STRING ""

For HTML rendering using the default ABCChrome rendering engine (currently ABCChrome86), access is required to the current default ABCChrome executable worker process.

By default a set of paths is searched to allow the worker to be found. You can specify a directory which should be checked, using this setting.

NB the more specific ABCChrome86Directory setting, the current default engine, will override any value set here. This setting maintains backward compatibility.
ABCChrome65Directory STRING ""

For HTML rendering using the ABCChrome65 rendering engine, access is required to the ABCChrome65.exe worker process.

By default a set of paths is searched to allow the worker to be found. You can specify a directory which should be checked, using this setting.
ABCChrome86Directory STRING ""

For HTML rendering using the ABCChrome86 rendering engine, access is required to the ABCChrome86.exe worker process.

By default a set of paths is searched to allow the worker to be found. You can specify a directory which should be checked, using this setting. This value overrides the ABCChromeDirectory setting as it is version specific.
ABCChromeReportSearchPath DWORD 0

If the ABCChrome.exe worker process could not be found, a short error message is provided.

By setting this value to one, you can ensure that the full set of folders which was searched, is reported in this message.
ABCChromeDisableFileCheck DWORD 0

Before the ABCChrome.exe worker process and dependent files are loaded, a quick sanity check is done to ensure they are correct. If the files appear to be different from the ones expected then an error will be raised.

Part of this check involves signature validation, which requires the establishment of a chain of trust, which may require internet access - something that may not be easily on all setups.

By setting this value to one, you can disable this file check. Be cautious about doing this as, to do so, invites the possibility of loading files which are wrong and may produce crashes or unusual behavior.
ABCChromeLogSeverity DWORD 0

ABCChrome defaults to a sensible tolerance level. It will not report errors if it thinks that the web page has not been affected by them.

By setting this property you can make it more sensitive and less tolerant. This may help in diagnosing subtle network and permissions issues.

The possible values are:

  • 0 - Default
  • 1 - Verbose
  • 2 - Info
  • 3 - Warning
  • 4 - Errors

In general you will want the Info level. The verbose level provides more information but can be overly intrusive and can disrupt multi-threaded operation.

You should not use anything other than zero while in production use.
ABCWebKitDirectory STRING ""

For HTML rendering using the ABCWebKit rendering engine, access is required to the wkhtmltopdf.exe worker process.

By default a set of paths is searched to allow the worker to be found. You can specify a directory which should be checked, using this setting.
ABCWebKitReportSearchPath DWORD 0

If the wkhtmltopdf.exe worker process could not be found, a short error message is provided.

By setting this value to one, you can ensure that the full set of folders which was searched, is reported in this message.
ABCWebKitDisableFileCheck DWORD 0

Before the wkhtmltopdf.exe worker process and dependent files are loaded, a quick sanity check is done to ensure they are correct. If the files appear to be different from the ones expected then an error will be raised.

Part of this check involves signature validation, which requires the establishment of a chain of trust, which may require internet access - something that may not be easily on all setups.

By setting this value to one, you can disable this file check. Be cautious about doing this as, to do so, invites the possibility of loading files which are wrong and may produce crashes or unusual behavior.

Rendering

Name | Type | Default | Overridable | Description
RenderNoBitmap DWORD 0 [false]
SetInfo only

This parameter allows low-level control over the way that documents are rendered to vector formats like EMF and EPS.

During the generation of an EMF or EPS file, bitmap generation due to transparency detection will be suppressed. This can cause some unexpected results as neither EMF nor EPS format supports transparency and non-default blending modes to the extent that PDF does.

This property is only accessible using the Doc.SetInfo method. The default cannot be overridden using a registry key.

RenderNoDisplayList DWORD 0 [false]
SetInfo only

This parameter allows low-level control over the way that documents are rendered to bitmap outputs.

During the generation of a high-resolution or scene-antialiased bitmap, the renderer stores PDF rendering objects in a display list. The bitmap is broken into sections and the display list is rendered to each section.

For some very complex PDF files, this display list can become rather large and consume a lot of memory. In these cases, it is better to allocate a complete image and render the PDF objects directly to the image than it is to try and store the individual PDF objects.

This property is only accessible using the Doc.SetInfo method. The default cannot be overridden using a registry key.

RenderTextAsText DWORD 1 [true]
SetInfo only

This parameter allows low-level control over the way that text is rendered into vector formats like EPS.

If the value is true, the text is placed directly into the output file when possible. If it is false, the text is converted to vectors, which are then output to the file.

The former method results in smaller files. The latter results in larger but font-independent output files. It is important to note that not everything that looks like text is actually text or can be extracted as text.

This property is only accessible using the Doc.SetInfo method. The default cannot be overridden using a registry key.

RenderEmfType DWORD 1
SetInfo only

This parameter allows low-level control over the way that documents are rendered to EMF.

This setting controls the type of EMF output. Possible values are:

  • 0 - EmfOnly
  • 1 - EmfPlusOnly
  • 2 - EmfPlusDual.

You may want to change the setting to EmfPlusDual, which means that both EMF and EMF+ entries are included in the output. This produces greater compatibility but at the cost of a doubling in file size.

This property is only accessible using the Doc.SetInfo method. The default cannot be overridden using a registry key.

RenderInstallFonts DWORD 0

This registry key allows you to control the installation of embedded fonts when rendering to EMF.

By default, when you use Rendering.GetData to render to EMF, fonts will be installed in memory and will remain available to the ABCpdf process until Doc.Clear is called. This means that the EMF can be spooled to a printer and the fonts will appear correctly.

By default, when you use Rendering.Save to render to EMF, embedded fonts are not installed and text will be rendered as polygons for any fonts that are not available on the system. This is because when an EMF file is viewed outside the ABCpdf process, memory-resident fonts are not available. Thus any text using those fonts would be subject to font substitution by Windows.

Set this value to 0xFFFFFFFF to disable the installation of embedded fonts in memory, even when calling Rendering.GetData. This results in text rendered with polygons for embedded fonts. Hence, the rendering is slower and the output is bigger.

Set this value to 1 to always install fonts, even when calling Rendering.Save. This results in faster rendering and smaller outputs. However, viewing emf files outside the ABCpdf process may not display embedded fonts correctly.

RenderAlwaysInstallFonts DWORD 1

This registry key allows you to selectively control the installation of embedded fonts when rendering to EMF.

Assuming that RenderInstallFonts is set appropriately, embedded fonts will be installed in memory. However many embedded fonts are subsets of standard system fonts. Referencing the copy which exists in the fonts folder provides two advantages. The first is that the amount of memory used is reduced. However, more importantly, subsetting can occasionally result in a font which looks viable to Acrobat but not to Windows. In this case using the embedded font can result in unreliable text output.

When this value is set to 1 embedded fonts will always be installed. If it is set to 0 then only those fonts that do not appear to have an analog in the fonts folder will be installed.
RenderBypassDeviceIcc DWORD 0

Some PDFs contain color profiles which do not handle black objects correctly.

This option allows you to bypass the profile transformation if the input colorspace is CMYK ICC and the output is device CMYK, or if the input is Gray ICC based and the output is device CMYK.

EmfDeviceName STRING ""
SetInfo only

When an EMF is created the standard settings are taken from the default screen.

Under some circumstances it can be desirable to allow these settings to be taken from a different screen or indeed a device such as a printer.

This property allows you to specify the name of the device to be used for the default EMF settings.

This property is only accessible using the Doc.SetInfo method. The default cannot be overridden using a registry key.
RenderResizeupThreshold DWORD 600000000

Maximum number of bytes used to resize up an image. When rendering to a high resolution output image, internal pdf images will get resized using the normal resizing methods. It the target (temporary) image exceeds this threshold, we will use a sampling algorithm to place the image in the output image.
ColorConvertWHighPrecision DWORD 0

Disabled by default. Set to 1 to enable. Converting color spaces using ICC profiles and high precision can take extra processing time, especially for embedded images, however it may be necessary for certain applications or 16 bit output.
RenderUseAVXExtension DWORD 1

Enabled by default if processor supports the advanced vector instructions (AVX). Set to 0 if you do not wish to use these instructions.
RenderUseFontHints DWORD 0

Disabled by default unless rendering is 1 bit per sample. When rendering to anti-aliased continuous tone images, the glyphs appear nicer when the glyph is not drawn hinted. Set this to 1 to enable font glyph hinting.
RenderAdjustSubGlyphMat DWORD 1 [true]

When fonts are not embedded in the pdf, we look for a suitable external font. Occasionally the chosen external font's glyph metrics do not match the metrics specified by the pdf, so we compromise by mapping the width of an external glyph to it's corresponding width as specified in the source pdf. Set to 0 if you do not want this mapping to occur.
RenderCurveFlatness STRING "1"

When rendering stroked curves, the curve is broken into a series of line segments. The flatness value is the default value for this tesselation, default is '1' which means that when the curve has deviated by 1 pixel, it is broken into a line segment. Note that even though its registry representation is type 'STRING', it will be converted into a DOUBLE numerical value.

RenderHalftoneGamma STRING "1"

When creating a 1 bit per pixel image, some images may come out too light or too dark. This value allows you to customize the general tone of the image. The greater the value, the darker the resulting image. (Enter a value between .01 and 10), 2 is a good value to start for darkening.

RenderMinLineWidth STRING "0.25"

The same as property XRendering.MinimumLineWidth.

XPS/HTML Export

Name | Type | Default | Overridable | Description
XPSExportWMPImages DWORD 1 [true]

This hint flag controls ABCpdf policy regarding the use of Windows Media Photo (WMP/JPEG XR) images in converted XPS documents. If this flag is set, ABCpdf would prefer to use WMP over PNG in some situations.

WMP is a versatile format that can handle lossless and lossy compression as well as transparency. It can often reduce the file size of produced XPS documents.

However, some compact .NET runtime environments, such as Silverlight, do not support decoding WMP images. If your XPS documents need to be used in those environments, you may want to turn this flag off.

Images in color-spaces such as CMYK must always be represented as WMP in XPS documents. As such, if you wish to ensure that your documents never use WMP, they must be converted to RGB or Grayscale before export.

XpsAny Import

Name | Type | Default | Overridable | Description
PrintHookLog DWORD or STRING 0 registry only

Set this value to 1 to enable the logging of the PrintHook library using %SystemRoot%\Temp or set it to a path to a folder to enable the logging using that folder.

The PrintHook library is used to print files to XPS, which are then converted to PDF in ImportAny operations. We may ask you to enable the logging and send us the log files for debugging purposes if you request us to solve related problems.

Log files are named spy_<PID>.txt.

On 64-bit machines, you will need to set this value in the 32-bit registry section (Wow6432Node) as well for intercepting 32-bit processes.

PrintHookShow DWORD 0

Set this value to 1 for viewing applications that are launched by Operations.ImportAny(), typically Office applications. Set it to 0 or remove it to hide them.

We use Office applications to print their documents to XPS files, which we then convert to PDF. Sometimes these applications get stuck on pop-ups of various types, so it may be useful to see what they are doing.

Please note that there are limitations with this feature—it may not be possible to view applications that run under a different user account. This is normally the case when running Office Applications in a web server process.

MSOffice Import

Name | Type | Default | Overridable | Description
MSOfficeShow | DWORD | 0 [false] | Setting this to true will cause MSOffice application windows to be displayed when using the MSOffice read module. This can be useful for troubleshooting purposes.
PreferDCOMLaunch DWORD 0 [false]

This is a setting for the MSOffice read module.

Set to true to prefer using Windows' DCOMLaunch service to create MSOffice application processes. This is mainly needed for using the MSOffice read module in Classic ASP. Please refer to our support page for more instructions to prepare the system for the MSOffice read module in Classic ASP.

WordGlue Import

Name | Type | Default | Overridable | Description
WordGlueAssemblyPath STRING ""

If WordGlue .NET is installed, then ABCpdf will use it for importing DOC and DOCX content.

ABCpdf will look in standard locations for WordGlue. However, if you have WordGlue installed in an unusual location, you may wish to let ABCpdf know where to look using this setting.

Postscript (EPS) Import

Name | Type | Default | Overridable | Description
EPSDoSeparations DWORD 1

This applies to the processing of Separation and DeviceN colorspaces. When EPS is converted to PDF, by default we try to keep the original colorspaces.

However, there may be instances where the Separation or DeviceN colorspace causes problems. Set to '0' to force the interpreter to use the equivalent alternate colorspace.
EPSUseDistillerOps DWORD 1

There are special postscript operators that Distiller supplies to help specially written postscript files convert to pdf (namely 'pdfmark'). Setting this value to '0' disables those operators.

EPSDeviceScale STRING "100"

Some Postscript or EPS files may look for a device resolution and attempt to optimize the placement of certain object based on that assumed resolution. This can cause problems when converting to PDF, which is resolution independent. Since both EPS and PDF use 'points' as the default resolution, it can appear to a postscript program that the resolution is 72 dots per inch (1 point is 1/72 of an inch). This setting allows one to make the output device (PDF) appear to be any resolution, and the default value of '100' makes the pdf output device appear to the postscript program to be a device with 7200 dots per inch (72 * 100). Making the output device appear as a higher resolution device limits the effect of some postscript functions such as the 'snap_to_device' function that some AI postscript output files may incorporate.


Troubleshooting

Intro

We do not expect you to have any problems with our software but if you do we offer a full level of support as standard. If you need an extra level of security we offer a Platinum Level Support program offering a priority channel through to our engineers.

Your first port of call should be to check out the FAQ on our website. If it doesn't cover your particular query you can mail us via the email addresses listed there. We prefer queries via email as technical issues are often complicated and require some thought on our side as well as yours. However if you need to telephone then numbers are listed on our web site.

Common

Most bug reports relate to misunderstandings so if you're reporting a bug please do first check the documentation carefully. If you feel that an issue hasn't been explained well please do tell us so we can correct it.

Most configuration problems relate to security settings. If you are operating under a restricted security account please try running your code in a standard application while logged on as Administrator. It will only take you a few minutes to do this and it will instantly tell you if you have a security problem or not.

Because ABCpdf typically renders URLs from the server-side the server itself may impose limits. For example if your server has a video card with a limited range of colors then certain graphics operations may be limited to that number of colors.

If you find anything that doesn't seem right please say. We do not know unless you tell us.

Basics

Remember to tell us what Operating System you're on and what version of ABCpdf you're using. You can get the exact version of ABCpdf from the PDFSettings control panel. If you're using an older version of ABCpdf we will be asking you if the problem occurs using the current download so you may wish to check our downloads page.

If the problem involves URL rendering please tell us exactly what version of Internet Explorer you have installed on your server. You can get the exact version of Internet Explorer from the About Internet Explorer menu item. If you're using an older version of Internet Explorer we will be asking you if the problem occurs using the current version.

Please give us a precise description of what's gone wrong. We like to see examples so if you have reasonably sized input or output documents which illustrate your point please do feel welcome to mail them to us.

If the problem relates to a particular resource which we may not have access to - maybe a font or an image - please do send these to us so we can find out what may be unusual about them. If you think we might like to see your code please show it to us (but please do not send your entire project).

If something's working partially please tell us what parts are working and what parts are not. If you have any theories or suspicions about what's going on please do tell us. Also tell us about any unusual software or configuration that might be relevant.

Ideally

The fastest and most reliable way to resolve an issue is to provide a standalone code sample which demonstrates a problem. Please provide input and output resources and tell us what you think is wrong with your output.

A code sample should be small and should illustrate one particular problem. Please do not send us your entire project and please do not send us code we can't run because it's tied to your particular setup.

Please put a little bit of effort into defining exactly what the problem is. In the long run this will save you time.

Once we have a standalone code example we can tell you exactly why your code isn't doing what you think it should. If it's a problem with our software we'll fix it or suggest a workaround. Even if the problem is outside our software we are often able to suggest workarounds.


Corrupt Documents

Intro

Occasionally people may supply you with corrupt or non-standard PDF documents.

When you write code to draw on these supplied documents the drawing may appear in the wrong place or the wrong size or even not at all.

The most common cause of this type of issue is that the document MediaBox is non-standard. For example designers using Adobe Illustrator can easily manipulate the page MediaBox to produce legal - but unusual - documents.

You should start by using AddGrid as this should give you an idea of the way in which your drawing is failing.

MediaBox

Most PDFs define page size using a MediaBox anchored at the origin. For example "0 0 612 792".

However it is not required that you do this and some PDF documents define a MediaBox that is correct but unusual. For example "-612 -792 0 0".

You can check if this is the case by reporting the MediaBox property after the Read method has been called.

If you find this kind of non-standard MediaBox you are probably drawing your content off the edge of the page.

You will need to adjust your drawing so that it occurs within the bounds of the document MediaBox.

CropBox

The MediaBox defines the area of a page - the actual media size. However there are other measures as well.

The CropBox defines "the visible region of default user space. When the page is displayed or printed, its contents are to be clipped (cropped) to this rectangle and then imposed on the output medium".

When you display your PDF in Acrobat what you see is the area of the page defined by the CropBox rather than the MediaBox.

Normally CropBoxes and MediaBoxes are identical or practically identical. However occasionally you may find that they're not.

This may cause your output to appear in a different location from the one you are expecting.

Indeed your PDF may also impose a TrimBox or a BleedBox. If you're curious about these there are full details in the Adobe PDF Specification.


HTML / CSS Rendering

Intro

ABCpdf fully supports HTML and CSS.

You can render individual pages of HTML using the AddImageUrl method.

You can page HTML over multiple PDF pages using the AddImageUrl method in combination with the AddImageToChain method.

ABCpdf allows you to treat HTML like any other media so you can even page your HTML across multiple columns of multiple pages of your PDF.

Method

ABCpdf can use the Chromium engine (as used in Google Chrome), the MSHTML engine (as used in Microsoft Internet Explorer) or the ABCGecko engine (as used in Mozilla Firefox) to parse and preprocess the HTML for insertion into your PDF. To switch between them, simply change the XHtmlOptions.Engine property. It's only one line of code.

The use of sandboxed web browsers provides an extremely accurate rendition of the HTML. However due to the differences in behavior and capabilities of the underlying rendering engine, you should expect some differences in behavior and output when switching between them.

Using Chrome 86 in print preview, you should see something similar to the output you get using the ABCChrome engine. However because we default to screen rather than print media stylesheets, colors may be more like you see on screen. The view you see of your HTML using the IE version on the machine should be pretty similar to the MSHTML engine on that same machine. Firefox 38 in print preview should be pretty much identical to the ABCGecko engine. Printout from the QtWeb browser should be very similar to the output produced by the ABCWebKit engine. None will be exactly the same because PDF is different from HTML and some things need to be represented slightly differently. However any differences should be subtle.

The ABCChrome engine is typically about three times as fast as the MSHTML engine, which itself typically about twice the speed of ABCGecko. However this does depend heavily on the type of input. For some inputs we have seen the ABCGecko engine five times the speed of the MSHTML one. The ABCChrome and Gecko engines have a fairly large startup overhead so if you are testing for speed you should be careful to discount the first conversion.

In terms of commonly requested features, the ABCChrome and Gecko engines support repeated table headers and footers, SVG, and are pretty good on AJAX for charts and maps. The MSHTML engine tends to provide a more literal screen based output. ABCChrome and ABCGecko generally support HTML5 specific features better than MSHTML. ABCChrome supports web fonts while the other two engines do not.

You should be expecting that there are differences in PDF representation between the engines and in particular the decision to reference or embed fonts can be quite different. File sizes are likely to be noticeably but not startlingly different. The MSHTML tends to produce the largest outputs, followed by ABCGecko and with ABCChrome producing the smallest files.

The ABCWebKit engine is a specialist engine which is not suitable in most situations. Yes - not suitable. However because it has limited OS dependencies it can often operate in environments like Azure which are stripped down versions of Windows. This flexibility comes at considerable cost in terms of capability and security so you should only enable this engine if you are fully cognizant of the implications. You can read more about this at the Engine page.

Please refer to Engine, ForChrome, ForMSHtml, ForGecko and ForWebKit for further elaborations on the engines' distinct characteristics.

Cache

The MSHTML rendering engine holds a cache of recently requested URLs and it's only after five minutes or so that these pages expire from the cache.

This results in a considerable degree of optimization for many common operations. However, if you wish to bypass the cache, you can do so by setting the DisableCache parameter to true when you call AddImageUrl or AddImageHtml.

Occasionally, you may find that your page is being cached elsewhere. There are all kinds of places this can happen. For example, Windows sometimes caches individual page resources. Proxy servers may cache entire pages.

The standard reason that content gets cached is that pages are sending HTTP header information which indicates that it is acceptable to cache this content. If you are using the Internet Explorer HTML engine, sometimes it will insist to cache certain Web pages. In that case, your first step should be to use a tool like IEWatch to view the content expiration headers. Indeed, you may find that simply adjusting the content expiration settings found in the IIS Management Console will resolve the issue.

If you want to be totally sure that your URLs are rendered afresh each time, you need to vary the URL. For example:

http://www.microsoft.com/?dummy=1
http://www.microsoft.com/?dummy=2
http://www.microsoft.com/?dummy=3

These will all render the same page (www.microsoft.com) but because the URL is varying, you can be sure that they will be rendered afresh each time.

Speed

Obvious things will impact the speed of HTML conversion. So if you want to optimize the process look at retrieval times for your http requests, the size of your HTML and any related resources, the complexity of HTML, the speed of your computer. Tweaking these can make a big difference.

However there are also some small and simple things you may be able to do without getting into the complexity of system wide optimization.

The MSHTML rendering engine is, by default, set up for accuracy and quality. In order to ensure that the output is always good we have to enable every setting that might ever affect the output quality. This is the case even for situations in which you are not using those features.

So if your HTML does not contain features which require these settings then you can disable them. Doing so can result in significant speed improvements.

The setting which typically makes the biggest difference is HostWebBrowser but DoMarkup and AdjustLayout are also worth looking at. The actual speed increases depend very much on the input HTML, but in our tests, disabling these features for simple HTML, increased the speed of processing by about 30% for HostWebBrowser, another 10% for the DoMarkup property and another 7% for the AdjustLayout property.

Another property which needs examination is the UseScript one. As long as your JavaScript is good and sensible then there is no problem. However JavaScript is often coded poorly and as such it may have an unpredictable effect on speed. Consider disabling this feature if you do not actively need it.

Setting the BrowserWidth to a predefined value means that ABCpdf does not have to compute one. This can result in an increase of speed or perhaps 10% or so.

By default the ABCpdf MSHTML engine operates a two stage process for obtaining web pages. It starts with the most efficient method (EngineTransfer) and, in the event that security prohibits this, falls back to a less demanding but slower method (NetWebRequest). If you are operating in a restricted permission environment such as ASP.NET you are unlikely to notice this fallback and thus the potential speed impact. By setting the TransferModule to EngineTransfer you can force ABCpdf to use the faster method and if permissions prohibit this then an error will be raised. At that point you can tackle the permissions issue to ensure that the faster method is used. See the TransferModule property for details.

Caveats

You can render any page you can supply a URL for.

When you render a page the page has to be reloaded by ABCpdf. This is because you - as a client - are looking at the page from your current machine. ABCpdf lives on the server and so it exists in a different session.

So, you cannot generally rely on cookies, session state or form submission in your page. The page must be reliant only on the URL you supply.

If you have to rely on session state, you could use cookie-less sessions (which will give you a URL for your session) or you could save the session information under a specific unique ID then pass the ID via the URL and pick up the information via your server-side code.

Problems which appear to be related to SSL or HTTPS connections are often authentication issues simply solved by providing a user name and password. See the LogonName property for details. If that is not convenient then, for situations in which the HTTPS resource is on the same machine as ABCpdf, it is often possible to access the files directly using a 'file://' protocol URL - bypassing SSL issues can be simpler than solving them. In addition, people often tweak security without considering the consequences, so if you have to solve an SSL problem there is always the possibility that someone might unsolve the problem in the future.

Size

Screen resolution is typically 96 DPI. So, when you view an HTML page on your monitor, Windows will display it at 96 DPI.

The disparity between the screen resolution and the PDF 72 DPI resolution means that HTML appears larger in print documents than it does on screen.

You will need to apply a scale of 72/96 (0.75) to compensate for this if you want both to appear the same size.

For example, if you are rendering a web page supplying a value of 800 for the Width parameter, you will need to set the width of your Rect to 600 if you want both to appear the same size.

DPI

PDF documents are predominantly vector based. As such, they do not really have a DPI because they are resolution independent. The only portions of PDFs which are raster based are images.

Most elements of HTML - text, lines - are vector based. So, they are resolution independent.

The resolution at which images in your web pages are rendered is complicated. Suppose you have a 300 square image referenced by an image tag. If the width of your Doc.Rect is the same as the width you pass to AddImageUrl, this will be rendered at 72 DPI. However, by changing the ratios between these two values, the image will be scaled and hence the resolution will be changed.

And... if your 300 square is in an img tag with a width and height of 150, the default resolution will be doubled.

Breaks

ABCpdf uses a sophisticated set of heuristics to determine where to break pages. For greater control over page breaking, you can use the page-break-before, page-break-after and page-break-inside CSS styles.

You must ensure that the element to which you apply your page breaking style is visible. For example:

<div style="page-break-before:always">&nbsp;</div>

... will break but ...

<div style="page-break-before:always"></div>

... will not.

Useful Tip. Debugging page break styles.

Sometimes, your page breaks do not work in they way you think they should. Because these kinds of tags are invisible, it's very difficult for you to know whether you've applied them correctly or not. One simple solution is to debug your HTML using a visible style.

For example, when you apply your "page-break-inside: avoid" style, apply a right border style at the same time. That way, you can see exactly where your elements are. If the borders do not appear in the right places, then you know there's something wrong with your HTML.

The page break styles in the Gecko engine are not always applied as intuitively as they are in MSHTML. The root of this is the CSS specification that which says that break styles must be applicable to block-level elements within the "normal flow of the root element". It allows for these styles to be applied to other elements but does not mandate it.

The upshot of this, within the Gecko engine, is that page break styles cannot be applied within tables, to elements such as table rows. If you are unsure about whether something is likely to work just try Print Preview from within Firefox 38.0 as a simple sanity check.

Snapshot

You may wish to take a snapshot of the current URL.

In many circumstances, you should be able to derive a URL for the current page using the value of the SERVER_NAME, URL and QUERY_STRING Server Variables. You should be able to derive a URL for the previous page using the HTTP_REFERER (sic) Server Variable.

Alternatively, you can obtain the HTML of the current page using the HttpResponse.Filter property or by overriding the Render method of the page. You can then present this HTML to ABCpdf using AddImageHtml. If your HTML references resources using relative references, you may wish to insert a <BASE> tag into the HTML before presentation to ABCpdf. If your server is serving one site and you are rendering a URL on it, something as simple as <BASE HREF="http://localhost/"> is often all you need.

When you perform this kind of operation, be careful not to recursively call ABCpdf. If you do this, you will get into a hall-of-mirrors type situation and the software will not be able to return you a sensible image.

Maturity

ABCpdf is a mature product and we support multiple HTML engines.

We have to support all these engines because many of our clients rely on them in their older systems. However that does not mean it is a good idea for you to use older engines. In your newer developments you should favor the current engines, not the ones that were current ten years ago.

Engines that are not undergoing regular updates are going to be less secure, less performant and less compatible than newer ones. We recommend the use of the ABCChrome86 engine as this is current and up to date.

The other older engines are not part of our main NuGet package. Instead you need the full MSI installer or you need to reference subsidiary NuGet packages. This is for good reasons, related to security, performance and compatibility.

The MSHTML engine is based on IE technologies which date back to 2013. While it has a surprisingly long end of life date, it has not been a focus of attention from Microsoft for many years. The ABCWebKit engine dates back to 2012 and while it can be useful in some situations, it certainly could not be regarded as modern. The ABCGecko engine is based around FireFox 38 which was released in 2015.

Security

If you are working with trusted web pages or HTML - your web pages and your HTML - then there is little to worry about in terms of security.

However if you allow untrusted clients to provide you with web URLs or raw HTML then you need to consider if a malicious user could leverage specially crafted pages, to create effects you had not considered. The core ways in which this may happen are related to redirection, embedded iframes and base tags. JavaScript can also be exploited in ingenious ways to reveal information about your server. Tracker or spy pixels may be used to identify content and pass information in ways you do not want.

For example, you might not consider it important that you can view a web site which tells you your IP address and location. However if you allow a user to create a PDF of this web site then it will reveal the IP address and location of the server that has generated the document. While perhaps this might not be a problem, it is possible that an someone might find a way to access other apparently innocuous information in a way that could ultimately be exploited.

Suppose your server has access to an internal intranet. An attacker knows about URLs on this intranet but cannot access them. However if you allow them to pass a URL for conversion into a PDF, then they can specify one of these internal URLs and get back a PDF of the web pages.

So the core principle here is - do not pass untrusted URLs or HTML to ABCpdf.

In previous versions of ABCpdf, JavaScript was disabled by default and had to be manually enabled. However JavaScript has become critical to the display of most sites and From Version 11 onwards, it is enabled by default. See the HtmlOptions.UseScript property for details.

Each web engine operates inside a sandbox which limits the access that web pages have. However the extent to which the web pages are limited, is largely determined by where they are and what they wish to access. In general web pages are tied into the local site from which they come. So any attempt to move outside this location will normally be denied. You can read more about this on the web by searching for details of the same-origin policy and how it is used to prevent cross-site scripting.

Redirection is much more relevant when JavaScript is enabled as this is the primary mechanism by which it is accomplished. There are other mechanisms such as meta-refresh tags, but they are uncommon and fragile. If you pass a URL to ABCpdf, it cannot tell the difference between intended redirection and malicious redirection. So it is important to ensure that the types of redirection that are allowed is controlled.

Base tags are similar but do not use JavaScript - they allow a web page in one location to reference resources in another. Most typically this is used to allow page on one site to reference images or style sheets on a different web site. Obviously to strictly enforce a same-origin policy here would rather defeat the concept of the base tag. However there are security measures in place to limit the extent to which they can be manipulated.

The main thing to consider is that the origin of files on the local machine is the local machine. So, while the origin of web pages strictly controls the access they can have, the origin of files inherently limits the level of control that is possible. Allowing untrusted users to provide web page URLs provides limited exposure. Allowing them to provide files to be be passed directly to AddImageUrl via a 'file:///' protocol URL, provides much more exposure.

As an alternative, if you have files containing HTML, read the content and pass it in via the AddImageHtml method. Both the ABCChrome and (to a lesser extent) the Gecko engines have barriers in place to limit the access of web pages which are provided this way. The origin of the HTML is not the local machine and a higher level of defense is automatically in place. However it may also mean that images on your local machine, referenced in your HTML, will not be able to be loaded. See table below for details.

The ABCChrome and ABCWebKit FireShield settings allow you to specify dynamic permissions associated with file access. If you need to work with files on the local machine, this is an excellent way of ensuring that the HTML render process has access only to those files that it requires. However this is a feature specific to the ABCChrome and ABCWebKit engines. It does not exist for the ABCGecko or MSHTML engines.

The file permissions associated with a web server process, provide yet another layer of defense. But while a sequence of defensive layers may provide protection it is quite difficult to know the extent to which they will work in the face of a determined adversary. It is best not to provide untrusted users with mechanisms to allow them to insert unvetted HTML or JavaScript in the first place.

There are some variations between engines and what they allow. See below for details. Note that while engines should be completely consistent here, it is our experience that this is not always the case so you may not want to rely on these permissions as absolutes.

 | ABChrome | ABCGecko | Mshtml
Redirection from one page to another within the current web site | Allowed | Allowed | Allowed
Redirection from a page on one web site to a page on a different one | Denied | Denied | Denied
Redirection from a page on a web site to a local file | Denied | Denied | Denied
Redirection from one local file to another local file | Allowed | Allowed | Allowed
Redirection from a local file to a page on a web site | Denied | Allowed | Denied
Base tag in a local file referencing resources in a local directory | Allowed | Allowed | Allowed
Base tag in a local file referencing resources on a remote web site | Allowed | Allowed | Allowed
Base tag in a page on a remote web site referencing resources in a local directory | Denied | Denied | Allowed
Image in a local directory, referenced in HTML, provided via AddImageHtml method. | Denied | Denied | Allowed
Image in a local directory, referenced in HTML, provided via AddImageUrl and a 'file:///' scheme URL. | Allowed* | Denied | Allowed

* If you enable the FireShield engine, the default rules will deny access. Access can be re-enabled by adding FireShield rules to explicitly allow it.


SVG to PDF Import

Intro

When you use Doc.Read to import SVG content, ABCpdf uses its own native SVG import functionality. This is very fast and controllable and produces a very direct rendition of the SVG structures in terms of the PDF output. For SVG Tiny compliant input it is the best option.

The alternative is to use AddImageUrl/Html with the Gecko engine. Because this uses the Firefox SVG rendering engine is extremely full featured. For complex SVG content including features outside the SVG Tiny specification it is the best option.

SVG Tiny

ABCpdf supports a subset of SVG based around the SVG Tiny specification.

It does not support all the features of SVG Tiny because some features do not easily map through to equivalents in the PDF format. However it supports some features outside SVG Tiny to cover common usage in real world (non SVG Tiny) documents.

So what are the key differences between ABCpdf SVG and SVG Tiny?

Content

PDF is essentially a static medium.

ABCpdf supports the import of static content.

However it does not import dynamic SVG content such as animations, videos and scripts.

Text

ABCpdf supports external fonts referenced in SVG.

However it is also possible to embed fonts in an SVG file using a set of tags defining the path for each glyph. ABCpdf does not support this type of embedded font.

Some text styles such as light weights and font variants are not easily represented in PDF. For this reason ABCpdf may approximate them if they are used.

ABCpdf does not support the display-align property of the textarea element. However this is an element which is very rarely used (it is part of the new SVG 1.2 draft specification) and is not widely supported.

SVG Basic allows text in individual tspan blocks to be individually positioned attributes using x, y, dx and dy attributes. Because this is not part of SVG Tiny ABCpdf does not support it. However it is worth noting that this is perhaps the most commonly used text construct outside the specification.

Links

Links are only supported for text elements within anchor elements.

Internal document links are not currently supported.

Gradients

In SVG it is possible to specify opacity values for the stop-colors of gradients.

Unfortunately this is not possible in PDF.

As such ABCpdf substitutes transparent stop-colors with brighter solid stop-colors.

CSS

Although it is not a part of SVG Tiny, ABCpdf supports a simplified CSS system.

This is useful because a large number of real world SVG documents use simple CSS selectors.

ABCpdf supports simple type selectors in internal style sheets. ABCpdf supports external style sheets as long as they are on the local file system.

However ABCpdf skips "import" and "media" CSS directives when parsing the style sheet itself.


PDF to SVG Export

Intro

When you use Doc.Rendering.Save to convert your PDF to SVG, ABCpdf produces a faithful rendition of the document. However for a variety of reasons the faithful rendition may not appear exactly as you expect. Here we explain why this is and how you can adapt the output to your needs.

Text

PDF allows a complex set of options for sophisticated control over text display. While SVG contains many options for text layout, it does not support as wide a range as PDF.

PDF viewers are generally pretty good at supporting the text layout options supported by the PDF specification. Unfortunately the same cannot be said of SVG. Many SVG viewers ignore or misrepresent the more sophisticated text layout attributes supported by SVG.

The PDF format supports embedded fonts for high fidelity text reproduction. However the types of embedded fonts it supports are not the same as those supported by SVG and indeed subsetting may remove aspects that are crucial in the SVG representation.

For these reasons, if you require precise control over the way that your text appears when exporting to SVG, you should vectorize the page in question to convert any text into paths.

You can do this to the current page using the following code.

[C#]

((Page)doc.ObjectSoup[doc.Page]).VectorizeText();

[Visual Basic]
DirectCast(doc.ObjectSoup(doc.Page), Page).VectorizeText()

Images

Rendering to SVG produces placeholder tags for bitmap images in the SVG.

If you require that the images be exported, you should do so using code of the following form.

[C#]

static void SaveAsSvg(Doc pdf, string file) {
  pdf.Rendering.Save(file);
  string svg = File.ReadAllText(file);
  HashSet<string> hrefs = new HashSet<string>();
  string pattern = "<image xlink:href\\s*=\\s*(?:[\"'](?<1>[^\"']*)[\"']|(?<1>\\S+))";
  MatchCollection matches = Regex.Matches(svg, pattern);
  foreach (Match match in matches)
    hrefs.Add(match.Groups[1].Value);
  string folder = Path.GetDirectoryName(file);
  foreach (string href in hrefs) {
    string image = Path.Combine(folder, href);
    if (!File.Exists(image)) {
      // href is of form "imageXX.png" where XX is the PixMap ID
      int id = int.Parse(href.Substring(5, href.Length - 9));
      PixMap pm = pdf.ObjectSoup[id] as PixMap;
      using (Bitmap bm = pm.GetBitmap())
      bm.Save(image);
    }
  }
}

[Visual Basic]
Private Shared Sub SaveAsSvg(pdf As Doc, file As String)
  pdf.Rendering.Save(file)
  Dim svg As String = File.ReadAllText(file)
  Dim hrefs As New HashSet(Of String)()
  Dim pattern As String = "<image xlink:href\s*=\s*(?:[""'](?<1>[^""']*)[""']|(?<1>\S+))"
  Dim matches As MatchCollection = Regex.Matches(svg, pattern)
  For Each match As Match In matches
    hrefs.Add(match.Groups(1).Value)
  Next
  Dim folder As String = Path.GetDirectoryName(file)
  For Each href As String In hrefs
    Dim image As String = Path.Combine(folder, href)
    If Not File.Exists(image) Then
      ' href is of form "imageXX.png" where XX is the PixMap ID
      Dim id As Integer = Integer.Parse(href.Substring(5, href.Length - 9))
      Dim pm As PixMap = TryCast(pdf.ObjectSoup(id), PixMap)
      Using bm As Bitmap = pm.GetBitmap()
        bm.Save(image)
      End Using
    End If
  Next
End Sub

Note that in the above code the images are all exported as PNG. This is a good general purpose lossless export format. However for continuous tone images such as photographs you may wish to export as JPG as this will produce a smaller file size.

It is worth nothing that one of the internal compression formats within PDF streams is JPEG. So in cases where the Stream.Compressions has length one and the Stream.Compression is CompressionType.Jpeg, it is often possible to use Stream.GetData save the raw data directly to a JPEG file.

However you need to be aware that there are differences. So while often possible, it is not always possible. In most situations for most images in the RGB color space it will work. However for other color spaces such as CMYK it will not and even in the case of RGB the output may be missing secondary data such as any related ICC color profile.


PDF to WebGL Export

Intro

ABCpdf allows to export PDF files to HTML with WebGL 3D content.

WebGL is a JavaScript API for rendering GPU-accelerated graphics. It uses a canvas object to render to, a JavaScript interface to interact with the graphics library, and an OpenGL Shader Language (GLSL) for code that is to be executed on the GPU.

Your browser needs to support WebGL 1.0 or later. All mainstream modern browsers do this. You can check your WebGL version at http://webglreport.com/

Export

All you need to do is run code of the following form.

[C#]

doc.SaveOptions.EmbeddedGraphics = XSaveOptions.EmbeddedGraphicsType.Html5WebGL;
doc.SaveOptions.FontSubstitution = XSaveOptions.FontSubstitutionType.Always;
doc.Save("C:\webpage.htm");

[Visual Basic]
doc.SaveOptions.EmbeddedGraphics = XSaveOptions.EmbeddedGraphicsType.Html5WebGL
doc.SaveOptions.FontSubstitution = XSaveOptions.FontSubstitutionType.Always
doc.Save(@"C:\webpage.htm")

This will produce a main generic output file.

  • <filename>.html - the main file, which can be opened in the browser. Contains the html head and body, including the canvas object which will be drawn to and the main javascript functionality necessary for WebGL. It does not contain any scene specific information so it could also be used as a template and the actual graphical content could be replaced.

It will also produce a sub folder containing various generic resource files.

  • <filename>/gl-matrix-2.3.2.min.js - third party functionality needed for doing matrix and vector calculations, see http://glmatrix.net/
  • <filename>/<filename>.css - bare bones CSS file containing necessary styles for body and canvas elements in order to provide a better user experience
  • <filename>/viewcontroller.js - JavaScript file containing the functionality to move and rotate the camera and/or the model in 3D space (see below for more info)
  • <filename>/settings.js - JavaScript file containing general settings which can be modified by adding query strings to the URL in the browser (see below for more info)

Also files containing the actual 3D content as generated from the PDF.

  • <filename>/content_shaders.js - a JavaScript file containing the source code in the form of a JSON string for the GLSL shaders used to render the content. These shaders will be read upon loading of the page, and then compiled for and uploaded to the GPU. Each shader program consists of a vertex shader (executed on a per-vertex basis, to calculate and/or interpolate various values needed for rendering) and a fragment shader (executed on a per-fragment basis, which receives those calculated and interpolated values and calculates a final output color for each fragment)
  • <filename>/content_textures.js - a JavaScript file containing the source code in the form of a JSON string for the textures which are used for rendering the content. Each texture is stored as a base64 encoded string, and upon loading of the page will be encoded into a valid image type, from which a WebGL texture object will be created and uploaded to the GPU
  • <filename>/content_geometry.js - a JavaScript file containing all the actual geometry that is to be rendered (and some other objects needed for rendering) again stored in the form of a JSON string

The format of multi line JSON strings inside .js files was chosen to overcome security limitations enforced by browsers, which do not permit loading local files. Choosing to store textures as image files would require a web server to be run in order to render the exported HTML file.

Settings

The settings.js file allows control over the environment in which the model should be shown.

You can control these via URL query strings. For example.

webpage.htm?showAxis=true&showNormals=true

The settings which can be modified are:

  • backgroundColor = R,G,B - allows modifying the background color by settings an array; important: It has to be 3 numerical values in the range of [0,1] for each of the color components (red, green, blue) separated by a comma (',')
  • enableTransparency = true/false - default enabled, but allows disabling transparency, but will only result in different rendering if the content actually has transparency
  • wireframe = true/false - allows rendering a pseudo-wireframe which can help illustrate the triangles of which the content is made (Note: it is technically not a correct wireframe, as all it does is just render the triangles as line sets instead of triangles - a technically correct wireframe is more easily implemented using geometry shaders, which are not supported in WebGL 1)
  • backfaceCulling = true/false - allows disabling rendering of the "backside" of triangles, so in case of a PDF page, if the camera is viewing it's backside it will simple draw nothing
  • enableDepthSorting = true/false - allows en/disabling depth sorting, which is only really relevant in "true 3D" content, but won't show a visible difference on a 3D-rendered PDF page
  • orthoView = true/false - by default the content is rendered in a perspective projection (edges of the same length will be rendered at a different size depending on their distance to the viewer), but with this settings it can be rendered in an orthogonal projection, which results in edges of the same length being rendered the same size regardless of the distance to the viewer (which can result in a distorted look)
  • defaultPerspectiveFOV = <angle in degrees> - allows setting the field of view angle for the scene, default is a 45 degree cone (will not affect orthogonal projections)
  • nearClip = <distance in units> - allows setting the distance of the near clipping plane of the view frustum (objects closer to the camera than this value will result in being clipped)
  • farClip = <distance in units> - allows setting the distance of the face clipping plane of the view frustum (objects further than that will not be drawn)
  • defaultViewDistance = <distance in units> - allows settings the default distance of the viewer (camera) from the subject
  • showAxis = true/false - allows showing the main axis in the rendered world, centered at the origin; x-Axis is red, y-Axis is green, and z-Axis is blue with the positive axis being a brighter hue than the negative axis
  • axisScale = <value> - allows changing the size of the axis that is being rendered, default is 300
  • showGrid = true/false - allows rendering a grid in the world, centered around the origin and lying in the XZ-plane
  • gridScale = <value> - allows changing the size of the grid that is being rendered, default is 1000
  • gridColor = R,G,B - allows modifying the color of the grid, like in background color by comma-separated red, green and blue values, each in the range of [0,1]
  • showNormals = true/false - allows rendering "normals" (vectors perpendicular the to triangles they belong to), which can help visualizing and understanding the lighting effects more
  • normalColor = R,G,B - allows modifying the color of the normals, by comma-separated red, green and blue values, each in the range of [0,1]
  • normalScale = <value> - allows modifying the size of the rendered normals, default is 100
  • enableLight = true/false - allows switching the light source on/off; if off the object will be drawn full-bright using it's normal object colors, if the light is enabled, it will use a single infinite-distance directional light source (similar to the sun) to light the scene, and the brightness of the objects depends on their direction relative to the light source
  • enableAmbient = true/false - allows en/disabling an ambient light source (so that for example the side which is pointing away from the light source won't just appear black but will be lit a bit as well)
  • enableSpecular = true/false - allows en/disabling specular highlights on the objects; depending on the position of the viewer relative to the object and light source, a specular reflection might make parts of the object brighter
  • lightPosition = X,Y,Z - allows setting the position of the light; the directional light will then "shine" in the direction from this position towards the origin, therefore the actual distance from the object does not matter, only the direction
  • lightAmbient = R,G,B - allows setting the brightness and color of the ambient light (if enabled)
  • lightDiffuse = R,G,B - allows setting the brightness and color of the main light source (diffuse light)
  • lightSpecular = R,G,B - allows setting the brightness and color of the specular reflection (to simulate how different materials might reflect light differently); to provide a consistent lighting model, the ambient, diffuse and specular colors should have the same hue (but can have different brightness)
  • allowDynamicView = true/false - allows en/disabling of view modifications; if false the result will be the same as rendering a static page
  • allowMouseWheelZoom = true/false - if true, the view can be zoomed in/out using the mouse wheel
  • mouseWheelIncrement = <value> - allows setting the amount of zoom applied by the mouse wheel with each movement, default is 50
  • moveKey = "<keyname>" - the key modifier to use to allow translating (moving) the object (while left-clicking and dragging the mouse), default "Shift"
  • zoomKey = "<keyname>" - the key modifier to use to allow zooming in/out (while left-clicking and dragging the mouse), default "" (disabled)
  • resetKey = "<keyname>" - the key modifier to use to reset the view to original direction, and return the object to it's original position, default "Home"
  • modelRotateKey = "<keyname>" - the key modifier to use to allow rotating the object (rather than the camera) while left-clicking and dragging the mouse, default "Control"
  • allowQWEASDRotation = true/false - whether to enable the keys Q, W, E, A, S, D for rotating the object in 90 degree increments around the x, y or z-Axis (A,D = +-90 deg on x-Axis, W,S = +-90deg on y-Axis and Q,E = +-90deg on z-Axis); mostly used for debugging purposes, default disabled

View & Model

Rotate View:

If the dynamic view is enabled (settings 'allowDynamicView' set to true, see above) the viewpoint (camera) can be rotated by left-clicking into the canvas object (which fills the body of the html page, so clicking anywhere into the page will start a rotation) and dragging the mouse. Depending on where in the scene the user clicks, the rotation might be different, further away from the center of the scene will result in a rotation around the axis the camera is sitting on (the z-axis pointing "out of the screen").

Zoom View:

lf the mouse wheel is enabled ('allowMouseWheelZoom' set to 'true') the view can be zoom by using the mouse wheel (the amount of zoom is set in the 'mouseWheelIncrement' setting), alternatively the view can also be zoomed if a 'zoomKey' is set. In that case the user needs to hold that key, and can zoom with left-click dragging the mouse.

Rotate Model:

If the 'modelRotateKey' is set, the model can be rotated while holding down that key, and left-click dragging the mouse. This rotates the model around it's origin
Alternatively, if 'allowQWEASDRotation' is set to 'true' the user can also rotate the view around the model's 3 axis in 90 degree increments, using the A, D (for x-axis rotation), W, S (for y-axis rotation) and Q, E keys (for z-axis rotation)

Move Model:

If the 'moveKey' is set, the model can be moved (translated) while holding down that key, and left-click dragging the mouse. The movement is along the plane of the screen (rather than the world coordinate system).

Lighting

The WebGL renderer uses a simple lighting model (see 'enableLight' setting) with a single directional light source (see 'lightPosition' setting).

The strength and color of the light source can be set with the 'lightDiffuse' setting, and an ambient light can be added to provide some light for the parts of the model that are facing away from the light source ('enableAmbient' and 'lightAmbient' settings).

The directional light source can also result in a specular highlight (simulating a reflection of the light) on the surface, which -depending on the orientation of the model and the viewer- can make parts of the model brighter (use 'enableSpecular' and 'lightSpecular' settings to control this effect). The specular highlight is calculated using the simple Blinn-Phong model.

Materials

The geometry information stores material information, which affects the light output. The material can have four properties:

  • "specular" - describes a color, which affects the specular highlight; this simulates that different materials could reflect light in different ways (for example by filtering out color components)
  • "opacity" - whether the material is transparent to a certain degree, or fully opaque
  • "shininess" - how the specular highlight will show up on the surface (depending on how shiny a material it is, it can be a small very focused reflection, or a big "blobby" and more diffuse reflection)
  • "doublesided" - whether both sides of the material are rendered or only one side; at the moment -for slightly more realism- only the "page" object itself is rendered on both sides, but the text, images etc on the page are only rendered on the "front side" of the "page"

Currently a default diffuse texture, affecting the calculation of the diffuse part of the lighting model, is applied to the model representing the PDF "page" in order to give it a less flat appearance.

Additionally a normal map is used to simulate unevenness of the object surface, and this normal map is applied to both the "page" and all the objects rendered on the page - images and text, and graphical objects like curves etc.

This normal map essentially replaces the normal information that is stored with the triangles that make up the geometry (those triangles have normals that are perpendicular to the plane of the triangle, to simulate a flat surface), and are basically just a texture (image object) which encodes the normals on a per-fragment basis into a color code to make up an image.

As the normals of a surface are supposed to be unit vectors of length 1, it means the individual components of each vector describing the normal will always be in the range of [-1,1]. As the color components of a pixel for the Red, Green, and Blue components are expected in the range [0,1], it means the normals need to be encoded by adding 1 and dividing the result by 2 to normalize them into the [0,1] range.

This texture then gets loaded by the GPU, and at rendering time it will look up the texture coordinate for the currently processed fragment, and translate the color into a normal (by reversing the above calculation), and apply this normal instead of the triangle normal. This results in the surface getting a more uneven and realistic look.

Custom Textures

You can use your own page textures and normal maps by dropping them into the export destination folder. ABCpdf will look for files named:

  • "diffuse_texture.<ext>" - to be used for the page diffuse texture (may be .jpg, .jpeg or .png)
  • "normal_texture.<ext>" - to be used for the normal map (may be .jpg, .jpeg or .png)

Textures you can make yourself using Photoshop filters. Normals can be created using the Photoshop 3D filters. For example.

Given the following texture.

diffuse_texture.png

And normal map.

normal_texture.png

This is the kind of output you might expect.

webgl_screenshot.png


PDF Metadata Representation and Info Store

Intro

PDF documents can contain metadata to summarize basic information about the document. For example a document might have a title and an author.

The original method for doing this was via an Info entry in the document trailer. This supported title, author, subject, keywords, creator, producer, whether the PDF is trapped or not, creation date and modification date. This was sufficient for most people but some required more extensible or more structured data.

As such in PDF 1.4 Adobe introduced a new XML based metadata store represented in a format called Extensible Metadata Platform (XMP). You can attach XMP data to any object in a PDF so you could have one XMP set of metadata attached to the document, and then one for each image in the document. XMP is now an ISO standard and it allows an extreme level of flexibility at a certain cost in terms of complexity.

While XMP solved one problem, it introduced another: it was now possible to include both old Info style metadata and also XMP style metadata in the same document. Some people would use the Info because it was simple and backwards compatible. Others would use the XMP because it was more flexible and modern. If you end up with two titles for the document - which do you use?

To solve this problem the Info store was deprecated in PDF 2.0. As such you should now use the XMP based metadata store. ABCpdf includes objects which make it easy to work with this type of data without having to get into complex XML parsing and validation. However for backwards compatibility you may occasionally find that you need to work with the old Info style store.

Metadata

Best practice is to use the Doc.Catalog.Metadata property.

This property allows you access to standard items of metadata while abstracting you from XMP construction and validation.

If you require a higher level of control over the XMP data store then you can skip the helper properties and go direct to the XML.

For full details and code samples please see the Doc.Catalog.Metadata property.

Info

Best practice is to use the Doc.Catalog.Metadata property, but occasionally you may find that you need to work with the old Info store.

This example shows you how you can create and set data in this store. It requires some knowledge of the Adobe PDF Specification. See the following for details:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 317, page 550.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 349, page 712.

Looking at the specification we can see that the document properties we want to change are referenced from an entry called Info in the document trailer. So we create a new PDF dictionary and reference it from the trailer, then we insert our summary information into the object, finally we save.

[C#]

Doc doc = new Doc();
doc.Page = doc.AddPage();
doc.AddText("My first document...");
int theID = doc.AddObject("<< >>");
doc.SetInfo(-1, "/Info:Ref", theID.ToString());
doc.SetInfo(theID, "/Title:Text", "ABCpdf");
doc.SetInfo(theID, "/Author:Text", "WebSupergoo");
doc.SetInfo(theID, "/Subject:Text", "ABCpdf Documentation");
doc.SetInfo(theID, "/Keywords:Text", "ABCpdf,PDF,Docs");
doc.SetInfo(theID, "/Creator:Text", "WebSupergoo");
DateTime theDate = DateTime.Now;
doc.SetInfo(theID, "/CreationDate:Text", theDate);
doc.SetInfo(theID, "/ModDate:Text", theDate);
doc.SetInfo(theID, "/Trapped:Name", "False");
doc.Save(Server.MapPath("docprops.pdf"));

[Visual Basic]
Dim doc As Doc = New Doc()
doc.Page = doc.AddPage()
doc.AddText("My first document...");
Dim theID As Integer = doc.AddObject("<< >>")
doc.SetInfo(-1, "/Info:Ref", theID.ToString())
doc.SetInfo(theID, "/Title:Text", "ABCpdf")
doc.SetInfo(theID, "/Author:Text", "WebSupergoo")
doc.SetInfo(theID, "/Subject:Text", "ABCpdf Documentation")
doc.SetInfo(theID, "/Keywords:Text", "ABCpdf,PDF,Docs")
doc.SetInfo(theID, "/Creator:Text", "WebSupergoo")
Dim theDate As DateTime = DateTime.Now
doc.SetInfo(theID, "/CreationDate:Text", theDate)
doc.SetInfo(theID, "/ModDate:Text", theDate)
doc.SetInfo(theID, "/Trapped:Name", "False")
doc.Save(Server.MapPath("docprops.pdf"))

Transfer

Sometimes you may need to copy information between the old Info store and the new Metadata store.

This example shows how you might do this. Deciding exactly how to deal with clashes between the two stores is rather application dependent so you should be expecting that you will want to adapt this code to your needs.

[C#]

// We do not copy over the CreationDate or ModDate because we do not have to
// (they have not been deprecated) and we are likely simply to end up with
// two clashing values. A similar situation is true for Trapped.
bool copyCreationDate = false, copyModDate = false, copyTrapped = false;
IndirectObject trailer = doc.ObjectSoup.Trailer;
DictAtom info = trailer.Resolve(Atom.GetItem(trailer.Atom, "Info")) as DictAtom;
if (info != null) {
  string title = Atom.GetText(trailer.Resolve(Atom.GetItem(info, "Title")));
  string author = Atom.GetText(trailer.Resolve(Atom.GetItem(info, "Author")));
  string subject = Atom.GetText(trailer.Resolve(Atom.GetItem(info, "Subject")));
  string keywords = Atom.GetText(trailer.Resolve(Atom.GetItem(info, "Keywords")));
  string creator = Atom.GetText(trailer.Resolve(Atom.GetItem(info, "Creator")));
  string producer = Atom.GetText(trailer.Resolve(Atom.GetItem(info, "Producer")));
  string creationDate = copyCreationDate ? Atom.GetText(trailer.Resolve(Atom.GetItem(info, "CreationDate"))) : null;
  string modDate = copyModDate ? Atom.GetText(trailer.Resolve(Atom.GetItem(info, "ModDate"))) : null;
  string trapped = copyTrapped ? Atom.GetText(trailer.Resolve(Atom.GetItem(info, "Trapped"))) : null;
  bool hasValues = (!string.IsNullOrEmpty(title)) || (!string.IsNullOrEmpty(author)) || (!string.IsNullOrEmpty(subject)) ||
        (!string.IsNullOrEmpty(keywords)) || (!string.IsNullOrEmpty(creator)) || (!string.IsNullOrEmpty(producer)) ||
        (!string.IsNullOrEmpty(creationDate)) || (!string.IsNullOrEmpty(modDate)) || (!string.IsNullOrEmpty(trapped));
  if (hasValues) {
    Metadata md = doc.ObjectSoup.Catalog.Metadata;
    if (md == null) {
      md = new Metadata(doc.ObjectSoup);
      doc.ObjectSoup.Catalog.Metadata = md;
    }
    if ((!string.IsNullOrEmpty(title)) && (string.IsNullOrEmpty(md.InfoTitle)))
      md.InfoTitle = title;
    if ((!string.IsNullOrEmpty(author)) && (string.IsNullOrEmpty(md.InfoAuthor)))
      md.InfoAuthor = author;
    if ((!string.IsNullOrEmpty(subject)) && (string.IsNullOrEmpty(md.InfoSubject)))
      md.InfoSubject = subject;
    if ((!string.IsNullOrEmpty(keywords)) && (string.IsNullOrEmpty(md.InfoKeywords)))
      md.InfoKeywords = keywords;
    if ((!string.IsNullOrEmpty(creator)) && (string.IsNullOrEmpty(md.InfoCreator)))
      md.InfoCreator = creator;
    if ((!string.IsNullOrEmpty(producer)) && (string.IsNullOrEmpty(md.InfoProducer)))
      md.InfoProducer = producer;
    if ((!string.IsNullOrEmpty(creationDate)) && (string.IsNullOrEmpty(md.InfoCreationDate)))
      md.InfoCreationDate = StringAtom.StringToDate(creationDate).ToString("o");
    if ((!string.IsNullOrEmpty(modDate)) && (string.IsNullOrEmpty(md.InfoModDate)))
      md.InfoModDate = StringAtom.StringToDate(modDate).ToString("o");
  }
  Atom.RemoveItem(info, "Title");
  Atom.RemoveItem(info, "Author");
  Atom.RemoveItem(info, "Subject");
  Atom.RemoveItem(info, "Keywords");
  Atom.RemoveItem(info, "Creator");
  Atom.RemoveItem(info, "Producer");
  if (copyCreationDate)
    Atom.RemoveItem(info, "CreationDate");
  if (copyModDate)
    Atom.RemoveItem(info, "ModDate");
  if (copyTrapped)
    Atom.RemoveItem(info, "Trapped");
}

[Visual Basic]
Dim copyCreationDate As Boolean = False, copyModDate As Boolean = False, copyTrapped As Boolean = False
Dim trailer As IndirectObject = doc.ObjectSoup.Trailer
Dim info As DictAtom = TryCast(trailer.Resolve(Atom.GetItem(trailer.Atom, "Info")), DictAtom)
If info IsNot Nothing Then
  Dim title As String = Atom.GetText(trailer.Resolve(Atom.GetItem(info, "Title")))
  Dim author As String = Atom.GetText(trailer.Resolve(Atom.GetItem(info, "Author")))
  Dim subject As String = Atom.GetText(trailer.Resolve(Atom.GetItem(info, "Subject")))
  Dim keywords As String = Atom.GetText(trailer.Resolve(Atom.GetItem(info, "Keywords")))
  Dim creator As String = Atom.GetText(trailer.Resolve(Atom.GetItem(info, "Creator")))
  Dim producer As String = Atom.GetText(trailer.Resolve(Atom.GetItem(info, "Producer")))
  Dim creationDate As String = If(copyCreationDate, Atom.GetText(trailer.Resolve(Atom.GetItem(info, "CreationDate"))), Nothing)
  Dim modDate As String = If(copyModDate, Atom.GetText(trailer.Resolve(Atom.GetItem(info, "ModDate"))), Nothing)
  Dim trapped As String = If(copyTrapped, Atom.GetText(trailer.Resolve(Atom.GetItem(info, "Trapped"))), Nothing)
  Dim hasValues As Boolean = (Not String.IsNullOrEmpty(title)) OrElse (Not String.IsNullOrEmpty(author)) OrElse (Not String.IsNullOrEmpty(subject)) OrElse _
      (Not String.IsNullOrEmpty(keywords)) OrElse (Not String.IsNullOrEmpty(creator)) OrElse (Not String.IsNullOrEmpty(producer)) OrElse _
      (Not String.IsNullOrEmpty(creationDate)) OrElse (Not String.IsNullOrEmpty(modDate)) OrElse (Not String.IsNullOrEmpty(trapped))
  If hasValues Then
    Dim md As Metadata = doc.ObjectSoup.Catalog.Metadata
    If md Is Nothing Then
      md = New Metadata(doc.ObjectSoup)
      doc.ObjectSoup.Catalog.Metadata = md
    End If
    If (Not String.IsNullOrEmpty(title)) AndAlso (String.IsNullOrEmpty(md.InfoTitle)) Then md.InfoTitle = title
    If (Not String.IsNullOrEmpty(author)) AndAlso (String.IsNullOrEmpty(md.InfoAuthor)) Then md.InfoAuthor = author
    If (Not String.IsNullOrEmpty(subject)) AndAlso (String.IsNullOrEmpty(md.InfoSubject)) Then md.InfoSubject = subject
    If (Not String.IsNullOrEmpty(keywords)) AndAlso (String.IsNullOrEmpty(md.InfoKeywords)) Then md.InfoKeywords = keywords
    If (Not String.IsNullOrEmpty(creator)) AndAlso (String.IsNullOrEmpty(md.InfoCreator)) Then md.InfoCreator = creator
    If (Not String.IsNullOrEmpty(producer)) AndAlso (String.IsNullOrEmpty(md.InfoProducer)) Then md.InfoProducer = producer
    If (Not String.IsNullOrEmpty(creationDate)) AndAlso (String.IsNullOrEmpty(md.InfoCreationDate)) Then md.InfoCreationDate = StringAtom.StringToDate(creationDate).ToString("o")
    If (Not String.IsNullOrEmpty(modDate)) AndAlso (String.IsNullOrEmpty(md.InfoModDate)) Then md.InfoModDate = StringAtom.StringToDate(modDate).ToString("o")
  End If
  Atom.RemoveItem(info, "Title")
  Atom.RemoveItem(info, "Author")
  Atom.RemoveItem(info, "Subject")
  Atom.RemoveItem(info, "Keywords")
  Atom.RemoveItem(info, "Creator")
  Atom.RemoveItem(info, "Producer")
  If copyCreationDate Then Atom.RemoveItem(info, "CreationDate")
  If copyModDate Then Atom.RemoveItem(info, "ModDate")
  If copyTrapped Then Atom.RemoveItem(info, "Trapped")
End If


PDF Standards

Intro

The PDF Standard was created by Adobe.

However to increase standardization and acceptance, Adobe moved this to an ISO Standard which is maintained and developed by the PDF Association.

ISO 32000-1, released in 2008, was the first ISO PDF standard and was based around the Adobe PDF 1.7 specification.

ISO 32000-2, released in 2017, described the PDF 2.0 standard.

In 2020 an update to ISO 32000-2 was released to correct and clarify the original standard.

As well as maintaining the PDF standard, the PDF Association also works on a number of related standards, the more relevant of which are detailed here.

PDF/A

The PDF/A standard is based around specifying the features of PDF documents which make them suitable for long term archiving.

The standards are realized in ISO 19005 "Electronic document file format for long-term preservation". There are now four editions - PDF/A Part 1 to PDF/A Part 4.

There are variants of each standard tagged either B (basic) or A(accessible), so an A specification typically builds on a B standard rather than the other way round. As well as A and B standards there are also U standards which specify Unicode text requirements.

PDF/A Part 1 Level B conformance mandates features like font embedding to ensure that a PDF will display correctly even if a font is no longer available. It prohibits features like transparency because, at the point that the standard was created, many tools did not support transparency.

PDF/A Part 1 Level A conformance is essentially the same as Level B but it also requires features like Unicode text and a tagged PDF structure.

PDF/A Part 2 Level B is the base standard. It is essentially an updated version of Part 1 Level B, allowing features like transparency which had been prohibited in the original standard.

PDF/A Part 2 Level U is essentially the same as Level B but it mandates that all text must be held in Unicode format.

PDF/A Part 2 Level A is essentially the same as Level U but includes some elements related to tagged PDF. Many of these are semantic rather than structural and so it is difficult to validate in an automated system. For example it specifies that images of text should be tagged with the text seen in the image.

PDF/A Part 3 included new features to allow other file formats to be represented in a PDF/A compliant package. So it defines how one should create a compliant PDF in which the original document - for example a Word document - is embedded. In this way you have both a document which will appear in the same way as the original document but also an original file, in case that is required.

PDF/A Part 4 enhances the standard for use in conjunction with PDF 2.0.

u

PDF/UA

The PDF/UA standard is based around Universal Accessibility.

It is documented in ISO 14289-1:2012 - "Document management applications — Electronic document file format enhancement for accessibility".

This standard requires that documents be tagged with appropriate structures which can supply semantic meaning to the document.

Using these structures PDF documents can be presented in a variety of alternative modes such as spoken language.

This is useful to people with disabilities who may find it difficult to navigate a more standard PDF.

PDF/X

The PDF/X standard is a constrained version of the PDF standard for use when printing.

This standard is formalized in ISO 15930 "Prepress digital data exchange using PDF", of which there are now eight versions.

It mandates that certain useful print specific features be present. For example it requires that RGB color spaces be calibrated and that an output intent is provided.

It prohibits certain features which do not transition well to print - for example movies and sounds.


Code Samples and Projects

Samples

There are many code examples in the documentation. These cover common tasks like:

  • Adding text
  • Flowing text
  • Adding images

Every major object method or property has an accompanying code sample. So if you want to know how to use a method like AddText or AddImageFile just look at the code sample.

Code samples also cover operations like:

  • Rendering HTML pages
  • Paged HTML renders
  • Watermarking
  • Appending PDF documents
  • Drawing pages from one PDF document into another

Projects

Most of the time you will be dealing with small code samples and snippets of the type you will find in the documentation.

However some tasks are more involved and varied and involve larger code bases. These are available as complete projects under the under the ABCpdf menu item.

These projects are referenced in a variety of locations within this documentation. However for reference, a full description is provided below.

For in-situ ASP.NET examples you may wish to look at the example web site that comes installed with ABCpdf.

Project Overview

ABCpdf.Drawing Example Project

This is a project designed to parallel the System.Drawing namespace.

For example, a System.Drawing.Pen will map to a WebSupergoo.ABCpdf12.Drawing.Pen and a System.Drawing.Bitmap will map to a WebSupergoo.ABCpdf12.Drawing.Bitmap.

Because the APIs and class structure are very similar, it is easy to port System.Drawing code over to produce ABCpdf documents rather than System.Drawing images.

In addition there are some ABCpdf extensions to allow support for advanced PDF oriented features like CMYK color spaces.

For more details see the project or the System.Drawing Example section in this documentation.

ABCpdfView Example Project

This shows how to display and print PDF documents from a Windows Forms application.

It provides features such as viewing at different sizes and resolutions. It allows you to print documents that you are viewing. It presents a simple way of editing items in a PDF document.

Probably the core value of this project is in the printing code. This shows how to use ABCpdf in conjunction with the .NET printing APIs to send a PDF document to a printer.

There are a variety of approaches you can use for printing. For example you can export to XPS and then send that document direct to the spooler. However we have found that, as of 2019, the EMF based print process is still the most reliable method. XPS is a more sophisticated approach but relies on current hardware and up-to-date software which may not be available on all systems.

The PDF editing capabilities are interesting in that they show how you can edit items within a PDF document. However they are relatively unsophisticated and should be regarded as a base rather than code you can use directly in your projects.

AccessiblePDF Example Project

This project demonstrates how to tag a PDF and make it accessible. The methods used are based around Section 508 compliance and the PDF/UA standard.

The basis of this project is the use of the AccessibilityOperation and the MakeAccessible method. You can read more about these and the types of information that is added, under the documentation for those methods.

However a one function method can only ever achieve so much in the context of complicated and semantically ambiguous documents. For example the reading order of any complex document is likely to vary between people - there is no absolutely correct answer. ABCpdf will come up with a reasonable method but it may not be the one you want.

The AccessiblePDF project shows how to use knowledge of your documents to take the base data and enhance it. It shows how to detect and insert structure based on your understanding of the document and supports the following structure types.

  • Headers and Footers
  • Tables
  • Lists
  • Sections
  • Artifacts

In addition it also shows how to use the tags in a PDF document to detect and change content within it. This includes some code relevant to eSignLive signatures.

Usefully it provides a method of extracting the tagged structure of any PDF document to an HTML-like format you can easily examine.

AdvancedGraphics Example Project

This project shows how to use ABCpdf to write PDF drawing operators and content streams.

Writing drawing operators to a content stream represents a lower level approach than the standard ABCpdf APIs. It provides a sophisticated level of control but it is rather more complicated to code.

It is probably more appropriate for more drawing based routines where you need paths, clips, fills, shades and blends. It is probably less appropriate for text which can be very complex when presented at a low level.

For more details see the project or the Advanced Graphics Example section in this documentation.

Annotations Example Project

This shows how to use ABCpdf to create form fields and document annotations.

Form fields are similar to HTML fields and encompass similar structures such as text boxes, radio buttons, check boxes, list boxes, signatures and push buttons.

Annotations are interactive in the same way as form fields but they do not hold a value to be submitted. There are a very wide variety of annotations you can create and these include stamps, notes, highlights, lines, arrows, rectangles and 3D scenes.

In particular this project shows how to create electronic signatures, how to sign them programmatically, how to check the validity of any signed signatures and how to use incremental updates to allow successive signings by a chain of people.

For more details see the project or the Fields, Markup and Movies Example section in this documentation.

Annotations.pdf - page 1

Annotations.pdf - page 2

ContentExtract Example Project

The name of this project may be somewhat uninspiring, but it is a wonderful tool which allows you to view and manipulate the content of PDF documents.

So rather than an example project, this is more of a utility. You have the source so it is easy to adapt to your needs, however for most requirements it should be fine as-is.

This utility allows you to open a PDF and see the individual objects within it. It has a search function so you can search for all objects matching a particular structure or perhaps referencing another specific object. You can edit objects and then resave the document.

Indeed you can even decompress and edit a content stream for a particular page and see the changes to the rendered appearance in real time. As you type into the content stream, the rendered page changes.

For getting to know how PDF documents and content streams work, this is an invaluable tool.

Screenshot of ContentExtract

FontUnembedment Example Project

The project detailed here shows how to un-embed and re-embed fonts.

There is a certain amount of overlap between this project and existing classes within ABCpdf. For example the ReduceSizeOperation class provides a simple way to un-embed fonts, while the FontObject class provides methods for embedding, un-embedding and subsetting fonts.

However the FontUnembedment project provides more careful control over the process and may be preferable where this is required.

GetColors Example Project

This project shows how to find the colors used in a document.

One has to be a little careful about this concept - these things are not as straightforward as they might appear.

For example in a shading pattern there may be only two colors but of course a shade involves a variety of colors between these two points. Similarly an image may contain only two colors but the process of resizing it for display at a particular resolution may result in the creation of additional intermediate colors. Indeed the particular intermediate colors used may vary dependent on the resolution.

Likewise a page may reference a particular color, but for a variety of reasons, that color may not be displayed. For example it might be part of an object which is clipped, or it might be obscured by another item that is drawn a bit later, or it might be referenced but never actually used in an object.

However, with those caveats, it is sometimes useful to be able to count and retrieve the colors that are referenced. This project shows how this can be done. It reads the document pages and keeps track of the colors and color spaces that are referenced in the content stream. Finally it displays the answer.

In addition to being useful for counting colors, this project also provides a good example of how the OpAtom and ContentStreamOperation classes can be used to analyze a page content stream and graphic state. So if you are wanting to do low level analysis of page content, this is a good place to start.

HTMLTables Example Project

The project detailed here shows how to create PDF tables based on an HTML type input.

There is a certain amount of overlap between this project, the WPFTables and the PDFTable Example project. All do similar things in slightly different ways.

This project is based on HTML style input rather than programmatic control or WPF.

OCGLayers Example Project

The term OCG refers to Optional Content Groups. These are what most people would conceptualize as visible layers (not to be confused with the Doc.Layer concept).

OCGs allow you to specify content that may be visible or invisible. As a user, you can see the names of the OCGs that exist and you can turn them on or off to see or hide the respective content.

It is a mistake to think of OCGs as pure layers, as the rules associated with them can be quite sophisticated. Each content item on the page may be associated with one or more nested visibility groups and it is only if all these groups are visible that the content item is visible. While visibility groups are often OCGs they can also be Optional Content Membership Dictionaries (OCMD items) - a construct that determines visibility from a set of OCGs using a set of custom written rules. So visibility can be complex and items with visibility may be interleaved rather than conceptually part of a simple contiguous layer.

That said, it is quite common for simple OCG setups to mimic simple contiguous layers as this is what most people require.

This project shows how to create content with visibility determined using OCGs. It also includes more complex examples detailing the use of nested OCGs and OCMDs.

As well as creating layers it also shows shows how to turn OCGs on and off, annotate the items on a page based on the OCGs that they belong to and how to redact and delete invisible items, removing any associated OCGs.

PDFEnterpriseServices Example Project

Normally when you use ABCpdf, it operates in process as part of your application.

In some situations it may be useful have it operate out of process. This provides a number of benefits.

  • It allows your code to run in a completely different process from your web code thus isolating the two.
  • It allows you complete control over the user which your code runs as without impacting the security of your web code. All you do is change the user using the Component Services Administration Tool.
  • Because your web code and your ABCpdf code are operating in different address spaces there is more free space in each process.
  • You can tell your component package to shut itself down when it's not being used.

The simplest way to do this is to use the .NET Enterprise Services structures. These have gone through a variety of iterations - MFC, COM+ and currently .NET Enterprise Services. The names themselves are a bit of a misnomer. For example COM+ is not really COM plus something extra. COM is a way of calling functions in a DLL while COM+ is an architecture which can be used to host application services - two completely different things. Similarly .NET Enterprise Services is not entirely .NET as it relies on COM concepts for implementation.

A lot of what you can read on the internet states that .NET Enterprise Services is legacy. There is some truth in this as the architecture is based around technologies created many years ago. However the reality is that these technologies are still very much in use because the .NET equivalents are not that wonderful. The closest that exists is probably Windows Communication Foundation (WCF) but this is vastly complicated and difficult to control; cryptic config files and do-or-die options. The .NET Enterprise Services equivalent involves opening up the Component Services control panel, checking a few boxes and then watch the cabbages (your objects) spin. A bit of legacy yes, but also a whole lot of mature.

The PDFEnterpriseServices example project under the ABCpdf .NET menu item shows you how to set up a .NET Enterprise Services Component for converting HTML into PDF. This is relevant only for the MSHTML engine as both the ABCGecko and ABCChrome engines already operate out of process.

PDFTable Example Project

The project detailed here shows how to create PDF tables based on programmatic control.

There is a certain amount of overlap between this project, the WPFTables and the HTMLTables Example project. All do similar things in slightly different ways.

This project is based on programmatic control rather than HTML style input or WPF.

You can read more about how to use this project in the Small Table Example and Large Table Example sections of this document.

Print Example Project

This project demonstrates our preferred method of printing documents using ABCpdf under .NET.

There are a variety of ways that printing can be implemented under .NET. For example:

  • Via the Windows Printing APIs
  • Via the .NET Printing APIs
  • Via XPS

In addition some printers may support direct printing of certain formats. For example,

  • PostScript
  • Printer Control Language (PCL)
  • PDF
  • XPS

Our experience is that the Printing APIs provide the most reliable route. However we also find that there can be a significant overhead using the .NET APIs as opposed to the native ones. This seems to be printer dependent but can change the speed by an order of magnitude.

As such we feel that the fastest and most reliable printing method is via the Windows Printing APIs. However if you prefer to use the .NET Printing APIs you can find example code in the ABCpdfView example project.

Redaction Example Project

The project detailed here shows how to redact or delete text and images from a document.

The code uses a variety of criteria to determine the items to be redacted. The most obvious one is an area of interest. As such, we have examples showing how to redact text or images in a particular area on a page.

However other criteria are also possible. Other examples show delete specific words from a document or how to select and delete text based on text font and styling.

ReferenceXObject Example Project

The project detailed here shows how to convert images to Reference XObjects.

In most cases a PDF document contains the images it wants to display. That way you have one package - the PDF document - which contains everything it needs.

However sometimes it can be advantageous to hold images externally, much like as happens in HTML. This way you can swap one image out for another and you keep the base template document the same.

This project shows how to take a PDF document and convert it into a base template referencing separate external image documents.

SwfExport Example Project

Flash (SWF) export can be both simple or sophisticated based on your needs.

At the simplest all you need to do is Doc.Save your document as SWF.

However the SWF content really needs to exist in the context of a controller. This example shows how you can use your own template to provide navigation and information functions.

It shows how to wrap the output in a package which might look like a book or a brochure or perhaps a slide show.

TaggedPDF Example Project

PDF documents can contain tags to indicate semantic structure.

This example shows how to create tagged documents using a low level approach.

It takes content specified as XML and converts it to content and associated tags.

ValidatePDF Example Project

The Elements namespace allows structured access to the PDF Objects that exist.

As part of this structure it is possible to validate each of the objects in a document to ensure that they conform to the PDF Specification.

The validation covers the properties that each object may contain, the values that each property may take and the version of the PDF specification that is required for these properties to be valid.

This project shows how to use the Elements namespace to validate documents and report any information or irregularities.

Viewer3D Example Project

The Viewer3D project contains a control for interactive viewing of 3D objects in PDF documents.

It supports the PDF 3D standards - U3D and PRC. So by extracting this information from your documents you can then view your 3D models.

This project includes the 3D control inside an application wrapper so you can easily see what it can do.

WebPageSnapshot Example Project

One of the most common operations that people want to perform is to take a PDF snapshot of the current page.

However this can be more complicated than one might imagine in the case of a personalized page. The page your user is seeing exists only for them. ABCpdf may know the URL of the page but it lives on the server and it is not your client - it has its own page. You can attempt to mimic the client by copying cookies or security tokens but this is fraught with difficulty as it may look like some kind of spoofing attempt. Just because you know the operation is valid does not mean your server will think it is.

This project demonstrates how to use an alternative and more robust approach to creating such a page snapshot. It intercepts the HTML which was passed to the client and then treats that as a separate page. It is simple and fast and it is good for situations involving authentication and security. It makes use of privileges it already has by virtue of being on the server, rather than trying to obtain privileges by impersonating the client.

WPFTable Example Project

The project detailed here shows how to create PDF tables based on Windows Presentation Foundation (WPF) content.

There is a certain amount of overlap between this project, the PDFTables and the HTMLTables Example project. All do similar things in slightly different ways.

This project is based on WPF structure rather than programmatic control or HTML style input. The WPF structure that exists is halfway between the type of layout control you get in HTML and the control you get in a more graphics oriented API like System.Drawing. It is sophisticated enough for document layout but with more complicated document layout structures you start to run into areas in which the structure constrains rather than enables.

You can read more about this and how to use this project in the WPF Tables Example section of this document.

ABCpdf Example Web Site

The example ASP.NET web site is the same one we use for our online demonstration.

It allows you to create and edit a document using a simple online system. You can do things like upload images, add text and graphics and render and download the finished PDF.

The user interface is not sophisticated as the aim is to expose ABCpdf code rather than confuse things with complicated JavaScript. So the simplicity of the interface belies the sophistication of the underlying ABCpdf functionality.

Because the site is intended for live use, it is not totally self contained and may require some of our other components.


Text Flow Example

This example shows how to flow text from one area to another. The techniques shown here are used to flow text between pages but they could equally well be applied to flowing text between areas - such as columns - on the same page.

Setup

First we'll set up some convenient variables. One will determine the gap between our columns and the other will contain the text we want to display.

[C#]

int theID = 0;
    string theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. Hi omnes lingua, institutis, legibus inter se differunt. Gallos ab Aquitanis Garumna flumen, a Belgis Matrona et Sequana dividit. Horum omnium fortissimi sunt Belgae, propterea quod a cultu atque humanitate provinciae longissime absunt, minimeque ad eos mercatores saepe commeant atque ea quae ad effeminandos animos pertinent important, proximique sunt Germanis, qui trans Rhenum incolunt, quibuscum continenter bellum gerunt. Qua de causa Helvetii quoque reliquos Gallos virtute praecedunt, quod fere cotidianis proeliis cum Germanis contendunt, cum aut suis finibus eos prohibent aut ipsi in eorum finibus bellum gerunt. [Eorum una, pars, quam Gallos obtinere dictum est, initium capit a flumine Rhodano, continetur Garumna flumine, Oceano, finibus Belgarum, attingit etiam ab Sequanis et Helvetiis flumen Rhenum, vergit ad septentriones. Belgae ab extremis Galliae finibus oriuntur, pertinent ad inferiorem partem fluminis Rheni, spectant in septentrionem et orientem solem. Aquitania a Garumna flumine ad Pyrenaeos montes et eam partem Oceani quae est ad Hispaniam pertinet; spectat inter occasum solis et septentriones.] Apud Helvetios longe nobilissimus fuit et ditissimus Orgetorix. Is M. Messala, [et P.] M. Pisone consulibus regni cupiditate inductus coniurationem nobilitatis fecit et civitati persuasit ut de finibus suis cum omnibus copiis exirent: perfacile esse, cum virtute omnibus praestarent, totius Galliae imperio potiri. Id hoc facilius iis persuasit, quod undique loci natura Helvetii continentur: una ex parte flumine Rheno latissimo atque altissimo, qui agrum Helvetium a Germanis dividit; altera ex parte monte Iura altissimo, qui est inter Sequanos et Helvetios; tertia lacu Lemanno et flumine Rhodano, qui provinciam nostram ab Helvetiis dividit. His rebus fiebat ut et minus late vagarentur et minus facile finitimis bellum inferre possent; qua ex parte homines bellandi cupidi magno dolore adficiebantur. Pro multitudine autem hominum et pro gloria belli atque fortitudinis angustos se fines habere arbitrabantur, qui in longitudinem milia passuum CCXL, in latitudinem CLXXX patebant.";

[Visual Basic]
Dim theID As Integer = 0
Dim theText As String = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. Hi omnes lingua, institutis, legibus inter se differunt. Gallos ab Aquitanis Garumna flumen, a Belgis Matrona et Sequana dividit. Horum omnium fortissimi sunt Belgae, propterea quod a cultu atque humanitate provinciae longissime absunt, minimeque ad eos mercatores saepe commeant atque ea quae ad effeminandos animos pertinent important, proximique sunt Germanis, qui trans Rhenum incolunt, quibuscum continenter bellum gerunt. Qua de causa Helvetii quoque reliquos Gallos virtute praecedunt, quod fere cotidianis proeliis cum Germanis contendunt, cum aut suis finibus eos prohibent aut ipsi in eorum finibus bellum gerunt. [Eorum una, pars, quam Gallos obtinere dictum est, initium capit a flumine Rhodano, continetur Garumna flumine, Oceano, finibus Belgarum, attingit etiam ab Sequanis et Helvetiis flumen Rhenum, vergit ad septentriones. Belgae ab extremis Galliae finibus oriuntur, pertinent ad inferiorem partem fluminis Rheni, spectant in septentrionem et orientem solem. Aquitania a Garumna flumine ad Pyrenaeos montes et eam partem Oceani quae est ad Hispaniam pertinet; spectat inter occasum solis et septentriones.] Apud Helvetios longe nobilissimus fuit et ditissimus Orgetorix. Is M. Messala, [et P.] M. Pisone consulibus regni cupiditate inductus coniurationem nobilitatis fecit et civitati persuasit ut de finibus suis cum omnibus copiis exirent: perfacile esse, cum virtute omnibus praestarent, totius Galliae imperio potiri. Id hoc facilius iis persuasit, quod undique loci natura Helvetii continentur: una ex parte flumine Rheno latissimo atque altissimo, qui agrum Helvetium a Germanis dividit; altera ex parte monte Iura altissimo, qui est inter Sequanos et Helvetios; tertia lacu Lemanno et flumine Rhodano, qui provinciam nostram ab Helvetiis dividit. His rebus fiebat ut et minus late vagarentur et minus facile finitimis bellum inferre possent; qua ex parte homines bellandi cupidi magno dolore adficiebantur. Pro multitudine autem hominum et pro gloria belli atque fortitudinis angustos se fines habere arbitrabantur, qui in longitudinem milia passuum CCXL, in latitudinem CLXXX patebant."

Doc Obj

Next we create an ABCpdf Doc object and give it our basic settings.

We enlarge the line width, increase the font size, enable justification and inset the drawing rectangle from the edges of the document.

[C#]

using (Doc doc = new Doc()) {
  doc.Width = 4;
  doc.FontSize = 32;
  doc.TextStyle.Justification = 1;
  doc.Rect.Inset(20, 20);

[Visual Basic]
Using doc As New Doc()
  doc.Width = 4
  doc.FontSize = 32
  doc.TextStyle.Justification = 1
  doc.Rect.Inset(20, 20)

Adding

We add our base text to the current page of the document. We then enter a loop, adding pages and chaining HTML boxes together until we run out of text to display.

[C#]

  doc.FrameRect();
  theID = doc.AddTextStyled(theText);
  while (doc.Chainable(theID)) {
    doc.Page = doc.AddPage();
    doc.FrameRect();
    theID = doc.AddTextStyled("", theID);
  }

[Visual Basic]
  doc.FrameRect()
  theID = doc.AddTextStyled(theText)
  While doc.Chainable(theID)
    doc.Page = doc.AddPage()
    doc.FrameRect()
    theID = doc.AddTextStyled("", theID)
  End While

Save

After adding all our text we save the document to a specified location and clear our document.

[C#]

  doc.Save(Server.MapPath("textflow.pdf"));
}

[Visual Basic]
  doc.Save(Server.MapPath("textflow.pdf"))
End Using

Results

textflow.pdf [Page 1]

textflow.pdf [Page 2]

textflow.pdf [Page 3]


Text Flow Round Image Example

This example shows how to flow text around an image. The techniques shown here may be used in conjunction with the Text Flow example which shows how to flow text between areas on the same or different pages.

Setup

First we'll set up a convenient variable to contain the text we want to display.

[C#]

// text truncated for clarity
string text = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. Hi omnes...";

[Visual Basic]
' text truncated for clarity
Dim text As String = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. Hi omnes..."

Doc Obj

Next we create an ABCpdf Doc object and give it our basic settings.

We enlarge the line width, increase the font size, enable justification and inset the drawing rectangle from the edges of the document.

[C#]

using (Doc doc = new Doc()) {
  doc.Width = 4;
  doc.FontSize = 32;
  doc.TextStyle.Justification = 1;
  doc.Rect.Inset(20, 20);

[Visual Basic]
Using doc As New Doc()
  doc.Width = 4
  doc.FontSize = 32
  doc.TextStyle.Justification = 1
  doc.Rect.Inset(20, 20)

Image

We save the rect since we're going to need it later. Then we add an image to the left hand side of the page. This is the image we are going to flow around.

[C#]

  string saveRect = doc.Rect.String;
  using (XImage xi = XImage.FromFile(Server.MapPath("mypics/pic.jpg"), null)) {
    doc.Rect.Resize(xi.Width / 2, xi.Height / 2, XRect.Corner.TopLeft);
    doc.AddImage(xi);
  }

[Visual Basic]
  Dim saveRect As String = doc.Rect.String
  Using xi As XImage = XImage.FromFile(Server.MapPath("mypics/pic.jpg"), Nothing)
    doc.Rect.Resize(xi.Width / 2, xi.Height / 2, XRect.Corner.TopLeft)
    doc.AddImage(xi)
  End Using

Text

The crucial part occurs here which is where we set up the variable left margins to ensure that our text is shifted away from the image. If we had images on the right we would want to use variable right margins too. But here it is not necessary.

[C#]

  double padX = doc.FontSize;
  double padY = doc.FontSize / 3.0;
  string format = "<stylerun justification=\"1.0\" leftmargins=\"0 {0} {1}\">";
  string style = string.Format(format, doc.Rect.Height + padY, doc.Rect.Width + padX);

[Visual Basic]
  Dim padX As Double = doc.FontSize
  Dim padY As Double = doc.FontSize / 3.0
  Dim format As String = "<stylerun justification=""1.0"" leftmargins=""0 {0} {1}"">"
  Dim style As String = String.Format(format, doc.Rect.Height + padY, doc.Rect.Width + padX)

Save

After adding and framing our text we save the document to a specified location and clear our document.

[C#]

  doc.Rect.String = saveRect;
  doc.FrameRect();
  int id = doc.AddTextStyled(style + text + "</stylerun>");
  doc.Save(Server.MapPath("textflowroundimage.pdf"));
}

[Visual Basic]
  doc.Rect.String = saveRect
  doc.FrameRect()
  Dim id As Integer = doc.AddTextStyled(style + text + "</stylerun>")
  doc.Save(Server.MapPath("textflowroundimage.pdf"))
End Using

Results

textflowroundimage.pdf


Multistyle Example

This example shows how to create multistyled text.

Setup

We want to display all our proper names in bold so we enclose them in bold tags.

[C#]

string theText = "<b>Gallia</b> est omnis divisa in partes tres, quarum unam incolunt <b>Belgae</b>, aliam <b>Aquitani</b>, tertiam qui ipsorum lingua <b>Celtae</b>, nostra <b>Galli</b> appellantur.";

[Visual Basic]
Dim theText As String = "<b>Gallia</b> est omnis divisa in partes tres, quarum unam incolunt <b>Belgae</b>, aliam <b>Aquitani</b>, tertiam qui ipsorum lingua <b>Celtae</b>, nostra <b>Galli</b> appellantur."

Doc Obj

Next we create an ABCpdf Doc object and give it some basic settings. Although we could pass our styled text directly to the AddTextStyled function, we can take more control over the way that fonts are added to the PDF if we specify font IDs.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 72;
  doc.Rect.Inset(10, 10);
  doc.FrameRect();
  int theFont1 = doc.EmbedFont("Verdana", LanguageType.Latin, false, true);
  int theFont2 = doc.EmbedFont("Verdana Bold", LanguageType.Latin, false, true);

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 72
  doc.Rect.Inset(10, 10)
  doc.FrameRect()
  Dim theFont1 As Integer = doc.EmbedFont("Verdana", LanguageType.Latin, False, True)
  Dim theFont2 As Integer = doc.EmbedFont("Verdana Bold", LanguageType.Latin, False, True)

Adding

We replace the bold tags with font tags that directly reference our chosen fonts and then add the styled text to the current rectangle.

[C#]

  theText = "<font pid=" + theFont1.ToString() + ">" + theText + "</font>";
  theText = theText.Replace("<b>", "<font pid=" + theFont2.ToString() + ">");
  theText = theText.Replace("</b>", "</font>");
  doc.AddTextStyled(theText);

[Visual Basic]
  theText = "<font pid=" + theFont1.ToString() + ">" + theText + "</font>"
  theText = theText.Replace("<b>", "<font pid=" + theFont2.ToString() + ">")
  theText = theText.Replace("</b>", "</font>")
  doc.AddTextStyled(theText)

Save

Finally we save and clear the document.

[C#]

  doc.Save(Server.MapPath("styles.pdf"));
}

[Visual Basic]
  doc.Save(Server.MapPath("styles.pdf"))
End Using

Results

styles.pdf


Image Example

This example shows how to create a simple PDF displaying an image.

Image

First we create an ABCpdf Image object and we assign our image file.

[C#]

XImage theImg = new XImage();
theImg.SetFile(Server.MapPath("../mypics/pic.jpg"));

[Visual Basic]
Dim theImg As New XImage()
theImg.SetFile(Server.MapPath("../mypics/pic.jpg"))

Doc

Next we create an ABCpdf Doc object.

When we add our image it will be scaled to fit the current rect so it is important that we adjust the rect to reflect the dimensions of our image. Here we assume a one to one ratio between pixels and points which will give us a 72 dpi result when printed.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Left = 50;
  doc.Rect.Bottom = 25;
  doc.Rect.Width = theImg.Width;
  doc.Rect.Height = theImg.Height;
  doc.AddImageObject(theImg, false);
  doc.Save(Server.MapPath("image.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Left = 50
  doc.Rect.Bottom = 25
  doc.Rect.Width = theImg.Width
  doc.Rect.Height = theImg.Height
  doc.AddImageObject(theImg, False)
  doc.Save(Server.MapPath("image.pdf"))
End Using

Results

image.pdf


Deletion Example

This example shows how to delete pages from a PDF document.

Setup

First we create an ABCpdf Doc object and read our source document. We store the number of pages we're going to delete - we're going to delete all but one.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/sample.pdf"));
  int theCount = doc.PageCount - 1;

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/sample.pdf"))
  Dim theCount As Integer = doc.PageCount - 1

Delete

We go round a loop deleting the second page each time.

[C#]

  for (int i = 0; i < theCount; i++) {
    doc.PageNumber = 2;
    doc.Delete(doc.Page);
  }

[Visual Basic]
  Dim i As Integer = 0
  While i < theCount
    doc.PageNumber = 2
    doc.Delete(doc.Page)
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While

Save

We add some text to the PDF so that we know how many pages we've deleted. Finally we save the PDF.

[C#]

  doc.FontSize = 500;
  doc.Color.String = "255 0 0";
  doc.TextStyle.HPos = 0.5;
  doc.TextStyle.VPos = 0.3;
  doc.AddText(theCount.ToString());
  doc.Save(Server.MapPath("deletion.pdf"));
}

[Visual Basic]
  doc.FontSize = 500
  doc.Color.String = "255 0 0"
  doc.TextStyle.HPos = 0.5
  doc.TextStyle.VPos = 0.3
  doc.AddText(theCount.ToString())
  doc.Save(Server.MapPath("deletion.pdf"))
End Using

Results

deletion.pdf


Headers and Footers Example

This example shows one method of adding headers and footers.

Setup

First we create an ABCpdf Doc object and define the content we're going to be adding.

[C#]

using (Doc doc = new Doc()) {
  int theID, theCount;
  string theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. Hi omnes lingua, institutis, legibus inter se differunt. Gallos ab Aquitanis Garumna flumen, a Belgis Matrona et Sequana dividit. Horum omnium fortissimi sunt Belgae, propterea quod a cultu atque humanitate provinciae longissime absunt, minimeque ad eos mercatores saepe commeant atque ea quae ad effeminandos animos pertinent important, proximique sunt Germanis, qui trans Rhenum incolunt, quibuscum continenter bellum gerunt. Qua de causa Helvetii quoque reliquos Gallos virtute praecedunt, quod fere cotidianis proeliis cum Germanis contendunt, cum aut suis finibus eos prohibent aut ipsi in eorum finibus bellum gerunt. [Eorum una, pars, quam Gallos obtinere dictum est, initium capit a flumine Rhodano, continetur Garumna flumine, Oceano, finibus Belgarum, attingit etiam ab Sequanis et Helvetiis flumen Rhenum, vergit ad septentriones. Belgae ab extremis Galliae finibus oriuntur, pertinent ad inferiorem partem fluminis Rheni, spectant in septentrionem et orientem solem. Aquitania a Garumna flumine ad Pyrenaeos montes et eam partem Oceani quae est ad Hispaniam pertinet; spectat inter occasum solis et septentriones.] Apud Helvetios longe nobilissimus fuit et ditissimus Orgetorix. Is M. Messala, [et P.] M. Pisone consulibus regni cupiditate inductus coniurationem nobilitatis fecit et civitati persuasit ut de finibus suis cum omnibus copiis exirent: perfacile esse, cum virtute omnibus praestarent, totius Galliae imperio potiri. Id hoc facilius iis persuasit, quod undique loci natura Helvetii continentur: una ex parte flumine Rheno latissimo atque altissimo, qui agrum Helvetium a Germanis dividit; altera ex parte monte Iura altissimo, qui est inter Sequanos et Helvetios; tertia lacu Lemanno et flumine Rhodano, qui provinciam nostram ab Helvetiis dividit. His rebus fiebat ut et minus late vagarentur et minus facile finitimis bellum inferre possent; qua ex parte homines bellandi cupidi magno dolore adficiebantur. Pro multitudine autem hominum et pro gloria belli atque fortitudinis angustos se fines habere arbitrabantur, qui in longitudinem milia passuum CCXL, in latitudinem CLXXX patebant.";

[Visual Basic]
Using doc As New Doc()
  Dim theID As Integer, theCount As Integer
  Dim theText As String = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. Hi omnes lingua, institutis, legibus inter se differunt. Gallos ab Aquitanis Garumna flumen, a Belgis Matrona et Sequana dividit. Horum omnium fortissimi sunt Belgae, propterea quod a cultu atque humanitate provinciae longissime absunt, minimeque ad eos mercatores saepe commeant atque ea quae ad effeminandos animos pertinent important, proximique sunt Germanis, qui trans Rhenum incolunt, quibuscum continenter bellum gerunt. Qua de causa Helvetii quoque reliquos Gallos virtute praecedunt, quod fere cotidianis proeliis cum Germanis contendunt, cum aut suis finibus eos prohibent aut ipsi in eorum finibus bellum gerunt. [Eorum una, pars, quam Gallos obtinere dictum est, initium capit a flumine Rhodano, continetur Garumna flumine, Oceano, finibus Belgarum, attingit etiam ab Sequanis et Helvetiis flumen Rhenum, vergit ad septentriones. Belgae ab extremis Galliae finibus oriuntur, pertinent ad inferiorem partem fluminis Rheni, spectant in septentrionem et orientem solem. Aquitania a Garumna flumine ad Pyrenaeos montes et eam partem Oceani quae est ad Hispaniam pertinet; spectat inter occasum solis et septentriones.] Apud Helvetios longe nobilissimus fuit et ditissimus Orgetorix. Is M. Messala, [et P.] M. Pisone consulibus regni cupiditate inductus coniurationem nobilitatis fecit et civitati persuasit ut de finibus suis cum omnibus copiis exirent: perfacile esse, cum virtute omnibus praestarent, totius Galliae imperio potiri. Id hoc facilius iis persuasit, quod undique loci natura Helvetii continentur: una ex parte flumine Rheno latissimo atque altissimo, qui agrum Helvetium a Germanis dividit; altera ex parte monte Iura altissimo, qui est inter Sequanos et Helvetios; tertia lacu Lemanno et flumine Rhodano, qui provinciam nostram ab Helvetiis dividit. His rebus fiebat ut et minus late vagarentur et minus facile finitimis bellum inferre possent; qua ex parte homines bellandi cupidi magno dolore adficiebantur. Pro multitudine autem hominum et pro gloria belli atque fortitudinis angustos se fines habere arbitrabantur, qui in longitudinem milia passuum CCXL, in latitudinem CLXXX patebant."

Content

We set up the style for our content.

We need to specify the Rect defining the area in which content will be inserted, a color (red) and a font size.

We add the text using the same method as employed in the Text Flow Example. We draw a frame round our content area each time so we can see how the text has been positioned.

[C#]

  doc.Rect.String = "100 200 500 600";
  doc.Color.String = "255 0 0";
  doc.FontSize = 24;
  theID = doc.AddTextStyled(theText);
  doc.FrameRect();
  while (doc.Chainable(theID)) {
    doc.Page = doc.AddPage();
    theID = doc.AddTextStyled("", theID);
    doc.FrameRect();
  }
  theCount = doc.PageCount;

[Visual Basic]
  doc.Rect.String = "100 200 500 600"
  doc.Color.String = "255 0 0"
  doc.FontSize = 24
  theID = doc.AddTextStyled(theText)
  doc.FrameRect()
  While doc.Chainable(theID)
    doc.Page = doc.AddPage()
    theID = doc.AddTextStyled("", theID)
    doc.FrameRect()
  End While
  theCount = doc.PageCount

Header

We set up the style for our header.

We need to specify the Rect defining the area in which the header will be inserted, a color (green) and a font size. We use the HPos and VPos parameters to center the text both horizontally and vertically.

We then iterate through the pages in the document adding headers as we go. We frame our headers so we can see the header area.

[C#]

  doc.Rect.String = "100 650 500 750";
  doc.TextStyle.HPos = 0.5;
  doc.TextStyle.VPos = 0.5;
  doc.Color.String = "0 255 0";
  doc.FontSize = 36;
  for (int i = 1; i <= theCount; i++) {
    doc.PageNumber = i;
    doc.AddText("De Bello Gallico");
    doc.FrameRect();
  }

[Visual Basic]
  doc.Rect.String = "100 650 500 750"
  doc.TextStyle.HPos = 0.5
  doc.TextStyle.VPos = 0.5
  doc.Color.String = "0 255 0"
  doc.FontSize = 36
  Dim i As Integer = 1
  While i <= theCount
    doc.PageNumber = i
    doc.AddText("De Bello Gallico")
    doc.FrameRect()
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While

Footer

We set up the style for our footer.

We need to specify the Rect defining the area in which the footer will be inserted, a color (blue) and a font size. We use the HPos and VPos parameters to center the text vertically and align it to the right.

We then iterate through the pages in the document adding footers as we go. We frame our footers so we can see the footer area.

[C#]

  doc.Rect.String = "100 50 500 150";
  doc.TextStyle.HPos = 1.0;
  doc.TextStyle.VPos = 0.5;
  doc.Color.String = "0 0 255";
  doc.FontSize = 36;
  for (int i = 1; i <= theCount; i++) {
    doc.PageNumber = i;
    doc.AddText("Page " + i.ToString() + " of " + theCount.ToString());
    doc.FrameRect();
  }

[Visual Basic]
  doc.Rect.String = "100 50 500 150"
  doc.TextStyle.HPos = 1.0
  doc.TextStyle.VPos = 0.5
  doc.Color.String = "0 0 255"
  doc.FontSize = 36
  Dim i As Integer = 1
  While i <= theCount
    doc.PageNumber = i
    doc.AddText("Page " + i.ToString() + " of " + theCount.ToString())
    doc.FrameRect()
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While

Save

Finally we save the PDF.

[C#]

  doc.Save(Server.MapPath("headerfooter.pdf"));
}

[Visual Basic]
  doc.Save(Server.MapPath("headerfooter.pdf"))
End Using

Results
headerfooter.pdf [Page 1] | headerfooter.pdf [Page 2]
headerfooter.pdf [Page 3] | headerfooter.pdf [Page 4]


Landscape Example

This example shows how to create a PDF document rotated by 90 degrees for a landscape rather than portrait view.

Setup

We start by creating a PDF document. We use two transforms to apply a generic 90 degree rotation around the center of the document and rotate the drawing rectangle by the same amount. After applying our rotation we add some text to the page.

[C#]

using (Doc doc = new Doc()) {
  // apply a rotation transform
  double w = doc.MediaBox.Width;
  double h = doc.MediaBox.Height;
  double l = doc.MediaBox.Left;
  double b = doc.MediaBox.Bottom;
  doc.Transform.Rotate(90, l, b);
  doc.Transform.Translate(w, 0);

  // rotate our rectangle
  doc.Rect.Width = h;
  doc.Rect.Height = w;

  // add some text
  doc.Rect.Inset(50, 50);
  doc.FontSize = 96;
  doc.AddText("Landscape Orientation");

[Visual Basic]
Using doc As New Doc()
  ' apply a rotation transform
  Dim w As Double = doc.MediaBox.Width
  Dim h As Double = doc.MediaBox.Height
  Dim l As Double = doc.MediaBox.Left
  Dim b As Double = doc.MediaBox.Bottom
  doc.Transform.Rotate(90, l, b)
  doc.Transform.Translate(w, 0)

  ' rotate our rectangle
  doc.Rect.Width = h
  doc.Rect.Height = w

  ' add some text
  doc.Rect.Inset(50, 50)
  doc.FontSize = 96
  doc.AddText("Landscape Orientation")

Rotate

Drawing the text rotated does not rotate the page itself. To change the default orientation of the document we need to apply a rotation to the root page object. By doing this we ensure that every page in the document is viewed rotated.

[C#]

  // adjust the default rotation and save
  int theID = doc.GetInfoInt(doc.Root, "Pages");
  doc.SetInfo(theID, "/Rotate", "90");
  doc.Save(Server.MapPath("landscape.pdf"));
}

[Visual Basic]
  ' adjust the default rotation and save
  Dim theID As Integer = doc.GetInfoInt(doc.Root, "Pages")
  doc.SetInfo(theID, "/Rotate", "90")
  doc.Save(Server.MapPath("landscape.pdf"))
End Using

Results

landscape.pdf


Small Table Example

This example shows how to draw a single page table. ABCpdf does not provide table drawing routines itself so this example uses a Table Class to position the table elements.

You can find the full project and classes under the ABCpdf menu item. The project includes code for laying out a small table, a large table spreading over more than one page, an invoice and a product list.

Setup

We start by creating our document object and reading the data for our table. For the purposes of this example we'll assume that our data is in a standard tab delimited format.

[C#]

string theText = File.ReadAllText(Server.MapPath("text6.txt"));
using (Doc doc = new Doc()) {
  // set up document
  doc.FontSize = 16;
  doc.Rect.Inset(20, 20);

[Visual Basic]
Dim theText As String = File.ReadAllText(Server.MapPath("text6.txt"))
Using doc As New Doc()
  ' set up document
  doc.FontSize = 16
  doc.Rect.Inset(20, 20)

Rotate

We create a new table object passing in values to tell it what rectangle it can occupy (it takes the current document rectangle) and how many columns of data it should be prepared for.

Columns are assigned relative widths and expand horizontally to fit the table rectangle. Here we're specifying five columns.

Most of our columns will be right aligned so we set the default horizontal alignment to 1.

[C#]

  PDFTable theTable = new PDFTable(doc, 5);
  theTable.CellPadding = 5;
  theTable.HorizontalAlignment = 1;

[Visual Basic]
  Dim theTable As New PDFTable(doc, 5)
  theTable.CellPadding = 5
  theTable.HorizontalAlignment = 1

Add

We iterate through the table data adding rows as we go. We override the right alignment for the first column and we shade alternating rows using a light gray color. Finally we frame the table and save the document.

[C#]

  theText = theText.Trim();
  theText = theText.Replace("\r\n", "\r");
  string[] theRows = theText.Split(new char[] { '\r' });

  for (int i = 0; i < theRows.Length; i++) {
    theTable.NextRow();
    string[] theCols = theRows[i].Split(new char[] { '\t' });
    theCols[0] = "<stylerun hpos=0>" + theCols[0] + "</stylerun>";
    theTable.AddTextStyled(theCols);
    if ((i % 2) == 1)
      theTable.FillRow("220 220 220", i);
  }
  theTable.Frame();

  doc.Flatten();
  doc.Save(Server.MapPath("table1.pdf"));
}

[Visual Basic]
  theText = theText.Trim()
  theText = theText.Replace(vbCr & vbLf, vbCr)
  Dim theRows As String() = theText.Split(New Char() {ControlChars.Cr})

  Dim i As Integer = 0
  While i < theRows.Length
    theTable.NextRow()
    Dim theCols As String() = theRows(i).Split(New Char() {ControlChars.Tab})
    theCols(0) = "<stylerun hpos=0>" + theCols(0) + "</stylerun>"
    theTable.AddTextStyled(theCols)
    If (i Mod 2) = 1 Then
      theTable.FillRow("220 220 220", i)
    End If
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While
  theTable.Frame()

  doc.Flatten()
  doc.Save(Server.MapPath("table1.pdf"))
End Using

Results

Using the following input data:

Planet Distance From Sun (miles) Diameter (miles) Year Length (days) Day Length (days)
Mercury 36,000,000 3,030 88 58.00
Venus 67,000,000 7,520 225 225.00
Earth 93,000,000 7,925 365 1.00
Mars 142,000,000 4,210 687 1.00
Jupiter 484,000,000 88,730 4,344 0.40
Saturn 888,000,000 74,975 10,768 0.40
Uranus 1,800,000,000 31,760 30,660 0.70
Neptune 2,800,000,000 30,600 60,150 0.65
Pluto 3,600,000,000 1,410 90,520 0.25

We get the following output.

table1.pdf


Large Table Example

This example shows how to draw a multi-page table. ABCpdf does not provide table drawing routines itself so this example uses a Table Class to position the table elements.

You can find the full project and classes under the ABCpdf menu item. The project includes code for laying out a small table, a large table spreading over more than one page, an invoice and a product list.

Setup

We start by creating our document object and reading the data for our table. For the purposes of this example we'll assume that our data is in a standard tab delimited format.

[C#]

string theText = File.ReadAllText(Server.MapPath("text7.txt"));
using (Doc doc = new Doc()) {
  // set up document
  doc.FontSize = 12;
  doc.Rect.Inset(20, 20);

[Visual Basic]
Dim theText As String = File.ReadAllText(Server.MapPath("text7.txt"))
Using doc As New Doc()
  ' set up document
  doc.FontSize = 12
  doc.Rect.Inset(20, 20)

Rotate

We create a new table object passing in values to tell it what rectangle it can occupy (it takes the current document rectangle) and how many columns of data it should be prepared for.

Columns are assigned relative widths and expand horizontally to fit the table rectangle. Here we're specifying six columns and a number of relative widths. We're padding the cells so there are gaps between the rows and columns. Finally we specify a header which repeats as new pages are added.

[C#]

  PDFTable theTable = new PDFTable(doc, 6);
  // some columns extra width
  theTable.SetColumnWidths(new double[] { 2, 1, 3, 2, 1, 4 });
  theTable.CellPadding = 5;
  theTable.RepeatHeader = true;

[Visual Basic]
  Dim theTable As New PDFTable(doc, 6)
  ' some columns extra width
  theTable.SetColumnWidths(New Double() {2, 1, 3, 2, 1, 4})
  theTable.CellPadding = 5
  theTable.RepeatHeader = True

Add

We iterate through the table data adding rows and columns as we go. Every time we add a row we check to see if the page number has changed and restart the shading if it has. This ensures the header is always unshaded. Finally we save the document.

[C#]

  theText = theText.Replace("\r\n", "\r");
  string[] theRows = theText.Split(new char[] { '\r' });
  int thePage = 1;
  bool theShade = false;
  for (int i = 0; i < theRows.Length; i++) {
    theTable.NextRow();
    string[] theCols = theRows[i].Split(new char[] { '\t' });
    theTable.AddTextStyled(theCols);
    if (doc.PageNumber > thePage) {
      thePage = doc.PageNumber;
      theShade = true;
    }
    if (theShade)
      theTable.FillRow("200 200 200", theTable.Row);
    theShade = !theShade;
  }
  doc.Flatten();
  doc.Save(Server.MapPath("table2.pdf"));
}

[Visual Basic]
  theText = theText.Replace(vbCr & vbLf, vbCr)
  Dim theRows As String() = theText.Split(New Char() {ControlChars.Cr})
  Dim thePage As Integer = 1
  Dim theShade As Boolean = False
  Dim i As Integer = 0
  While i < theRows.Length
    theTable.NextRow()
    Dim theCols As String() = theRows(i).Split(New Char() {ControlChars.Tab})
    theTable.AddTextStyled(theCols)
    If doc.PageNumber > thePage Then
      thePage = doc.PageNumber
      theShade = True
    End If
    If theShade Then
      theTable.FillRow("200 200 200", theTable.Row)
    End If
    theShade = Not theShade
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While
  doc.Flatten()
  doc.Save(Server.MapPath("table2.pdf"))
End Using

Results

Using a large quantity of input data. We get the following output.

table2.pdf - [Page 1]

table2.pdf - [Page 2] | table2.pdf - [Page 3]
table2.pdf - [Page 4] | table2.pdf - [Page 5]


Unicode Example

This example shows how to add complex scripts such as Chinese, Japanese and Korean. Here we choose to embed and subset our font to ensure our document renders correctly on all platforms.

Setup

First we create an ABCpdf Doc object and set the font size.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 32;

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 32

Read

We read in our Japanese text from a Unicode text file.

[C#]

  string thePath = Server.MapPath("../Rez/Japanese2.txt");
  string theText = File.ReadAllText(thePath);

[Visual Basic]
  Dim thePath As String = Server.MapPath("../Rez/Japanese2.txt")
  Dim theText As String = File.ReadAllText(thePath)

Add

Because we want to ensure that our document renders correctly on all platforms we're going to embed our font in Unicode format. We specify a left-to-right writing direction and we choose to subset our font.

Please note when embedding fonts you must ensure you have permission to embed and redistribute the embedded font as part of your PDF.

[C#]

  doc.Page = doc.AddPage();
  doc.Font = doc.EmbedFont("MS PGothic", LanguageType.Unicode, false, true);
  doc.AddText("Japanese" + theText);

[Visual Basic]
  doc.Page = doc.AddPage()
  doc.Font = doc.EmbedFont("MS PGothic", LanguageType.Unicode, False, True)
  doc.AddText("Japanese" + theText)

Add

Just to show how it works we'll also render a page in vertical writing mode.

[C#]

  doc.Page = doc.AddPage();
  doc.Font = doc.EmbedFont("MS PGothic", LanguageType.Unicode, true, true);
  doc.AddText("Japanese" + theText);

[Visual Basic]
  doc.Page = doc.AddPage()
  doc.Font = doc.EmbedFont("MS PGothic", LanguageType.Unicode, True, True)
  doc.AddText("Japanese" + theText)

Save

Finally we save at a specified location.

[C#]

  doc.Save(Server.MapPath("unicode.pdf"));
}
// finished

[Visual Basic]
  doc.Save(Server.MapPath("unicode.pdf"))
End Using
' finished

Results

We get the following output.

unicode.pdf - [Page 1]
unicode.pdf - [Page 2]


Paged HTML Example

This example shows how to import an HTML page into a multi-page PDF document.

Setup

We first create a Doc object and inset the edges a little so that the HTML will appear in the middle of the page.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Inset(72, 144);

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Inset(72, 144)

Features

We set some HTML options to choose the HTML engine and features we are interested in. The defaults assigned here are set up for ease of development and you may wish to change some for release.

[C#]

  doc.HtmlOptions.Engine = EngineType.Chrome86;
  doc.HtmlOptions.UseScript = true; // enable JavaScript
  doc.HtmlOptions.Media = MediaType.Print; // Or Screen for a more screen oriented output
  doc.HtmlOptions.InitialWidth = 800; // In case we have a responsive site which is non-specific on good widths
  //doc.HtmlOptions.RepaintDelay = 500; // Only required if you have AJAX or animated content such as graphs
  //doc.HtmlOptions.IgnoreCertificateErrors = false; // Disabled for ease of debugging
  //doc.HtmlOptions.FireShield.Policy = XHtmlFireShield.Enforcement.Deny; // Disabled for ease of debugging

[Visual Basic]
  doc.HtmlOptions.Engine = EngineType.Chrome86
  doc.HtmlOptions.UseScript = True
  ' enable JavaScript
  doc.HtmlOptions.Media = MediaType.Print
  ' Or Screen for a more screen oriented output
  doc.HtmlOptions.InitialWidth = 800
  ' In case we have a responsive site which is non-specific on good widths
  'doc.HtmlOptions.RepaintDelay = 500; // Only required if you have AJAX or animated content such as graphs
  'doc.HtmlOptions.IgnoreCertificateErrors = false; // Disabled for ease of debugging
  'doc.HtmlOptions.FireShield.Policy = XHtmlFireShield.Enforcement.Deny; // Disabled for ease of debugging

Page

We add the first page of HTML. We save the returned ID as this will be used to add subsequent pages.

[C#]

  doc.Page = doc.AddPage();
  int theID;
  theID = doc.AddImageUrl("http://www.yahoo.com/");

[Visual Basic]
  doc.Page = doc.AddPage()
  Dim theID As Integer
  theID = doc.AddImageUrl("http://www.yahoo.com/")

Chain

We now chain subsequent pages together. We stop when we reach a page which wasn't truncated.

[C#]

  while (true) {
    doc.FrameRect(); // add a black border
    if (!doc.Chainable(theID))
      break;
    doc.Page = doc.AddPage();
    theID = doc.AddImageToChain(theID);
  }

[Visual Basic]
  While True
    doc.FrameRect()
    ' add a black border
    If Not doc.Chainable(theID) Then
      Exit While
    End If
    doc.Page = doc.AddPage()
    theID = doc.AddImageToChain(theID)
  End While

Flatten

After adding the pages we can flatten them. We can't do this until after the pages have been added because flattening will invalidate our previous ID and break the chain.

[C#]

  for (int i = 1; i <= doc.PageCount; i++) {
    doc.PageNumber = i;
    doc.Flatten();
  }

[Visual Basic]
  Dim i As Integer = 1
  While i <= doc.PageCount
    doc.PageNumber = i
    doc.Flatten()
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While

Save

Finally we save.

[C#]

  doc.Save(Server.MapPath("pagedhtml.pdf"));
}

[Visual Basic]
  doc.Save(Server.MapPath("pagedhtml.pdf"))
End Using

Results

We get the following output.

pagedhtml.pdf [Page 1]
pagedhtml.pdf [Page 2]


eForm Fields Example

This example shows how to change the values of eForm fields. In this example we simply replace each of the fields in a form with the name of that field.

Src

First we create an ABCpdf Doc object and read in our template form.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/form.pdf"));

  doc.Form.NeedAppearances = false; // for PDF 2.0

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/form.pdf"))
  doc.Form.NeedAppearances = False ' for PDF 2.0

Add

We iterate through each of the top level fields. For each field we set the value of the field to be equal to the value of the name.

[C#]

  string[] theNames = doc.Form.GetFieldNames();
  foreach (string theName in theNames) {
    Field theField = doc.Form[theName];
    theField.Value = theField.Name;
  }

[Visual Basic]
  Dim theNames As String() = doc.Form.GetFieldNames()
  For Each theName As String In theNames
    Dim theField As Field = doc.Form(theName)
    theField.Value = theField.Name
  Next

Save

Finally we save.

[C#]

  doc.Save(Server.MapPath("eformfields.pdf"));
}

[Visual Basic]
  doc.Save(Server.MapPath("eformfields.pdf"))
End Using

Results

Given the following document.

form.pdf

This is the kind of output you might expect.

eformfields.pdf


eForm Placeholder Example

This example shows how to use eForm fields as placeholders for the insertion of text. In this example we simply replace each of the fields in a form with the name of that field.

Src

First we create an ABCpdf Doc object and read in our template form.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/form.pdf"));
  doc.Form.NeedAppearances = false; // for PDF 2.0
  doc.Font = doc.AddFont("Helvetica-Bold");
  doc.FontSize = 16;
  doc.Rect.Pin = XRect.Corner.TopLeft;

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/form.pdf"))
  doc.Form.NeedAppearances = False ' for PDF 2.0
  doc.Font = doc.AddFont("Helvetica-Bold")
  doc.FontSize = 16
  doc.Rect.Pin = XRect.Corner.TopLeft

Add

We iterate through each of the fields. For each field we focus on the field. We then color the rectangle light gray and draw the name of the field in dark red.

[C#]

  string[] theNames = doc.Form.GetFieldNames();
  foreach (string theName in theNames) {
    Field theField = doc.Form[theName];
    theField.Focus();
    doc.Color.String = "240 240 255";
    doc.FillRect();
    doc.Rect.Height = 16;
    doc.Color.String = "220 0 0";
    doc.AddText(theField.Name);
    doc.Delete(theField.ID);
  }

[Visual Basic]
  Dim theNames As String() = doc.Form.GetFieldNames()
  For Each theName As String In theNames
    Dim theField As Field = doc.Form(theName)
    theField.Focus()
    doc.Color.String = "240 240 255"
    doc.FillRect()
    doc.Rect.Height = 16
    doc.Color.String = "220 0 0"
    doc.AddText(theField.Name)
    doc.Delete(theField.ID)
  Next

Save

Finally we save.

[C#]

  doc.Save(Server.MapPath("eform.pdf"));
}

[Visual Basic]
  doc.Save(Server.MapPath("eform.pdf"))
End Using

Results

Given the following document.

form.pdf

This is the kind of output you might expect.

eform.pdf


eForm Stamp Example

This example shows how to stamp eForm fields into a document so that the values are indelibly marked

Src

First we create an ABCpdf Doc object and read in our template form.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/form.pdf"));
  doc.Form.NeedAppearances = false; // for PDF 2.0
  doc.Font = doc.AddFont("Helvetica-Bold");

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/form.pdf"))
  doc.Form.NeedAppearances = False ' for PDF 2.0

  doc.Font = doc.AddFont("Helvetica-Bold")

Add

We set the values of selected fields and then we stamp all field values into the document.

[C#]

  doc.Form["Day"].Value = "23";
  doc.Form["Month"].Value = "February";
  doc.Form["Year"].Value = "2005";
  doc.Form["State"].Value = "Arizona";
  doc.Form.Stamp();

[Visual Basic]
  doc.Form("Day").Value = "23"
  doc.Form("Month").Value = "February"
  doc.Form("Year").Value = "2005"
  doc.Form("State").Value = "Arizona"
  doc.Form.Stamp()

Save

Finally we save.

[C#]

  doc.Save(Server.MapPath("eformstamp.pdf"));
}

[Visual Basic]
  doc.Save(Server.MapPath("eformstamp.pdf"))
End Using

Results

Given the following document.

form.pdf

This is the kind of output you might expect.

eformstamp.pdf


eForm FDF Example

This example shows how to extract Unicode annotation values from an eForm FDF file.

Src

First we create an ABCpdf Doc object and read in our FDF file.

[C#]

Doc theFDF = new Doc();
theFDF.Read(Server.MapPath("../Rez/form.fdf"));

[Visual Basic]
Dim theFDF As New Doc()
theFDF.Read(Server.MapPath("../Rez/form.fdf"))

Dest

We find out how many items there are in the FDF file and prepare to iterate through them.

[C#]

string theValues = "";
int theLastID = Convert.ToInt32(theFDF.GetInfo(0, "Count"));

[Visual Basic]
Dim theValues As String = ""
Dim theLastID As Integer = Convert.ToInt32(theFDF.GetInfo(0, "Count"))

Add

We go through each item. We check to see if it is an annotation. If it is we check to see if the annotation type is text. If we have found a text annotation we extract the content and add the value to our list.

[C#]

// extract annotation values (for insertion into PDF)
for (int i = 0; i <= theLastID; i++) {
  string theType = theFDF.GetInfo(i, "Type");
  if (theType == "anno") {
    if (theFDF.GetInfo(i, "SubType") == "Text") {
      string theCont;
      theCont = theFDF.GetInfo(i, "Contents");
      theValues = theValues + theCont + "\r\n\r\n";
    }
  }
}
// extract field values (for demonstration purposes)
for (int i = 0; i <= theLastID; i++) {
  int theN = theFDF.GetInfoInt(i, "/FDF*/Fields*:Count");
  for (int j = 0; j < theN; j++) {
    string theName = theFDF.GetInfo(i, "/FDF*/Fields*[" + j + "]*/T:Text");
    string theValue = theFDF.GetInfo(i, "/FDF*/Fields*[" + j + "]*/V:Text");
    // here we would do something with the field value we've found
  }
}

[Visual Basic]
' extract annotation values (for insertion into PDF)
Dim i As Integer = 0
While i <= theLastID
  Dim theType As String = theFDF.GetInfo(i, "Type")
  If theType = "anno" Then
    If theFDF.GetInfo(i, "SubType") = "Text" Then
      Dim theCont As String
      theCont = theFDF.GetInfo(i, "Contents")
      theValues = theValues + theCont + vbCr & vbLf & vbCr & vbLf
    End If
  End If
  System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
End While
' extract field values (for demonstration purposes)
Dim i As Integer = 0
While i <= theLastID
  Dim [theN] As Integer = theFDF.GetInfoInt(i, "/FDF*/Fields*:Count")
  Dim j As Integer = 0
  While j < [theN]
    Dim theName As String = theFDF.GetInfo(i, "/FDF*/Fields*[" + j + "]*/T:Text")
      ' here we would do something with the field value we've found
    Dim theValue As String = theFDF.GetInfo(i, "/FDF*/Fields*[" + j + "]*/V:Text")
    System.Math.Max(System.Threading.Interlocked.Increment(j),j - 1)
  End While
  System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
End While

Save

Finally we add the Unicode text to a new document and save it.

[C#]

using (Doc doc = new Doc()) {
  doc.Font = doc.EmbedFont("Arial", LanguageType.Unicode, false, true);
  doc.FontSize = 96;
  doc.Rect.Inset(10, 10);
  doc.AddText(theValues);
  doc.Save(Server.MapPath("fdf.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Font = doc.EmbedFont("Arial", LanguageType.Unicode, False, True)
  doc.FontSize = 96
  doc.Rect.Inset(10, 10)
  doc.AddText(theValues)
  doc.Save(Server.MapPath("fdf.pdf"))
End Using

Results

This is the kind of PDF you might expect to produce.

fdf.pdf


Advanced Graphics Example

Intro

Virtually all the drawing operations you will require are achievable using methods such as FrameRect, FillRect, AddLine and AddArc.

However occasionally you may require more sophisticated control over your drawing operations. In these situations you need direct access to the PDF Content Stream.

Content

Page content is defined by the page Content Stream. The Content Stream is a sequence of descriptions of graphics objects to be placed on the page. ABCpdf allows you to create or modify these content streams allowing you access to the full power of PDF drawing operators.

It was intentionally decided not to encapsulate this type of drawing within a closed API. Instead these examples are provided as source code. This allows you to adapt the classes to your needs.

You can find the full project and classes under the ABCpdf menu item.

Here we describe how to perform common tasks. We do not cover the entire range of possible operators and functions. For full details you should see the Adobe PDF Specification.

Paths

A path object is a shape made up of straight lines, rectangles and Bézier curves. It may intersect itself and may have disconnected sections and holes. After the path has been defined it may be painted, filled, used for clipping or a combination of these operations.

Each path is constructed of one or more subpaths. Each subpath is constructed of one or more connected segments. Subpaths may be open or closed. When a subpath is closed the start of the path is connected to the end.

All paths are located in the standard Adobe PDF coordinate space. The following is a list of standard path construction operators.

Name | Parameters | Operator | Description
Move | x y | m | Begin a new subpath by moving to the coordinates specified.
Line | x y | l | Add a straight line from the current location to the coordinates specified.
Rect | x y w h | re | Add a rectangular subpath with the lower left corner at (x, y) with width w and height h.
Bézier x1 y1 x2 y2 x3 y3 c

Add a Bézier curve from the current location to the coordinates specified (x3, y3) using the other coordinates (x1, y1) and (x2, y2) as control points.
Close | h | Close the current subpath joining the start to the end.
Stroke | S | Paint a line along the current path using the current stroke color.
Fill f

Fill the current path using the current fill color.

This fill method uses the nonzero winding number rule. There are other PDF operators to allow the use of the even-odd rule but these are not generally useful.
Clip W n

Intersect the path with the current clipping path to establish a new clipping path.

This actually comprises two operators rather than one but they are almost invariably used in this combination.

State

The graphics state defines the parameters within which the PDF operators work. For example the graphics state defines the current line width which will be used whenever a line is drawn. It also defines the current non-stroking color which will be used whenever a path is filled.

You can push copies of the graphics state onto a stack and then restore them later. This can be very useful for doing and undoing graphics state operations.

Name | Parameters | Operator | Description
Save State | q | Push a copy of the current graphics state onto the stack.
Restore State | Q | Restore the current graphics state from the top of the stack.
SetLineWidth | v | w | Set the width to be used when stroking lines.
SetGrayStrokeColor w G

Set the gray level to use for stroking operations.The component ranges between 0.0 and 1.0 (black and white respectively).
SetGrayNonStrokeColor | w | g | The same as G but for non-stroking operations.
SetRGBStrokeColor | r g b | RG | Set the RGB color to use for stroking operations. Each component ranges between 0.0 and 1.0.
SetRGBNonStrokeColor | r g b | rg | The same as RG but for non-stroking operations.
SetCMYKStrokeColor | c m y k | K | Set the CMYK color to use for stroking operations. Each component ranges between 0.0 and 1.0.
SetCMYKNonStrokeColor | c m y k | k | The same as K but for non-stroking operations.
Transform a b c d e f cm

Concatenate matrix with the current transform matrix. Common transforms include:

  • Translation: A matrix of the form [1 0 0 1 tx ty] shifts the coordinate system by tx horizontally and ty vertically.
  • Scaling: A matrix of the form [sx 0 0 sy 0 0] scales the coordinate system by a factor of sx horizontally and sy vertically pinned at the origin.
  • Rotation: A matrix of the form [cos(ra) sin(ra) -sin(ra) cos(ra) 0 0] rotates the coordinate system by the angle ra anti-clockwise around the origin.
  • Skew: A matrix of the form [1 tan(ra) tan(ra) 1 0 0] skews the x and y axes by the angle ra.
SetLineCap v J

The line cap for the ends of any lines to be stroked. Possible values are:

  1. Butt. The stroke is square at the end of the path and does not project beyond the end of the path.
  2. Round. A semicircle is added at the end of the path projecting beyond the endpoints.
  3. Projecting Square. The stroke is square but projects a distance of half the line width beyond the ends of the path.
SetLineJoin v j

The line join for the shape of joints between connected segments of a path. Possible values are:

  1. Miter. The outer edges for the two segments are extended until they meet. This is the same way that wooden segments are joined to make a picture frame. If the segments meet at an overly steep angle a bevel join is used instead. The precise cut-off point is called the Miter Limit (see below).
  2. Round. A pie slice is added to the junction of the two segments to produce a rounded corner.
  3. Bevel. The two segments are finished with butt caps and any notch between the two is filled in.
SetMiterLimit v M

The maximum length of mitered line joins for paths.

The miter limit is expressed in terms of the ratio of the thickness of the line to the thickness of the join.

For example a value of 1.5 will allow the width of the line at the join to be up to one and a half times the thickness of the width of an individual line segment.
LineDash | a p | d | The dash pattern to use for stroked lines. The parameters include a - an array for the pattern and p - the phase of the dash.

Stroke

Paths can be stroked (drawn) using the current stroking color.

For example you might wish to draw a star.

[C#]

using (Doc doc = new Doc()) {
    PDFContent theContent = new PDFContent(doc);
    theContent.SaveState();
    theContent.SetLineWidth(30);
    theContent.SetLineJoin(2);
    theContent.Move(124, 158);
    theContent.Line(300, 700);
    theContent.Line(476, 158);
    theContent.Line(15, 493);
    theContent.Line(585, 493);
    theContent.Close();
    theContent.Stroke();
    theContent.RestoreState();
    theContent.AddToDoc();
    doc.Save(Server.MapPath("adv_star_draw.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theContent As New PDFContent(doc)
  theContent.SaveState()
  theContent.SetLineWidth(30)
  theContent.SetLineJoin(2)
  theContent.Move(124, 158)
  theContent.Line(300, 700)
  theContent.Line(476, 158)
  theContent.Line(15, 493)
  theContent.Line(585, 493)
  theContent.Close()
  theContent.Stroke()
  theContent.RestoreState()
  theContent.AddToDoc()
  doc.Save(Server.MapPath("adv_star_draw.pdf"))
End Using

Fill

Paths can be filled with the current non-stroking color.

For example you might wish to construct a filled star.

[C#]

using (Doc doc = new Doc()) {
    PDFContent theContent = new PDFContent(doc);
    theContent.SaveState();
    theContent.SetLineWidth(30);
    theContent.SetLineJoin(2);
    theContent.Move(124, 158);
    theContent.Line(300, 700);
    theContent.Line(476, 158);
    theContent.Line(15, 493);
    theContent.Line(585, 493);
    theContent.Close();
    theContent.Fill();
    theContent.RestoreState();
    theContent.AddToDoc();
    doc.Save(Server.MapPath("adv_star_fill.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theContent As New PDFContent(doc)
  theContent.SaveState()
  theContent.SetLineWidth(30)
  theContent.SetLineJoin(2)
  theContent.Move(124, 158)
  theContent.Line(300, 700)
  theContent.Line(476, 158)
  theContent.Line(15, 493)
  theContent.Line(585, 493)
  theContent.Close()
  theContent.Fill()
  theContent.RestoreState()
  theContent.AddToDoc()
  doc.Save(Server.MapPath("adv_star_fill.pdf"))
End Using

Bézier

Paths can contain curved segments.

Curved segments are specified as cubic Bézier curves. These provide a flexible and practical way to draw curves and curved paths.

Each segment is defined by four points. The first point and the final point define the ends of the segment. The second and third points define the control points. The line is pulled towards the first control point as it leaves the start and it is pulled towards the second control point as it arrives at the end.

The easiest way to illustrate this is with an example. Note that in this example the Bézier curve takes relatively little code to define. Most of the code is related to illustrating how the control points affect the shape of the curve.

[C#]

using (Doc doc = new Doc()) {
    PDFContent theContent = new PDFContent(doc);
    theContent.SaveState();
    theContent.SetLineWidth(30);
    theContent.Move(100, 50);
    theContent.Bezier(200, 650, 400, 550, 500, 250);
    theContent.Stroke();
    theContent.RestoreState();

    // annotate Bezier curve in red
    doc.Color.String = "255 0 0";
    doc.Width = 20;
    doc.FontSize = 30;
    doc.Pos.String = "100 50";
    doc.AddText("p0 (current point)");
    doc.Pos.String = "200 650";
    doc.Pos.Y = doc.Pos.Y + doc.FontSize;
    doc.AddText("p1 (x1, y1)");
    doc.Pos.String = "400 550";
    doc.Pos.Y = doc.Pos.Y + doc.FontSize;
    doc.AddText("p2 (x2, y2)");
    doc.Pos.String = "500 250";
    doc.Pos.X = doc.Pos.X - doc.FontSize;
    doc.AddText("p3 (x3, y3)");
    doc.AddLine(100, 50, 200, 650);
    doc.AddLine(400, 550, 500, 250);
    theContent.AddToDoc();
    doc.Save(Server.MapPath("adv_bezier.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theContent As New PDFContent(doc)
  theContent.SaveState()
  theContent.SetLineWidth(30)
  theContent.Move(100, 50)
  theContent.Bezier(200, 650, 400, 550, 500, 250)
  theContent.Stroke()
  theContent.RestoreState()

  ' annotate Bezier curve in red
  doc.Color.String = "255 0 0"
  doc.Width = 20
  doc.FontSize = 30
  doc.Pos.String = "100 50"
  doc.AddText("p0 (current point)")
  doc.Pos.String = "200 650"
  doc.Pos.Y = doc.Pos.Y + doc.FontSize
  doc.AddText("p1 (x1, y1)")
  doc.Pos.String = "400 550"
  doc.Pos.Y = doc.Pos.Y + doc.FontSize
  doc.AddText("p2 (x2, y2)")
  doc.Pos.String = "500 250"
  doc.Pos.X = doc.Pos.X - doc.FontSize
  doc.AddText("p3 (x3, y3)")
  doc.AddLine(100, 50, 200, 650)
  doc.AddLine(400, 550, 500, 250)
  theContent.AddToDoc()
  doc.Save(Server.MapPath("adv_bezier.pdf"))
End Using

Clip

You can use a path to define a clipping area.

The graphics state holds a clipping path that restricts the areas on the page which can be painted on. Marks falling within the clipping area will be displayed and those falling outside will not.

The default clipping path is the entire page. You can intersect the current clipping path with a new path using the clipping path operators.

You cannot expand a clipping path. Instead you must save the graphics state before applying your clipping path and then restore the graphics state after you have finished using it.

Here we fill a rectangle clipped by our star shape.

[C#]

using (Doc doc = new Doc()) {
    PDFContent theContent = new PDFContent(doc);
    theContent.SaveState();
    theContent.SetLineWidth(30);
    theContent.SetLineJoin(2);
    theContent.Move(124, 158);
    theContent.Line(300, 700);
    theContent.Line(476, 158);
    theContent.Line(15, 493);
    theContent.Line(585, 493);
    theContent.Clip();
    theContent.Rect(100, 200, 400, 400);
    theContent.Fill();
    theContent.RestoreState();
    theContent.AddToDoc();
    doc.Save(Server.MapPath("adv_star_clip.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theContent As New PDFContent(doc)
  theContent.SaveState()
  theContent.SetLineWidth(30)
  theContent.SetLineJoin(2)
  theContent.Move(124, 158)
  theContent.Line(300, 700)
  theContent.Line(476, 158)
  theContent.Line(15, 493)
  theContent.Line(585, 493)
  theContent.Clip()
  theContent.Rect(100, 200, 400, 400)
  theContent.Fill()
  theContent.RestoreState()
  theContent.AddToDoc()
  doc.Save(Server.MapPath("adv_star_clip.pdf"))
End Using

Caps

You can define the way that the end points of your paths are capped.

The following options are available:

Butt. The stroke is square at the end of the path and does not project beyond the end of the path.

Round. A semicircle is added at the end of the path projecting beyond the endpoints.

Projecting Square. The stroke is square but projects a distance of half the line width beyond the ends of the path.

This example shows how different line caps are drawn. Note that the line cap themselves take relatively little code to define. Most of the code is related to annotating the drawing so that you can see how the caps relate to the end points.

[C#]

using (Doc doc = new Doc()) {
    PDFContent theContent = new PDFContent(doc);
    theContent.SaveState();
    theContent.SetLineWidth(100);
    theContent.SetLineCap(0);
    theContent.Move(100, 600);
    theContent.Line(500, 600); // line
    theContent.Stroke();

    theContent.SetLineCap(1); // round cap
    theContent.Move(100, 400);
    theContent.Line(500, 400);
    theContent.Stroke();

    theContent.SetLineCap(2);
    theContent.Move(100, 200);
    theContent.Line(500, 200);
    theContent.Stroke();

    // add capped lines
    theContent.AddToDoc();

    // annotate capped lines
    doc.FontSize = 48;
    doc.Pos.String = "50 720";
    doc.AddText("0 - Butt Cap");
    doc.Pos.String = "50 520";
    doc.AddText("1 - Round Cap");
    doc.Pos.String = "50 320";
    int id = doc.AddText("2 - Projecting Square Cap");
    doc.Width = 20;

    doc.Color.String = "255 255 255";
    doc.AddLine(100, 200, 500, 200);
    doc.Rect.String = "80 180 120 220";
    doc.FillRect(20, 20);
    doc.Rect.String = "480 180 520 220";
    doc.FillRect(20, 20);
    doc.AddLine(100, 400, 500, 400);
    doc.Rect.String = "80 380 120 420";
    doc.FillRect(20, 20);
    doc.Rect.String = "480 380 520 420";
    doc.FillRect(20, 20);
    doc.AddLine(100, 600, 500, 600);
    doc.Rect.String = "80 580 120 620";
    doc.FillRect(20, 20);
    doc.Rect.String = "480 580 520 620";
    doc.FillRect(20, 20);
    doc.Color.String = "0 0 0";
    doc.Save(Server.MapPath("adv_linecap.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theContent As New PDFContent(doc)
  theContent.SaveState()
  theContent.SetLineWidth(100)
  theContent.SetLineCap(0)
  theContent.Move(100, 600)
  theContent.Line(500, 600)
  ' line
  theContent.Stroke()

  theContent.SetLineCap(1)
  ' round cap
  theContent.Move(100, 400)
  theContent.Line(500, 400)
  theContent.Stroke()

  theContent.SetLineCap(2)
  theContent.Move(100, 200)
  theContent.Line(500, 200)
  theContent.Stroke()

  ' add capped lines
  theContent.AddToDoc()

  ' annotate capped lines
  doc.FontSize = 48
  doc.Pos.String = "50 720"
  doc.AddText("0 - Butt Cap")
  doc.Pos.String = "50 520"
  doc.AddText("1 - Round Cap")
  doc.Pos.String = "50 320"
  Dim id As Integer = doc.AddText("2 - Projecting Square Cap")
  doc.Width = 20

  doc.Color.String = "255 255 255"
  doc.AddLine(100, 200, 500, 200)
  doc.Rect.String = "80 180 120 220"
  doc.FillRect(20, 20)
  doc.Rect.String = "480 180 520 220"
  doc.FillRect(20, 20)
  doc.AddLine(100, 400, 500, 400)
  doc.Rect.String = "80 380 120 420"
  doc.FillRect(20, 20)
  doc.Rect.String = "480 380 520 420"
  doc.FillRect(20, 20)
  doc.AddLine(100, 600, 500, 600)
  doc.Rect.String = "80 580 120 620"
  doc.FillRect(20, 20)
  doc.Rect.String = "480 580 520 620"
  doc.FillRect(20, 20)
  doc.Color.String = "0 0 0"
  doc.Save(Server.MapPath("adv_linecap.pdf"))
End Using

Joins

You can define the way that your line segments are joined.

The following options are available:

Miter. The outer edges for the two segments are extended until they meet. This is the same way that wooden segments are joined to make a picture frame. If the segments meet at an overly steep angle a bevel join is used instead. The precise cut-off point is called the Miter Limit.

Round. A pie slice is added to the junction of the two segments to produce a rounded corner.

Bevel. The two segments are finished with butt caps and any notch between the two is filled in.

This example shows how different line joins are drawn. Note that the line joins themselves take relatively little code to define. Most of the code is related to annotating the drawing.

[C#]

using (Doc doc = new Doc()) {
    PDFContent theContent = new PDFContent(doc);
    theContent.SetLineWidth(50);
    theContent.SetLineJoin(0);
    theContent.Move(300, 500);
    theContent.Line(400, 700);
    theContent.Line(500, 500);
    theContent.Stroke();

    theContent.SetLineJoin(1);
    theContent.Move(300, 300);
    theContent.Line(400, 500);
    theContent.Line(500, 300);
    theContent.Stroke();

    theContent.SetLineJoin(2);
    theContent.Move(300, 100);
    theContent.Line(400, 300);
    theContent.Line(500, 100);
    theContent.Stroke();
    theContent.AddToDoc();

    doc.FontSize = 48;
    doc.Pos.String = "50 700";
    doc.AddText("0 - Miter");
    doc.Pos.String = "50 500";
    doc.AddText("1 - Round ");
    doc.Pos.String = "50 300";
    doc.AddText("2 - Bevel");
    doc.Width = 10;
    doc.Color.String = "255 255 255";
    doc.AddLine(300, 500, 400, 700);
    doc.AddLine(400, 700, 500, 500);
    doc.Rect.String = "390 690 410 710";
    doc.FillRect(10, 10);
    doc.AddLine(300, 300, 400, 500);
    doc.AddLine(400, 500, 500, 300);
    doc.Rect.String = "390 490 410 510";
    doc.FillRect(10, 10);
    doc.AddLine(300, 100, 400, 300);
    doc.AddLine(400, 300, 500, 100);
    doc.Rect.String = "390 290 410 310";
    doc.FillRect(10, 10);
    doc.Color.String = "0 0 0";
    doc.Save(Server.MapPath("adv_linejoin.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theContent As New PDFContent(doc)
  theContent.SetLineWidth(50)
  theContent.SetLineJoin(0)
  theContent.Move(300, 500)
  theContent.Line(400, 700)
  theContent.Line(500, 500)
  theContent.Stroke()

  theContent.SetLineJoin(1)
  theContent.Move(300, 300)
  theContent.Line(400, 500)
  theContent.Line(500, 300)
  theContent.Stroke()

  theContent.SetLineJoin(2)
  theContent.Move(300, 100)
  theContent.Line(400, 300)
  theContent.Line(500, 100)
  theContent.Stroke()
  theContent.AddToDoc()

  doc.FontSize = 48
  doc.Pos.String = "50 700"
  doc.AddText("0 - Miter")
  doc.Pos.String = "50 500"
  doc.AddText("1 - Round ")
  doc.Pos.String = "50 300"
  doc.AddText("2 - Bevel")
  doc.Width = 10
  doc.Color.String = "255 255 255"
  doc.AddLine(300, 500, 400, 700)
  doc.AddLine(400, 700, 500, 500)
  doc.Rect.String = "390 690 410 710"
  doc.FillRect(10, 10)
  doc.AddLine(300, 300, 400, 500)
  doc.AddLine(400, 500, 500, 300)
  doc.Rect.String = "390 490 410 510"
  doc.FillRect(10, 10)
  doc.AddLine(300, 100, 400, 300)
  doc.AddLine(400, 300, 500, 100)
  doc.Rect.String = "390 290 410 310"
  doc.FillRect(10, 10)
  doc.Color.String = "0 0 0"
  doc.Save(Server.MapPath("adv_linejoin.pdf"))
End Using

Dash

You can define dashed lines.

The dash pattern is specified by a dash array and a dash phase. The dash array specifies the length of dashes and gaps. The dash phase specifies the distance into the array at which the line dashes should start.

When the lengths in the array are exhausted the dash pattern starts again at the beginning. You can use an empty array and zero phase to specify a solid line

Dashed lines can be applied to any kind of path including straight lines and curves. Each subpath in a path is treated separately - the dash phase starts at the beginning again.

This example shows how different line dash patterns are drawn.

[C#]

using (Doc doc = new Doc()) {
    PDFContent theContent = new PDFContent(doc);
    theContent.SaveState();
    theContent.SetLineWidth(20);
    theContent.LineDash("[ ] 0");
    theContent.Move(100, 650);
    theContent.Line(500, 650);
    theContent.Stroke();

    theContent.LineDash("[ 90 ] 0");
    theContent.Move(100, 500);
    theContent.Line(500, 500);
    theContent.Stroke();

    theContent.LineDash("[ 60 ] 30");
    theContent.Move(100, 350);
    theContent.Line(500, 350);
    theContent.Stroke();

    theContent.LineDash("[ 60 30 ] 0");
    theContent.Move(100, 200);
    theContent.Line(500, 200);
    theContent.Stroke();
    theContent.RestoreState();

    // annotate dashed lines
    doc.Color.String = "0 0 0";
    doc.FontSize = 36;
    doc.Pos.String = "50 710";
    doc.AddText("[ ] 0 - no dashes");
    doc.Pos.String = "50 560";
    doc.AddText("[ 90 ] 0 - 90 on, 90 off...");
    doc.Pos.String = "50 410";
    doc.AddText("[ 60 ] 30 - 30 on, 60 off, 60 on...");
    doc.Pos.String = "50 260";
    doc.AddText("[ 60 30 ] 0 - 60 on, 30 off, 60 on...");

    // add dashed lines
    theContent.AddToDoc();
    doc.Save(Server.MapPath("adv_dashes.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theContent As New PDFContent(doc)
  theContent.SaveState()
  theContent.SetLineWidth(20)
  theContent.LineDash("[ ] 0")
  theContent.Move(100, 650)
  theContent.Line(500, 650)
  theContent.Stroke()

  theContent.LineDash("[ 90 ] 0")
  theContent.Move(100, 500)
  theContent.Line(500, 500)
  theContent.Stroke()

  theContent.LineDash("[ 60 ] 30")
  theContent.Move(100, 350)
  theContent.Line(500, 350)
  theContent.Stroke()

  theContent.LineDash("[ 60 30 ] 0")
  theContent.Move(100, 200)
  theContent.Line(500, 200)
  theContent.Stroke()
  theContent.RestoreState()

  ' annotate dashed lines
  doc.Color.String = "0 0 0"
  doc.FontSize = 36
  doc.Pos.String = "50 710"
  doc.AddText("[ ] 0 - no dashes")
  doc.Pos.String = "50 560"
  doc.AddText("[ 90 ] 0 - 90 on, 90 off...")
  doc.Pos.String = "50 410"
  doc.AddText("[ 60 ] 30 - 30 on, 60 off, 60 on...")
  doc.Pos.String = "50 260"
  doc.AddText("[ 60 30 ] 0 - 60 on, 30 off, 60 on...")

  ' add dashed lines
  theContent.AddToDoc()
  doc.Save(Server.MapPath("adv_dashes.pdf"))
End Using

XForms

You can define transforms which affect the world space.

A transform allows you to translate, scale, rotate, or skew objects. Multiple transforms can be concatenated so that you can perform a combination of these operations.

A transform is defined by six numbers. Common transforms include:

Translation: A matrix of the form [1 0 0 1 tx ty] shifts the coordinate system by tx horizontally and ty vertically.

Scaling: A matrix of the form [sx 0 0 sy 0 0] scales the coordinate system by a factor of sx horizontally and sy vertically pinned at the origin.

Rotation: A matrix of the form [cos(ra) sin(ra) -sin(ra) cos(ra) 0 0] rotates the coordinate system by the angle ra anticlockwise around the origin.

Skew: A matrix of the form [1 tan(ra) tan(ra) 1 0 0] skews the x and y axes by the angle ra.

This example shows how to apply a 45 degree rotation to a drawing of a star.

[C#]

using (Doc doc = new Doc()) {
    PDFContent star = new PDFContent(doc);
    star.Move(124, 108);
    star.Line(300, 650);
    star.Line(476, 108);
    star.Line(15, 443);
    star.Line(585, 443);
    star.Close();
    star.Stroke();

    PDFContent theContent = new PDFContent(doc);
    theContent.SaveState();
    theContent.SetLineWidth(30);
    theContent.SetLineJoin(2);
    theContent.AddContent(star);
    theContent.SetRGBStrokeColor(1, 0, 0);
    theContent.Transform(0.7, 0.7, -0.7, 0.7, 0, 0);
    theContent.AddContent(star);
    theContent.RestoreState();
    theContent.AddToDoc();
    doc.Save(Server.MapPath("adv_star_rotate.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim star As New PDFContent(doc)
  star.Move(124, 108)
  star.Line(300, 650)
  star.Line(476, 108)
  star.Line(15, 443)
  star.Line(585, 443)
  star.Close()
  star.Stroke()

  Dim theContent As New PDFContent(doc)
  theContent.SaveState()
  theContent.SetLineWidth(30)
  theContent.SetLineJoin(2)
  theContent.AddContent(star)
  theContent.SetRGBStrokeColor(1, 0, 0)
  theContent.Transform(0.7, 0.7, -0.7, 0.7, 0, 0)
  theContent.AddContent(star)
  theContent.RestoreState()
  theContent.AddToDoc()
  doc.Save(Server.MapPath("adv_star_rotate.pdf"))
End Using

Other

Other examples including text operators, transparency modes and blend modes can be found in the example project.

You can find the full project and classes under the ABCpdf menu item.


Fields, Markup and Movies Example

Intro

In general you will use PDF templates containing Fields and Annotations created by a designer.

However occasionally you may need to create Fields and Annotations at run-time. You can perform this kind of operation using the low level functionality within ABCpdf.

Types

Annotations are a generic class of objects which exist outside the page Content Stream. Because they are independent of the PDF Content Stream they operate independently of the page. They float over it rather than being embedded in it.

Movie Annotations, Note Annotations, Stamp Annotations, Line Annotations and Polygon Annotations are just a few of the many Annotation types which exist.

Fields are a specific type of Annotation combined with a named value. It is the fact that the Field is an Annotation which allows you to see it and interact with it. It is the fact that the Annotation is linked into the Field hierarchy which allows it to take a value and be located by name.

Movies are a specific type of Annotation. You can embed a variety of movie formats including Flash and WMV.

Creating these types of objects on the fly is complex. For this reason the examples here are simple summaries. You can find a full project and classes under the ABCpdf menu item.

For full details of the way that Annotations work you should see the Adobe PDF Specification.

Fields

You may wish to generate a PDF document with Fields created dynamically at run-time.

The code below creates a set of Fields including text boxes, radio buttons, checkboxes and signatures.

[C#]

using (Doc doc = new Doc()) {
      doc.Font = doc.AddFont("Helvetica");
      doc.FontSize = 36;

      Catalog cat = doc.ObjectSoup.Catalog;

      EmbeddedFileTree fileTree = new EmbeddedFileTree(doc);
      fileTree.EmbedFile("MyFile1", Server.MapPath("ABCpdf.swf"), "attachment without annotation");
      doc.SetInfo(doc.Root, "/PageMode:Name", "UseAttachments");

      doc.Pos.X = 40;
      doc.Pos.Y = doc.MediaBox.Top - 40;
      doc.AddText("Interactive Form annotations");

      // Create interactive form
      XForm form = doc.Form;
      int fontID = doc.AddFont("Times-Roman", LanguageType.Latin);
      string fontName = form.AddResource(doc.ObjectSoup[fontID], "Font", "TimesRoman");

      // Radio buttons
      Field radio = form.AddRadioButtonGroup(new XRect[] { new XRect("40 610 80 650"), new XRect("40 660 80 700") }, "RadioGroupField", 0);
      doc.Pos.String = "100 696";
      doc.AddText("RadioButton 1");
      doc.Pos.String = "100 646";
      doc.AddText("RadioButton 2");

      // Text fields
      Field text = form.AddTextField(new XRect("40 530 300 580"), "TextField1", "Hello World!");
      FieldElement textE = new FieldElement(text);
      WidgetAnnotationElement textW = new WidgetAnnotationElement(text);
      textE.EntryDA = $"/{fontName} 36 Tf 0 0 1 rg";
      textW.EntryMK = new AppearanceCharacteristicsElement(textE);
      textW.EntryMK.EntryBC = new double[] { 0, 0, 0 };
      textW.EntryMK.EntryBG = new double[] { 220.0 / 255.0, 220.0 / 255.0, 220.0 / 255.0 };
      textE.EntryQ = 0; // Left alignment

      text = form.AddTextField(new XRect("40 460 300 510"), "TextField2", "Text Field");
      textE = new FieldElement(text);
      textW = new WidgetAnnotationElement(text);
      textW.EntryMK = new AppearanceCharacteristicsElement(textE);
      textW.EntryMK.EntryBC = new double[] { 0, 0, 0 };
      textE.EntryDA = $"/{fontName} 36 Tf 0 0 1 rg";
      textE.EntryQ = 0; // Left alignment
      textE.EntryFf |= (int)Field.FieldFlags.Password;

      text = form.AddTextField(new XRect("320 460 370 580"), "TextField3", "Vertical");
      textE = new FieldElement(text);
      textW = new WidgetAnnotationElement(text);
      textW.EntryMK = new AppearanceCharacteristicsElement(textE);
      textW.EntryMK.EntryBC = new double[] { 0, 0, 0 };
      textE.EntryDA = $"/{fontName} 36 Tf 0 0 0 rg";
      textW.EntryMK.EntryR = 90; // Rotation

      // Combobox field
      Field combo = form.AddComboBoxField(new XRect("40 390 300 440"), "ComboBoxField");
      FieldElement comboE = new FieldElement(combo);
      comboE.EntryDA = $"/{fontName} 24 Tf 0 0 0 rg";
      combo.Options = new string[] { "ComboBox Item 1", "ComboBox Item 2", "ComboBox Item 3" };

      // Listbox field
      Field listbox = form.AddListBoxField(new XRect("40 280 300 370"), "ListBoxField");
      FieldElement listboxE = new FieldElement(listbox);
      listboxE.EntryDA = $"/{fontName} 24 Tf 0 0 0 rg";
      listbox.Options = new string[] { "ListBox Item 1", "ListBox Item 2", "ListBox Item 3" };

      // Checkbox field
      form.AddCheckbox(new XRect("40 220 80 260"), "CheckBoxField", true);
      doc.Pos.String = "100 256";
      doc.AddText("Check Box");

      // Pushbutton field
      Field button = form.AddButton(new XRect("40 160 200 200"), "ButtonField", "Button");
      WidgetAnnotationElement buttonW = new WidgetAnnotationElement(button);
      buttonW.EntryMK = new AppearanceCharacteristicsElement(buttonW);
      buttonW.EntryMK.EntryBC = new double[] { 0, 0, 0 };
      buttonW.EntryBS = new BorderStyleElement(buttonW);
      buttonW.EntryBS.EntryS = "B"; // beveled

      // Signature field
      Signature sig1 = form.AddSignature(new XRect("40 100 240 150"), "Signature1");
      doc.Save(Server.MapPath("annotations1.pdf"));
    }

[Visual Basic]

Using doc As New Doc()
  doc.Font = doc.AddFont("Helvetica")
  doc.FontSize = 36

  Dim cat As Catalog = doc.ObjectSoup.Catalog

  Dim fileTree As New EmbeddedFileTree(doc)
  fileTree.EmbedFile("MyFile1", Server.MapPath("ABCpdf.swf"), "attachment without annotation")
  doc.SetInfo(doc.Root, "/PageMode:Name", "UseAttachments")

  doc.Pos.X = 40
  doc.Pos.Y = doc.MediaBox.Top - 40
  doc.AddText("Interactive Form annotations")

  ' Create interactive form
  Dim form As XForm = doc.Form
  Dim fontID As Integer = doc.AddFont("Times-Roman", LanguageType.Latin)
  Dim fontName As String = form.AddResource(doc.ObjectSoup(fontID), "Font", "TimesRoman")

  ' Radio buttons
  Dim radio As Field = form.AddRadioButtonGroup(New XRect() {New XRect("40 610 80 650"), New XRect("40 660 80 700")}, "RadioGroupField", 0)
  doc.Pos.String = "100 696"
  doc.AddText("RadioButton 1")
  doc.Pos.String = "100 646"
  doc.AddText("RadioButton 2")

  ' Text fields
  Dim text As Field = form.AddTextField(New XRect("40 530 300 580"), "TextField1", "Hello World!")
  Dim textE As New FieldElement(text)
  Dim textW As New WidgetAnnotationElement(text)
  textE.EntryDA = $"/{fontName} 36 Tf 0 0 1 rg"
  textW.EntryMK = New AppearanceCharacteristicsElement(textE)
  textW.EntryMK.EntryBC = New Double() {0, 0, 0}
  textW.EntryMK.EntryBG = New Double() {220.0 / 255.0, 220.0 / 255.0, 220.0 / 255.0}
  textE.EntryQ = 0
  ' Left alignment
  text = form.AddTextField(New XRect("40 460 300 510"), "TextField2", "Text Field")
  textE = New FieldElement(text)
  textW = New WidgetAnnotationElement(text)
  textW.EntryMK = New AppearanceCharacteristicsElement(textE)
  textW.EntryMK.EntryBC = New Double() {0, 0, 0}
  textE.EntryDA = $"/{fontName} 36 Tf 0 0 1 rg"
  textE.EntryQ = 0
  ' Left alignment
  textE.EntryFf = textE.EntryFf Or DirectCast(Field.FieldFlags.Password, Integer)

  text = form.AddTextField(New XRect("320 460 370 580"), "TextField3", "Vertical")
  textE = New FieldElement(text)
  textW = New WidgetAnnotationElement(text)
  textW.EntryMK = New AppearanceCharacteristicsElement(textE)
  textW.EntryMK.EntryBC = New Double() {0, 0, 0}
  textE.EntryDA = $"/{fontName} 36 Tf 0 0 0 rg"
  textW.EntryMK.EntryR = 90
  ' Rotation
  ' Combobox field
  Dim combo As Field = form.AddComboBoxField(New XRect("40 390 300 440"), "ComboBoxField")
  Dim comboE As New FieldElement(combo)
  comboE.EntryDA = $"/{fontName} 24 Tf 0 0 0 rg"
  combo.Options = New String() {"ComboBox Item 1", "ComboBox Item 2", "ComboBox Item 3"}

  ' Listbox field
  Dim listbox As Field = form.AddListBoxField(New XRect("40 280 300 370"), "ListBoxField")
  Dim listboxE As New FieldElement(listbox)
  listboxE.EntryDA = $"/{fontName} 24 Tf 0 0 0 rg"
  listbox.Options = New String() {"ListBox Item 1", "ListBox Item 2", "ListBox Item 3"}

  ' Checkbox field
  form.AddCheckbox(New XRect("40 220 80 260"), "CheckBoxField", True)
  doc.Pos.String = "100 256"
  doc.AddText("Check Box")

  ' Pushbutton field
  Dim button As Field = form.AddButton(New XRect("40 160 200 200"), "ButtonField", "Button")
  Dim buttonW As New WidgetAnnotationElement(button)
  buttonW.EntryMK = New AppearanceCharacteristicsElement(buttonW)
  buttonW.EntryMK.EntryBC = New Double() {0, 0, 0}
  buttonW.EntryBS = New BorderStyleElement(buttonW)
  buttonW.EntryBS.EntryS = "B"
  ' beveled
  ' Signature field
  Dim sig1 As Signature = form.AddSignature(New XRect("40 100 240 150"), "Signature1")
  doc.Save(Server.MapPath("annotations1.pdf"))
End Using

Markup

You may wish to generate a PDF document with markup created dynamically at run-time.

The code below creates a set of markup Annotations including squares, lines, text effects, circles and polygons.

[C#]

using (Doc doc = new Doc()) {
      //Markup annotations
      doc.Page = doc.AddPage();
      doc.Pos.X = 40;
      doc.Pos.Y = doc.MediaBox.Top - 40;
      doc.AddText("Markup annotations");
      Catalog cat = doc.ObjectSoup.Catalog;

      SquareAnnotation square = new SquareAnnotation(doc, new XRect("40 560 300 670"), XColor.FromRgb(255, 0, 0), XColor.FromRgb(0, 0, 255));
      square.SquareElement.EntryBS = new BorderStyleElement(square.SquareElement);
      square.SquareElement.EntryBS.EntryW = 8;

      LineAnnotation line = new LineAnnotation(doc, new XPoint("100 565"), new XPoint("220 665"), XColor.FromRgb(255, 0, 0));
      line.LineElement.EntryBS = new BorderStyleElement(line.LineElement);
      line.LineElement.EntryBS.EntryW = 12;
      line.RichTextCaption = "<span style= \"font-size:36pt; color:#FF0000\">Line</span>";

      doc.FontSize = 24;
      int fontID = doc.AddFont("Times-Roman", LanguageType.Latin);
      doc.Pos.String = "400 670";
      int id = doc.AddText("Underline");
      TextMarkupAnnotation markup = new TextMarkupAnnotation(doc, fontID, TextMarkupType.Underline, XColor.FromRgb(0, 255, 0));

      doc.Pos.String = "400 640";
      fontID = doc.AddText("Highlight");
      markup = new TextMarkupAnnotation(doc, fontID, TextMarkupType.Highlight, XColor.FromRgb(255, 255, 0));

      doc.Pos.String = "400 610";
      fontID = doc.AddText("StrikeOut");
      markup = new TextMarkupAnnotation(doc, fontID, TextMarkupType.StrikeOut, XColor.FromRgb(255, 0, 0));

      doc.Pos.String = "400 580";
      fontID = doc.AddText("Squiggly");
      markup = new TextMarkupAnnotation(doc, fontID, TextMarkupType.Squiggly, XColor.FromRgb(0, 0, 255));

      CircleAnnotation circle = new CircleAnnotation(doc, new XRect("80 320 285 525"), XColor.FromRgb(255, 255, 0), XColor.FromRgb(255, 128, 0));
      circle.CircleElement.EntryBS = new BorderStyleElement(circle.CircleElement);
      circle.CircleElement.EntryBS.EntryW = 20;
      circle.CircleElement.EntryBS.EntryS = "D"; // dashed
      circle.CircleElement.EntryBS.EntryD = new ArrayElement<Element>(Atom.FromString("[3 2]"), cat);

      LineAnnotation arrowLine = new LineAnnotation(doc, new XPoint("385 330"), new XPoint("540 520"), XColor.FromRgb(255, 0, 0));
      arrowLine.LineEndingsStyle = "ClosedArrow ClosedArrow";
      arrowLine.LineElement.EntryBS = new BorderStyleElement(arrowLine.LineElement);
      arrowLine.LineElement.EntryBS.EntryW = 6;
      arrowLine.FillColor = XColor.FromRgb(255, 0, 0);

      double[] v1 = new double[] { 100, 70, 50, 120, 50, 220, 100, 270, 200, 270, 250, 220, 250, 120, 200, 70 };
      PolygonAnnotation polygon = new PolygonAnnotation(doc, v1, XColor.FromRgb(255, 0, 0), XColor.FromRgb(0, 255, 0));
      double[] v2 = new double[] { 400, 70, 350, 120, 350, 220, 400, 270, 500, 270, 550, 220, 550, 120, 500, 70 };
      PolygonAnnotation cloudyPolygon = new PolygonAnnotation(doc, v2, XColor.FromRgb(255, 0, 0), XColor.FromRgb(64, 85, 255));
      cloudyPolygon.CloudyEffect = 1;
      doc.Save(Server.MapPath("annotations2.pdf"));
    }

[Visual Basic]

Using doc As New Doc()
  'Markup annotations
  doc.Page = doc.AddPage()
  doc.Pos.X = 40
  doc.Pos.Y = doc.MediaBox.Top - 40
  doc.AddText("Markup annotations")
  Dim cat As Catalog = doc.ObjectSoup.Catalog

  Dim square As New SquareAnnotation(doc, New XRect("40 560 300 670"), XColor.FromRgb(255, 0, 0), XColor.FromRgb(0, 0, 255))
  square.SquareElement.EntryBS = New BorderStyleElement(square.SquareElement)
  square.SquareElement.EntryBS.EntryW = 8

  Dim line As New LineAnnotation(doc, New XPoint("100 565"), New XPoint("220 665"), XColor.FromRgb(255, 0, 0))
  line.LineElement.EntryBS = New BorderStyleElement(line.LineElement)
  line.LineElement.EntryBS.EntryW = 12
  line.RichTextCaption = "<span style= ""font-size:36pt; color:#FF0000"">Line</span>"

  doc.FontSize = 24
  Dim fontID As Integer = doc.AddFont("Times-Roman", LanguageType.Latin)
  doc.Pos.String = "400 670"
  Dim id As Integer = doc.AddText("Underline")
  Dim markup As New TextMarkupAnnotation(doc, fontID, TextMarkupType.Underline, XColor.FromRgb(0, 255, 0))

  doc.Pos.String = "400 640"
  fontID = doc.AddText("Highlight")
  markup = New TextMarkupAnnotation(doc, fontID, TextMarkupType.Highlight, XColor.FromRgb(255, 255, 0))

  doc.Pos.String = "400 610"
  fontID = doc.AddText("StrikeOut")
  markup = New TextMarkupAnnotation(doc, fontID, TextMarkupType.StrikeOut, XColor.FromRgb(255, 0, 0))

  doc.Pos.String = "400 580"
  fontID = doc.AddText("Squiggly")
  markup = New TextMarkupAnnotation(doc, fontID, TextMarkupType.Squiggly, XColor.FromRgb(0, 0, 255))

  Dim circle As New CircleAnnotation(doc, New XRect("80 320 285 525"), XColor.FromRgb(255, 255, 0), XColor.FromRgb(255, 128, 0))
  circle.CircleElement.EntryBS = New BorderStyleElement(circle.CircleElement)
  circle.CircleElement.EntryBS.EntryW = 20
  circle.CircleElement.EntryBS.EntryS = "D"
  ' dashed
  circle.CircleElement.EntryBS.EntryD = New ArrayElement(Of Element)(Atom.FromString("[3 2]"), cat)

  Dim arrowLine As New LineAnnotation(doc, New XPoint("385 330"), New XPoint("540 520"), XColor.FromRgb(255, 0, 0))
  arrowLine.LineEndingsStyle = "ClosedArrow ClosedArrow"
  arrowLine.LineElement.EntryBS = New BorderStyleElement(arrowLine.LineElement)
  arrowLine.LineElement.EntryBS.EntryW = 6
  arrowLine.FillColor = XColor.FromRgb(255, 0, 0)

  Dim v1 As Double() = New Double() {100, 70, 50, 120, 50, 220, _
    100, 270, 200, 270, 250, 220, _
    250, 120, 200, 70}
  Dim polygon As New PolygonAnnotation(doc, v1, XColor.FromRgb(255, 0, 0), XColor.FromRgb(0, 255, 0))
  Dim v2 As Double() = New Double() {400, 70, 350, 120, 350, 220, _
    400, 270, 500, 270, 550, 220, _
    550, 120, 500, 70}
  Dim cloudyPolygon As New PolygonAnnotation(doc, v2, XColor.FromRgb(255, 0, 0), XColor.FromRgb(64, 85, 255))
  cloudyPolygon.CloudyEffect = 1
  doc.Save(Server.MapPath("annotations2.pdf"))
End Using

Movies

You may wish to generate a PDF document with movies inserted dynamically at run-time.

The code below inserts a Flash movie and a WMV movie.

[C#]

using (Doc doc = new Doc()) {
      //Movie annotations
      //WMV is courtesy of NASA - http://www.nasa.gov/wmv/30873main_cardiovascular_300.wmv
      doc.Page = doc.AddPage();
      doc.Pos.X = 40;
      doc.Pos.Y = doc.MediaBox.Top - 40;
      doc.AddText("Multimedia features");

      doc.FontSize = 24;

      doc.Pos.String = "40 690";
      doc.AddText("Flash movie:");
      ScreenAnnotation movie1 = new ScreenAnnotation(doc, new XRect("40 420 300 650"), Server.MapPath("ABCpdf.swf"));

      doc.Pos.String = "312 690";
      doc.AddText("Flash rich media:");
      RichMediaAnnotation media1 = new RichMediaAnnotation(doc, new XRect("312 420 572 650"), Server.MapPath("ABCpdf.swf"), "Flash");
      doc.Save(Server.MapPath("annotations3.pdf"));
    }

[Visual Basic]

Using doc As New Doc()
  'Movie annotations
  'WMV is courtesy of NASA - http://www.nasa.gov/wmv/30873main_cardiovascular_300.wmv
  doc.Page = doc.AddPage()
  doc.Pos.X = 40
  doc.Pos.Y = doc.MediaBox.Top - 40
  doc.AddText("Multimedia features")

  doc.FontSize = 24

  doc.Pos.String = "40 690"
  doc.AddText("Flash movie:")
  Dim movie1 As New ScreenAnnotation(doc, New XRect("40 420 300 650"), Server.MapPath("ABCpdf.swf"))

  doc.Pos.String = "312 690"
  doc.AddText("Flash rich media:")
  Dim media1 As New RichMediaAnnotation(doc, New XRect("312 420 572 650"), Server.MapPath("ABCpdf.swf"), "Flash")
  doc.Save(Server.MapPath("annotations3.pdf"))
End Using

Other

You may wish to generate a PDF document with other types of Annotation inserted dynamically at run-time.

The code below adds a sticky note, a file attachment and some rubber stamps.

[C#]

using (Doc doc = new Doc()) {doc.Page = doc.AddPage();
      doc.FontSize = 36;
      doc.Pos.X = 40;
      doc.Pos.Y = doc.MediaBox.Top - 40;
      doc.AddText("Other types of annotations");

      //Sticky note annotation
      doc.FontSize = 24;
      doc.Pos.String = "40 680";
      doc.AddText("Text annotation");
      TextAnnotation textAnnotation = new TextAnnotation(doc, new XRect("340 660 360 680"), new XRect("550 650 600 750"), "6 sets of 13 pages. Trim to 5X7.");

      //File attachment annotation
      doc.Pos.String = "40 640";
      doc.AddText("File Attachment annotation");
      FileAttachmentAnnotation fileAttachment = new FileAttachmentAnnotation(doc, new XRect("340 620 360 640"), Server.MapPath("video.WMV"));

      //StampAnnotations
      doc.Pos.String = "40 600";
      doc.AddText("Stamp annotations");
      StampAnnotation stamp1 = new StampAnnotation(doc, new XRect("340 560 540 600"), "DRAFT", XColor.FromRgb(0, 0, 128));
      StampAnnotation stamp2 = new StampAnnotation(doc, new XRect("340 505 540 545"), "FINAL", XColor.FromRgb(0, 128, 0));
      StampAnnotation stamp3 = new StampAnnotation(doc, new XRect("340 450 540 490"), "NOT APPROVED", XColor.FromRgb(128, 0, 0));
      doc.Save(Server.MapPath("annotations4.pdf"));
    }

[Visual Basic]

Using doc As New Doc()
  doc.Page = doc.AddPage()
  doc.FontSize = 36
  doc.Pos.X = 40
  doc.Pos.Y = doc.MediaBox.Top - 40
  doc.AddText("Other types of annotations")

  'Sticky note annotation
  doc.FontSize = 24
  doc.Pos.String = "40 680"
  doc.AddText("Text annotation")
  Dim textAnnotation As New TextAnnotation(doc, New XRect("340 660 360 680"), New XRect("550 650 600 750"), "6 sets of 13 pages. Trim to 5X7.")

  'File attachment annotation
  doc.Pos.String = "40 640"
  doc.AddText("File Attachment annotation")
  Dim fileAttachment As New FileAttachmentAnnotation(doc, New XRect("340 620 360 640"), Server.MapPath("video.WMV"))

  'StampAnnotations
  doc.Pos.String = "40 600"
  doc.AddText("Stamp annotations")
  Dim stamp1 As New StampAnnotation(doc, New XRect("340 560 540 600"), "DRAFT", XColor.FromRgb(0, 0, 128))
  Dim stamp2 As New StampAnnotation(doc, New XRect("340 505 540 545"), "FINAL", XColor.FromRgb(0, 128, 0))
  Dim stamp3 As New StampAnnotation(doc, New XRect("340 450 540 490"), "NOT APPROVED", XColor.FromRgb(128, 0, 0))
  doc.Save(Server.MapPath("annotations4.pdf"))
End Using


PDF Rendering Example

This example shows how to render a PDF document.

For an example of how to render a PDF direct to screen and how to print a PDF see the ABCpdfView project and classes under the ABCpdf menu item.

Read

We create an ABCpdf Doc object and read our source PDF.

[C#]

Doc doc = new Doc();
doc.Read(Server.MapPath("../Rez/spaceshuttle.pdf"));

[Visual Basic]
Dim doc As New Doc()
doc.Read(Server.MapPath("../Rez/spaceshuttle.pdf"))

Prefs

We specify our base rendering settings.

[C#]

doc.Rendering.DotsPerInch = 36;

[Visual Basic]
doc.Rendering.DotsPerInch = 36

Save

Finally we save the first four pages of the document in png format.

[C#]

for (int i = 1; i <= 4; i++) {
  doc.PageNumber = i;
  doc.Rect.String = doc.CropBox.String;
  doc.Rendering.Save(Server.MapPath("shuttle_p" + i.ToString() +".png"));
}

[Visual Basic]
Dim i As Integer = 1
While i <= 4
  doc.PageNumber = i
  doc.Rect.String = doc.CropBox.[String]
  doc.Rendering.Save(Server.MapPath("shuttle_p" + i.ToString() + ".png"))
  System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
End While

Results

shuttle_p1.png

shuttle_p2.png

shuttle_p3.png

shuttle_p4.png


System.Drawing Example

Intro

This example shows how to port System.Drawing code for output to PDF.

You may have System.Drawing code which writes output to the screen or an image or to a printer. You may wish to modify this code to write to a PDF. ABCpdf comes with wrapper code which can significantly ease this process.

You can find a full example project including the wrapper classes under the ABCpdf menu item.

Basics

The wrapper contains the following namespaces:

using WebSupergoo.ABCpdf12.Drawing;
using WebSupergoo.ABCpdf12.Drawing.Drawing2D;
using WebSupergoo.ABCpdf12.Drawing.Text;

These contain classes which are direct analogues for the classes contained in the System.Drawing namespaces. For example, a System.Drawing.Pen maps to a WebSupergoo.ABCpdf12.Drawing.Pen and a System.Drawing.Bitmap maps to a WebSupergoo.ABCpdf12.Drawing.Bitmap.

The procedure for porting your System.Drawing code is simple:

  1. Change namespaces from those in System.Drawing to the corresponding ones in ABCpdf12.Drawing (Drawing, Drawing.Text, Drawing.Drawing2D etc.)
  2. Change all types from those in System.Drawing to the corresponding types in ABCpdf12.Drawing (Pen, Brush, Color etc.)
  3. Remove any code which does not have an analogues in ABCpdf.Drawing

In general, the number of calls which do not have analogues in ABCpdf.Drawing should be small. However, we provide the full source code for System.Drawing so extending the assembly is simple.

As well as the standard functions analogous to those in System.Drawing, the ABCpdf12.Drawing namespace also contains similar functions aimed at greater control over the PDF production process. For example, the ABCpdf Color class contains a FromCmyk function to allow the construction of CMYK colors as well as RGB ones.

Original

We start with our source System.Drawing code.

[C#]

// create a canvas for painting on
Bitmap pg = new Bitmap((int)(8.5 * 72), (int)(11 * 72));
Graphics gr = Graphics.FromImage(pg);

// clear the canvas to white
Rectangle pgRect = new Rectangle(0, 0, pg.Width, pg.Height);
SolidBrush solidWhite = new SolidBrush(Color.White);
gr.FillRectangle(solidWhite, pgRect);
// load a new image and draw it centered on our canvas
Stream stm = Assembly.GetExecutingAssembly().GetManifestResourceStream("Examples.pic1.jpg");
Image img = Image.FromStream(stm);
int w = img.Width * 2;
int h = img.Height * 2;
Rectangle rc = new Rectangle((pg.Width - w) / 2, (pg.Height - h) / 2, w, h);
gr.DrawImage(img, rc);
img.Dispose();
stm.Close();
// frame the image with a black border
gr.DrawRectangle(new Pen(Color.Black, 4), rc);
// add some text at the top left of the canvas
Font fn = new Font("Comic Sans MS", 72);
SolidBrush solidBlack = new SolidBrush(Color.Black);
gr.DrawString("My Picture", fn, solidBlack, (int)(pg.Width * 0.1), (int)(pg.Height * 0.1));

// save the output
pg.Save("../../abcpdf.drawing.gif", System.Drawing.Imaging.ImageFormat.Gif);

[Visual Basic]
Imports WebSupergoo.ABCpdf12.Drawing;
Imports WebSupergoo.ABCpdf12.Drawing.Drawing2D;
Imports WebSupergoo.ABCpdf12.Drawing.Text;

Names

First, we swap out the old System.Drawing namespaces and insert our own ABCpdf.Drawing ones. Note that ABCpdf.Drawing uses structures like rectangles and points which are defined in System.Drawing. So, we create aliases to make it easy to reference them.

[C#]

using System;
using System.IO;
using System.Reflection;

using WebSupergoo.ABCpdf12.Drawing;
using WebSupergoo.ABCpdf12.Drawing.Drawing2D;
using WebSupergoo.ABCpdf12.Drawing.Text;
using Rectangle = System.Drawing.Rectangle;
using RectangleF = System.Drawing.RectangleF;
using Point = System.Drawing.Point;
using PointF = System.Drawing.PointF;

[Visual Basic]
Imports System;
Imports System.IO;
Imports System.Reflection;

Imports WebSupergoo.ABCpdf12.Drawing;
Imports WebSupergoo.ABCpdf12.Drawing.Drawing2D;
Imports WebSupergoo.ABCpdf12.Drawing.Text;
Imports Rectangle = System.Drawing.Rectangle;
Imports RectangleF = System.Drawing.RectangleF;
Imports Point = System.Drawing.Point;
Imports PointF = System.Drawing.PointF;

Create

Because we're drawing on a page of a PDF document rather than on an image, we need to make a few modifications to the first lines of code.

[C#]

// create a canvas for painting on
PDFDocument doc = new PDFDocument();
var pg = doc.AddPage((int)(8.5 * 300), (int)(11 * 300));
var gr = pg.Graphics;

[Visual Basic]
' create a canvas for painting on
Dim doc As New PDFDocument()
Dim pg = doc.AddPage(DirectCast(8.5 * 300, Integer), DirectCast(11 * 300, Integer))
Dim gr = pg.Graphics

Draw

The drawing code remains completely unchanged.

[C#]

// clear the canvas to white
Rectangle pgRect = new Rectangle(0, 0, pg.Width, pg.Height);
SolidBrush solidWhite = new SolidBrush(Color.White);
gr.FillRectangle(solidWhite, pgRect);
// load a new image and draw it centered on our canvas
Stream stm = File.OpenRead(Server.MapPath("mypics/pic1.jpg"));
Image img = Image.FromStream(stm);
int w = img.Width;
int h = img.Height;
Rectangle rc = new Rectangle((pg.Width - w) / 2, (pg.Height - h) / 2, w, h);
gr.DrawImage(img, rc);
img.Dispose();
stm.Close();
// frame the image with a black border
gr.DrawRectangle(new Pen(Color.Black, 4), rc);
// add some text at the top left of the canvas
Font fn = new Font("Comic Sans MS", 300);
SolidBrush solidBlack = new SolidBrush(Color.Black);
gr.DrawString("My Picture", fn, solidBlack, (int)(pg.Width * 0.1), (int)(pg.Height * 0.1));

[Visual Basic]
' clear the canvas to white
Dim pgRect As New Rectangle(0, 0, pg.Width, pg.Height)
Dim solidWhite As New SolidBrush(Color.White)
gr.FillRectangle(solidWhite, pgRect)
' load a new image and draw it centered on our canvas
Dim stm As Stream = File.OpenRead(Server.MapPath("mypics/pic1.jpg"))
Dim img As Image = Image.FromStream(stm)
Dim w As Integer = img.Width
Dim h As Integer = img.Height
Dim rc As New Rectangle((pg.Width - w) / 2, (pg.Height - h) / 2, w, h)
gr.DrawImage(img, rc)
img.Dispose()
stm.Close()
' frame the image with a black border
gr.DrawRectangle(New Pen(Color.Black, 4), rc)
' add some text at the top left of the canvas
Dim fn As New Font("Comic Sans MS", 300)
Dim solidBlack As New SolidBrush(Color.Black)
gr.DrawString("My Picture", fn, solidBlack, DirectCast(pg.Width * 0.1, Integer), DirectCast(pg.Height * 0.1, Integer))

Save

Because we're saving to a PDF document, we need to make a few modifications to the last lines of code.

[C#]

// save the output
doc.Save(Server.MapPath("abcpdf.drawing.pdf"));

[Visual Basic]
' save the output
doc.Save(Server.MapPath("abcpdf.drawing.pdf"))

Results

abcpdf.drawing.pdf


WPF Tables Example

This example shows how to import Windows Presentation Foundation (WPF) Extensible Application Markup Language (XAML) tables into a PDF document. Each table has been specified in a XAML file.

You can find the full project and classes under the ABCpdf menu item. The project includes code for laying out four different types of tables. Two get their input data from text files and two from XML files.

The tables are intentionally very similar to those in the Small Table Example and Large Table Example to allow you to compare the two different layout methods.

WPF Limitations. The WPF Table component does not support the following features:

WPF supports row and column backgrounds and table and cell borders. However, it does not support row or column borders.

WPF does not support automatic header and footer repetition when a table is split across pages. Some people appear to have extended the DocumentPaginator class to add headers manually in code during the XPS serialization process. However, our code does not demonstrate this technique.

WPF does not directly support list data binding. By this, we mean that there is no way to define a row template and then have the table automatically add a row for each data item in the data provider. We achieve this functionality by manipulating the XAML code in memory to add additional rows.

XAML

First, we define the table structure.

Our Small and Large tables have a fairly simple structure. For example, the small table structure is defined in a XAML design file - SmallTable.xaml.

<Table Name="ItemsTable" CellSpacing="10" BorderBrush="Black" BorderThickness="2" TextAlignment="Justify">
  <Table.Columns>
    <TableColumn Width="120"/>
    <TableColumn Width="180"/>
    <TableColumn Width="120"/>
    <TableColumn Width="140"/>
    <TableColumn Width="140"/>
  </Table.Columns>
  <TableRowGroup Background="White" DataContext="{Binding Source={StaticResource InputData}, Path=[0]}">
    <TableRow>
      <TableCell>
        <Paragraph>
          <TextBlock TextWrapping="Wrap" Text="{Binding Path=Columns[0]}"/>
        </Paragraph>
      </TableCell>
      <TableCell>
        <Paragraph>
          <TextBlock TextWrapping="Wrap" Text="{Binding Path=Columns[1]}"/>
        </Paragraph>
      </TableCell>
      <TableCell>
        <Paragraph>
          <TextBlock TextWrapping="Wrap" Text="{Binding Path=Columns[2]}"/>
        </Paragraph>
      </TableCell>
      <TableCell>
        <Paragraph>
          <TextBlock TextWrapping="Wrap" Text="{Binding Path=Columns[3]}"/>
        </Paragraph>
      </TableCell>
      <TableCell>
        <Paragraph>
          <TextBlock TextWrapping="Wrap" Text="{Binding Path=Columns[4]}"/>
        </Paragraph>
      </TableCell>
    </TableRow>
  </TableRowGroup>
</Table>;

Refer to the MSDN WPF Table Overview for more information on how to define WPF tables. Note that we are using Table and not Grid because we need to place our table in a Flow Document. Although Grid can be wrapped in a UI container so as to appear in a flow document, it cannot be split over multiple pages.

Our table definition contains a single row with five columns. We will see later on how to duplicate this row so that there is one for every item in the data source so as to achieve list binding in code. Our data source is defined as follows:

<c:TextDataProvider x:Key="InputData" FileName="text6.txt"/>

Our TextDataProvider is a custom-written class that extracts text from a tab separated input file. It supplies this text to the targets via the binding indicated by the DataContext and Binding attributes:

<TableRowGroup Background="White" DataContext="{Binding Source={StaticResource InputData}, Path=[0]}">

... indicates that this row group is bound to the first line of the file.

<TextBlock TextWrapping="Wrap" Text="{Binding Path=Columns[0]}"/>

... indicates that the text block in this cell is bound to the first column of the line.

The large table structure is almost identical to the small table structure. It is defined in LargeTable.xaml. Because the pagination is done automatically by the flow document paginator, the implementation of the two tables is identical apart from the small differences in the XAML table definitions. The difference between the table definitions is that they bind to different input files and have different numbers of columns.

Bind

Next, we add the table rows

Because Table does not support binding to a collection of Items (unlike for example other WPF UI controls such as ListBox or ItemsControl) - also known as list binding, we manually add table rows in code.

To do so, we load the XAML design file at runtime. We then use XML classes to duplicate rows and bind them to different data items. To load XAML design files at runtime, we must set their type as "Content" in the Visual Studio file properties. It may also help to copy them into the binary location.

[C#]

MemoryStream ModifyXamlUsingTextProvider(string mDataProvider, string mXamlFile, string mTableXamlLocation, string mTableName)
{
  TextDataProvider dataProvider = new TextDataProvider(mDataProvider);
  XmlDocument xamlDoc = new XmlDocument();
  FileStream xamlFile = new FileStream(mXamlFile, FileMode.Open);
  xamlDoc.Load(xamlFile);

  XmlNamespaceManager nsmgr = new XmlNamespaceManager(xamlDoc.NameTable);
  nsmgr.AddNamespace("x", "http://schemas.microsoft.com/winfx/2006/xaml/presentation");

  XmlNode itemsTable = xamlDoc.DocumentElement.SelectSingleNode(mTableXamlLocation + "[@Name='" + mTableName + "']", nsmgr);

  for (int i = 1; i < dataProvider.Count; i++) {
    XmlNode rowGroup = itemsTable.LastChild;
    XmlNode newRowGroup = rowGroup.Clone();
    string bindingText = newRowGroup.Attributes["DataContext"].Value;
    bindingText = bindingText.Remove(bindingText.LastIndexOf('[')) + "[" + i + "] }";
    newRowGroup.Attributes["DataContext"].Value = bindingText;
    newRowGroup.Attributes["Background"].Value = (i % 2) == 0 ? "White" : "LightGray";
    itemsTable.InsertAfter(newRowGroup, rowGroup);
  }

  MemoryStream memStream = new MemoryStream();
  xamlDoc.Save(memStream);
  xamlFile.Close();
  return memStream;
}

[Visual Basic]

Private Function ModifyXamlUsingTextProvider(mDataProvider As String, mXamlFile As String, mTableXamlLocation As String, mTableName As String) As MemoryStream
  Dim dataProvider As New TextDataProvider(mDataProvider)
  Dim xamlDoc As New XmlDocument()
  Dim xamlFile As New FileStream(mXamlFile, FileMode.Open)
  xamlDoc.Load(xamlFile)

  Dim nsmgr As New XmlNamespaceManager(xamlDoc.NameTable)
  nsmgr.AddNamespace("x", "http://schemas.microsoft.com/winfx/2006/xaml/presentation")

  Dim itemsTable As XmlNode = xamlDoc.DocumentElement.SelectSingleNode(mTableXamlLocation + "[@Name='" + mTableName + "']", nsmgr)

  Dim i As Integer = 1
  While i < dataProvider.Count
    Dim rowGroup As XmlNode = itemsTable.LastChild
    Dim newRowGroup As XmlNode = rowGroup.Clone()
    Dim bindingText As String = newRowGroup.Attributes("DataContext").Value
    bindingText = bindingText.Remove(bindingText.LastIndexOf("["C)) + "[" + i + "] }"
    newRowGroup.Attributes("DataContext").Value = bindingText
    newRowGroup.Attributes("Background").Value = If((i Mod 2) = 0, "White", "LightGray")
    itemsTable.InsertAfter(newRowGroup, rowGroup)
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While

  Dim memStream As New MemoryStream()
  xamlDoc.Save(memStream)
  xamlFile.Close()
  Return memStream
End Function

The data provider is loaded directly from code so we know how many data items (text file lines) are available. The XAML design document is loaded as a XmlDocument. We retrieve the XML node that corresponds to our table via the Xpath query passed to SelectSingleNode() in the document element. For this, we need to load the WPF namespace else the query will fail.

Once we have our items table, we get hold of the row group. The row group is the last child of the table. We duplicate the row group by using the XmlNode.Clone() method and then change the data binding to point to the next row. We also alternate the row background colors. After all items have been added, we save the XML document into a memory stream.

[C#]

Stream stm = ModifyXamlUsingTextProvider(null, null, null, null);
var page = XamlReader.Load(stm) as System.Windows.Controls.Page;
FlowDocumentPageViewer docViewer = LogicalTreeHelper.FindLogicalNode(page, "DocViewer") as FlowDocumentPageViewer;
page.Content = null;
stm.Close();

[Visual Basic]

Dim stm As Stream = ModifyXamlUsingTextProvider(Nothing, Nothing, Nothing, Nothing)
Dim page = TryCast(XamlReader.Load(stm), System.Windows.Controls.Page)
Dim docViewer As FlowDocumentPageViewer = TryCast(LogicalTreeHelper.FindLogicalNode(page, "DocViewer"), FlowDocumentPageViewer)
page.Content = Nothing
stm.Close()

We use XamlReader.Load() to load the root object specified in the XAML design file (stored in the memory stream). This is not the Table, or the FlowDocument (so as to then convert it directly to XPS and PDF as shown below); it is a Page. This is because it is convenient to view the Table in the Visual Studio XAML designer so we chose to have a Page as the root element. This page contains a flow document viewer and this allows the designer to show the table as we type XML tags. We then simply discard the page and keep the document viewer if we want to show the document in a window or we just keep the document if we only want to convert it to XPS. The page content must be set to null; otherwise, the child elements (the document viewer and document) cannot be attached to a different container (the window or the XPS document).

Save

The table is saved as XPS first and then converted into PDF.

[C#]

void SaveToXps(Stream fileStream, FlowDocumentPageViewer viewer)
{
  var package = Package.Open(fileStream, FileMode.Create, FileAccess.ReadWrite);
  var doc = new XpsDocument(package);
  var writer = XpsDocument.CreateXpsDocumentWriter(doc);
  var document = viewer.Document;
  writer.Write(document.DocumentPaginator);
  doc.Close();
  package.Close();
}

void SaveToPdf(string pdfFileName, FlowDocumentPageViewer viewer)
{
  MemoryStream memStream = new MemoryStream();
  SaveToXps(memStream, viewer);
  var pdfDoc = new Doc();
  pdfDoc.Read(memStream, new XReadOptions() { FileExtension = ".xps" });
  pdfDoc.Save(pdfFileName);
  pdfDoc.Clear();
  memStream.Close();
}

[Visual Basic]

Private Sub SaveToXps(fileStream As Stream, viewer As FlowDocumentPageViewer)
  Dim package__1 = Package.Open(fileStream, FileMode.Create, FileAccess.ReadWrite)
  Dim doc = New XpsDocument(package__1)
  Dim writer = XpsDocument.CreateXpsDocumentWriter(doc)
  Dim document = viewer.Document
  writer.Write(document.DocumentPaginator)
  doc.Close()
  package__1.Close()
End Sub

Private Sub SaveToPdf(pdfFileName As String, viewer As FlowDocumentPageViewer)
  Dim memStream As New MemoryStream()
  SaveToXps(memStream, viewer)
  Dim pdfDoc = New Doc()
  pdfDoc.Read(memStream, New XReadOptions() With { _
    Key .FileExtension = ".xps" _
  })
  pdfDoc.Save(pdfFileName)
  pdfDoc.Clear()
  memStream.Close()
End Sub

We create an XPS file in memory using MemoryStream. We then pass the document paginator to the XPS writer. The document paginator splits the flow document into a set of pages and writes them to the XPS document. The PDF document Read() method accepts a Stream containing the XPS document and a type. After the XPS document has been loaded into the PDF document, this can be saved to file.

XML

The Invoice and Space table examples bind to an XML data source and have a more complex structure.

As such, please see the XAML design files, InvoiceTable.xaml and SpaceTable.xml, for the full table structure.

Because the table input data is specified as XML, we can use the WPF standard data provider, XmlDataProvider, instead of our own custom TextDataProvider.

Because the data provider is XML, we can use the XmlDocument for the data files as well as XAML design files.

Each table item is mapped to an XML item so we can count the XML items and add a new row group for each one of them (bar of course the first one as defined in the design file). Note that the XmlDataProvider indexing is one rather than zero based.

Results

We get output very similar to that from the Tables Example project. For example.

table2.pdf - [Page 1]

table2.pdf - [Page 2] | table2.pdf - [Page 3]
table2.pdf - [Page 4] | table2.pdf - [Page 5]


Doc Class

This is the top level object that represents a PDF document.

System.Object
   WebSupergoo.ABCpdf12.Doc

Implements: IDisposable

Method | Description
AddArc | Adds an arc to the current page.
AddBookmark | Adds a bookmark pointing to the current page.
Throws Exceptions AddColorSpaceFile | Adds an ICC based color space to the document.
AddColorSpaceSpot | Adds a separation color space to the document.
AddFont | Adds a font reference to the document.
AddGrid | Adds a visible grid to the current page.
Throws Exceptions AddImage | Adds an image to the current page.
Throws Exceptions AddImageBitmap | Adds a System.Drawing.Bitmap to the current page.
Throws Exceptions AddImageCopy | Adds a copy of an existing image in the Doc, to the current page.
Throws Exceptions AddImageData | Extract an image from data and add it to the current page.
AddImageDoc | Draw a page from one PDF document onto the current page of this document.
AddImageFile | Extract an image from a file and add it to the current page.
Throws Exceptions AddImageHtml | Renders a web page specified as HTML.
Throws Exceptions AddImageObject | Adds an XImage based image to the current page.
Throws Exceptions AddImageToChain | Adds a new page from a paged HTML or PostScript render.
Throws Exceptions AddImageUrl | Renders a web page specified by URL.
AddLine | Adds a line to the current page.
AddObject | Adds a native PDF object to the document.
AddOval | Adds an oval to the current page.
AddPage | Adds a page to the current document.
AddPie | Adds a pie slice to the current page.
AddPoly | Adds a polygon to the current page.
AddRect | Add a rectangle to the current page.
AddText | Adds a block of single styled text to the current page.
AddTextStyled | Adds a block of multi-styled text to the current page.
AddXObject | Add a Form or Image XObject to the current page.
Append | Appends a PDF to the end of the document.
Chainable | Determines if an object is chainable.
Clear | Clears the document.
ClearCachedDecompressedStreams | Clears the cached, decompressed data for stream objects.
Delete | Deletes an object previously added to the document.
EmbedFont | Embeds a font into the document.
FillRect | Adds a painted rectangle to the current page.
FitTextStyled | Fit a block of styled text into the current rectangle.
FitText | Fit a block of text into the current rectangle on the current page.
Flatten | Flattens and compresses the current page.
FrameRect | Adds a rectangular frame to the current page.
Throws Exceptions GetData | Saves a document to memory.
GetInfo | Gets string information about an object.
GetInfoDate | Gets date information about an object.
GetInfoDouble | Gets numeric information about an object.
GetInfoInt | Gets numeric information about an object.
GetInfoInt64 | Gets numeric information about an object.
Throws Exceptions GetStream | Gets a document as raw data stream.
GetText | Extract content from the current page in a specified format.
MeasureText | Measure the length of a block of text without adding it to the page.
Throws Exceptions Read | Reads an existing document.
RemapPages | Remaps pages for reordering, copying and deletion.
Save | Saves the document as PDF.
SetInfo | Sets information about an object.
ToString | A string representation of the graphic style of the document.

Property | Description
Bookmark | The top level bookmark for the document.
Color | The current drawing and filling color.
ColorSpace | The current ColorSpace ID.
CropBox | The current document visible page size.
Encryption | The current encryption settings.
Font | The current Font ID.
FontSize | The current text size.
Form | The document form and fields.
HtmlOptions | The HTML and URL rendering options.
Layer | The insertion layer for new content.
LayerCount | The number of layers on the current page.
MediaBox | The current document page size.
ObjectSoup | The collection of obects that make up the PDF.
Options | The state options for low level drawing control.
Page | The current Page ID.
PageCount | The number of pages in the document.
PageNumber | The page number of the current page.
Pos | The current drawing position.
Rect | The current rectangle used for drawing operations.
Rendering | The rendering options and control.
Root | The root catalog object.
SaveOptions | The save options and control.
String | A string representation of the graphic style of the document.
TextStyle | The current style for drawing text.
TopDown | The current position of the origin.
Transform | The current transformation for drawing.
Units | The current measurement units.
Width | The current line width.


Doc AddArc Function. Adds an arc to the current page. ABCpdf .NET PDF Library.

AddArc Function

Adds an arc to the current page.

Syntax

[C#]
int AddArc(double as, double ae, double cx, double cy, double rx, double ry)
int AddArc(double as, double ae, double cx, double cy, double rx, double ry, bool filled)

[Visual Basic]
Function AddArc(as As Double, ae As Double, cx As Double, cy As Double, rx As Double, ry As Double) As Integer
Function AddArc(as As Double, ae As Double, cx As Double, cy As Double, rx As Double, ry As Double, filled As Boolean) As Integer

Params
Name | Description
as | The start angle of the arc in degrees.
ae | The end angle of the arc in degrees.
cx | The horizontal center of the arc.
cy | The vertical center of the arc.
rx | The horizontal radius of the arc.
ry | The vertical radius of the arc.
filled | Whether to fill the arc rather than simply drawing it.
return | The Object ID of the newly added Graphic Object.

Notes

Adds an arc to the current page. The arc is drawn in the current color at the current width and with the current options.

The arc is fixed at the center coordinate and can have different horizontal and vertical radii. Drawing starts at the start angle and the arc is swept out until the end angle is reached. Angles are measured anti-clockwise with zero at three o'clock.

The AddArc function returns the Object ID of the newly added Graphic Object.

Example

The following code adds an arc to a document.

[C#]

using (Doc doc = new Doc()) {
  doc.Width = 24;
  doc.Color.String = "120 0 0";
  doc.AddArc(0, 270, 300, 400, 200, 300);
  doc.Save(Server.MapPath("docaddarc.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Width = 24
  doc.Color.String = "120 0 0"
  doc.AddArc(0, 270, 300, 400, 200, 300)
  doc.Save(Server.MapPath("docaddarc.pdf"))
End Using

docaddarc.pdf


Doc AddBookmark Function. Adds a bookmark pointing to the current page. ABCpdf .NET PDF Library.

AddBookmark Function

Adds a bookmark pointing to the current page.

Syntax

[C#]

int AddBookmark(string path, bool open);

[Visual Basic]
Function AddBookmark(path As String, open As Boolean) As Integer

Params
Name | Description
path | The path to the bookmark.
open | Whether the bookmark should be displayed open (expanded) or closed (collapsed).
return | The Object ID of the newly added Bookmark Object.

Notes

Adds a bookmark which points to the current page.

Bookmarks are specified as paths in much the same way as file paths. Headings and subheadings are separated by a backslash character. For example:

"1. Introduction\1.1 Aim and Methods\1.1.3 Diagrams"

When a bookmark is added, intermediate headings and subheadings will be created if they do not already exist.

To add multiple bookmarks all referring to the same page simply call the AddBookmark function multiple times.

This function returns the Object ID of the newly added Bookmark Object.

Hyperlinks. Sometimes you may wish to insert bookmarks which link to an external web page specified using a URI or URL. You can do this using hyperlink code of the following form.

[C#]

static int AddBookmarkToUri(Doc doc, string bookmark, string uri) {
  int id = doc.AddBookmark(bookmark, true);
  doc.SetInfo(id, "/Dest:Del", ""); // remove link to page and add link to url
  doc.SetInfo(id, "/A", "<< /Type /Action /S /URI /URI () >>");
  doc.SetInfo(id, "/A/URI:Text", uri);
  return id;
}

[Visual Basic]
Private Shared Function AddBookmarkToUri(ByVal doc As Doc, ByVal bookmark As String, ByVal uri As String) As Integer
  Dim id As Integer = doc.AddBookmark(bookmark, True)
  doc.SetInfo(id, "/Dest:Del", "", "") ' remove link to page and add link to url
  doc.SetInfo(id,  "/A", "<< /Type /Action /S /URI /URI () >>")
  doc.SetInfo(id, "/A/URI:Text", uri)
  Return id
End Function

Example

The following code adds a sequence of pages with a nested sequence of bookmarks. The image shows the appearance of the document outline. Note that none of the subject pages are visible because the chapter pages were added in a collapsed state.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 64;
  for (int i = 1; i < 4; i++) {
    doc.Page = doc.AddPage();
    string theSection = $"{i} Section";
    doc.AddText(theSection);
    doc.AddBookmark(theSection, true);
    for (int j = 1; j < 6; j++) {
      doc.Page = doc.AddPage();
      string theChapter = $"{theSection}\\{j} Chapter";
      doc.AddText(theChapter);
      doc.AddBookmark(theChapter, false);
      for (int k = 1; k < 7; k++) {
        doc.Page = doc.AddPage();
        string theSubject =  $"{theChapter}\\{k} Subject";
        doc.AddText(theSubject);
        doc.AddBookmark(theSubject, true);
      }
    }
  }
  doc.Save(Server.MapPath("docaddbookmark.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 64
  Dim i As Integer = 1
  While i < 4
    doc.Page = doc.AddPage()
    Dim theSection As String = $"{i} Section"
    doc.AddText(theSection)
    doc.AddBookmark(theSection, True)
    Dim j As Integer = 1
    While j < 6
      doc.Page = doc.AddPage()
      Dim theChapter As String = $"{theSection}\{j} Chapter"
      doc.AddText(theChapter)
      doc.AddBookmark(theChapter, False)
      Dim k As Integer = 1
      While k < 7
        doc.Page = doc.AddPage()
        Dim theSubject As String = $"{theChapter}\{k} Subject"
        doc.AddText(theSubject)
        doc.AddBookmark(theSubject, True)
        System.Math.Max(System.Threading.Interlocked.Increment(k),k - 1)
      End While
      System.Math.Max(System.Threading.Interlocked.Increment(j),j - 1)
    End While
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While
  doc.Save(Server.MapPath("docaddbookmark.pdf"))
End Using

docaddbookmark.pdf


Doc AddColorSpaceFile Function. Adds an ICC based color space to the document. ABCpdf .NET PDF Library.

AddColorSpaceFile Function

Adds an ICC based color space to the document.

Syntax

[C#]
int AddColorSpaceFile(string path)

[Visual Basic]
Function AddColorSpaceFile(path As String) As Integer

Throws Exceptions may throw Exception()

Params
Name | Description
path | The path to the ICC color space file.
return | The Object ID of the newly added ColorSpace Object.

Notes

Adds an ICC based color space to the document returning the ID of the newly added object.

ICC Color Spaces allow the precise representation of colors in a device independent way. The ICC format is defined by the International Color Consortium (http://www.color.org/).

ABCpdf will allow you to add ICC profiles in the Gray, RGB, CMYK or Lab color spaces. This method will throw an error if the file is inaccessible or invalid.

The current color space is defined by the ColorSpace property. The current color is defined by the Color property. The ColorSpace is used when the Color is of a matching type. If the color type does not match then the default - device - color space is used.

For example you add a CMYK color space and assign it to the ColorSpace property. All CMYK Colors you use will be defined in terms of this color space. However RGB and Grayscale colors will continue to be defined in terms of the default - device - color spaces.

Example

In this example we add some CMYK text defined in an ICC based color space.

[C#]

using (Doc doc = new Doc()) {
  string theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.";
  doc.Rect.Inset(20, 40);
  doc.FontSize = 96;
  string thePath = Server.MapPath("../mypics/cmyk.icc");
  doc.ColorSpace = doc.AddColorSpaceFile(thePath);
  doc.Color.String = "200 20 20 20";
  doc.AddText(theText);
  doc.Save(Server.MapPath("docaddcolorspacefile.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theText As String = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur."
  doc.Rect.Inset(20, 40)
  doc.FontSize = 96
  Dim thePath As String = Server.MapPath("../mypics/cmyk.icc")
  doc.ColorSpace = doc.AddColorSpaceFile(thePath)
  doc.Color.String = "200 20 20 20"
  doc.AddText(theText)
  doc.Save(Server.MapPath("docaddcolorspacefile.pdf"))
End Using

docaddcolorspacefile.pdf


Doc AddColorSpaceSpot Function. Adds a separation color space to the document. ABCpdf .NET PDF Library.

AddColorSpaceSpot Function

Adds a separation color space to the document.

Syntax

[C#]
int AddColorSpaceSpot(string name, string color)

[Visual Basic]
Function AddColorSpaceSpot(name As String, color As String) As Integer

Params
Name | Description
name | The name of the color.
color | The display representation of the color. This should be supplied in the same format as the XColor.String uses.
return | The Object ID of the newly added ColorSpace Object.

Notes

Adds a separation color space to the document returning the ID of the newly added object.

Separation color spaces allow you to add spot colors or isolate the use of individual colorants. A separation color space represents a particular colorant and allows you to specify the amount of that colorant that is applied.

For example you might define a separation color space called Gold with a display representation of CMYK yellow. You might then draw some text with different amounts of Gold. When viewing the output on a standard monitor the display representation of the color would be used. However when printed - using appropriate software and an appropriate printer - the name of the color might be used to select a gold colored ink.

The current color space is defined by the ColorSpace property. The current color is defined by the Color property. Because separations represent a single value property you should use single component - grayscale - colors to specify the amount of spot colorant to use.

There are two special color spaces:

'All' refers collectively to all colorants on an output device. It can be useful for printing registration marks.

'None' indicates no colorant and will never produce any visible output.

Example

In this example we define a colorant called Gold and add some text using varying amounts of our colorant.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Inset(20, 20);
  doc.FontSize = 300;
  doc.ColorSpace = doc.AddColorSpaceSpot("GOLD", "0 0 100 0");
  for (int i = 1; i <= 10; i++) {
    doc.Color.Gray = 255 / i;
    doc.AddText(doc.Color.Gray.ToString());
    doc.Rect.Move(25, -50);
  }
  doc.Save(Server.MapPath("docaddcolorspacespot.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Inset(20, 20)
  doc.FontSize = 300
  doc.ColorSpace = doc.AddColorSpaceSpot("GOLD", "0 0 100 0")
  Dim i As Integer = 1
  While i <= 10
    doc.Color.Gray = 255 / i
    doc.AddText(doc.Color.Gray.ToString())
    doc.Rect.Move(25, -50)
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While
  doc.Save(Server.MapPath("docaddcolorspacespot.pdf"))
End Using

docaddcolorspacespot.pdf


Doc AddFont Function. Adds a font reference to the document. ABCpdf .NET PDF Library.

AddFont Function

Adds a font reference to the document.

Syntax

[C#]

int AddFont(string name)

int AddFont(string name, LanguageType language)

int AddFont(string name, LanguageType language, bool vertical)

[Visual Basic]
Function AddFont(name As String) As Integer

Function AddFont(name As String, language As LanguageType) As Integer

Function AddFont(name As String, language As LanguageType, vertical As Boolean) As Integer

Params
Name | Description
name | The name of the font typeface.
language

The language type to use. The LanguageType enumeration may take the following values:

  • Latin
  • Unicode - NB: This requires that the font be embedded. If you wish to use this selector use the EmbedFont call.
  • Korean
  • Japanese
  • ChineseS
  • ChineseT

See the Fonts and Languages section for details on language types. The default language type is Latin.

vertical

Whether the text direction should be vertical.

See the Fonts and Languages section for details on writing directions. The default is false to indicate standard left to right layout.

return | The Object ID of the newly added Font Object.

Notes

Adds a font to the document.

The font name and a description of the font style is held within the document. However the actual font itself is not added to the document unless the language is Unicode. (When Unicode is specified, this method will embed the font without subsetting.) If you wish to embed a font or use the Unicode language, you should use the EmbedFont method.

When a client opens the PDF Acrobat will attempt to find the exact same font on the client system. If the exact font is not available then a substitute font will be chosen using the font description to determine the best match.

The following fonts are guaranteed to be available on every system.

  • Times-Roman
  • Times-Bold
  • Times-Italic
  • Times-BoldItalic
  • Helvetica
  • Helvetica-Bold
  • Helvetica-Oblique
  • Helvetica-BoldOblique
  • Courier
  • Courier-Bold
  • Courier-Oblique
  • Courier-BoldOblique
  • Symbol
  • ZapfDingbats

Additionally you can add any TrueType, OpenType or Type 1 font that you have installed on your system. The name you should use is the one referenced in your fonts folder. For example.

  • Arial
  • Arial Black
  • Arial Black Italic
  • ...
  • Book Antiqua
  • Book Antiqua Bold
  • Book Antiqua Bold Italic
  • Book Antiqua Italic
  • ...
  • Venetian301BT
  • Venetian301BT Bold
  • ...

The AddFont function returns the Object ID of the newly added Font Object. Typically you will want to assign this return value to the document Font property using code of the form.

[C#]

theDoc.Font = theDoc.AddFont("Courier");

[Visual Basic]
theDoc.Font = theDoc.AddFont("Courier")

If the specified font could not be found then you will get an Object ID of zero returned. You may wish to check for this possibility otherwise a default font will be used.

Fonts are cached so newly added fonts will not be available to ABCpdf until the application is restarted. If you need to dynamically load a font you can pass this method a path to your font file. This will add the font to the cache and make it available for use. You should not move, rename or delete a font file which has been dynamically loaded using this technique.

Why is my language a string?

In older versions of ABCpdf the language parameter was a string. So you might find code of this form.

[C#]

theDoc.AddFont("Courier", "Latin");

[Visual Basic]
theDoc.AddFont("Courier", "Latin")

In more recent releases the language parameter has been changed to a true enumeration. This is a safer way of coding as it allows the compiler to ensure that the values you are using are valid. Your new code should look like this.

[C#]

theDoc.AddFont("Courier", LanguageType.Latin);

[Visual Basic]
theDoc.AddFont("Courier", LanguageType.Latin)

The names of the items in the LanguageType enumeration are the same as the values of the strings used in previous versions. So changing your code should be a simple search and replace operation. If you see a language of "" this equates to LanguageType.Latin.

Example

The following code adds two pieces of text to a document. The first piece is in Times-Roman and the second in Helvetica-Bold.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 48;
  string theFont = "Times-Roman ";
  doc.Font = doc.AddFont(theFont);
  doc.AddText(theFont);
  theFont = "Helvetica-Bold";
  doc.Font = doc.AddFont(theFont);
  doc.AddText(theFont);
  doc.Save(Server.MapPath("docaddfont.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 48
  Dim theFont As String = "Times-Roman "
  doc.Font = doc.AddFont(theFont)
  doc.AddText(theFont)
  theFont = "Helvetica-Bold"
  doc.Font = doc.AddFont(theFont)
  doc.AddText(theFont)
  doc.Save(Server.MapPath("docaddfont.pdf"))
End Using

docaddfont.pdf


Doc AddGrid Function. Adds a visible grid to the current page. ABCpdf .NET PDF Library.

AddGrid Function

Adds a visible grid to the current page.

Syntax

[C#]
int AddGrid()

[Visual Basic]
Function AddGrid() As Integer

Params
Name | Description
return | The Object ID of the newly added Grid Object.

Notes

Adds a visible grid to the current page. The grid shows locations on the page and the effect of the current transform. It is designed to help with object positioning during development.

Example

The following code modifies the page transform and then adds a grid to show how the transform has affected the page.

[C#]

using (Doc doc = new Doc()) {
  doc.Page = doc.AddPage();
  doc.Transform.Rotate(20, 100, 100);
  doc.AddGrid();
  doc.Save(Server.MapPath("docaddgrid.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Page = doc.AddPage()
  doc.Transform.Rotate(20, 100, 100)
  doc.AddGrid()
  doc.Save(Server.MapPath("docaddgrid.pdf"))
End Using

docaddgrid.pdf


Doc AddImage Function. Adds an image to the current page. ABCpdf .NET PDF Library.

AddImage Function

Adds an image to the current page.

Syntax

[C#]
int AddImage(XImage image)
int AddImage(string path)
int AddImage(byte[] data)
int AddImage(string path, int page)
int AddImage(byte[] data, int page)
int AddImage(int id)
int AddImage(System.Drawing.Bitmap bm)
int AddImage(Doc doc, int page)
int AddImage(Doc doc, int page, XRect src)

[Visual Basic]
Function AddImage(image As XImage) As Integer
Function AddImage(path As String) As Integer
Function AddImage(data() As Byte) As Integer
Function AddImage(path As String, page As Integer) As Integer
Function AddImage(data() As Byte, page As Integer) As Integer
Function AddImage(id As Integer) As Integer
Function AddImage(bm As System.Drawing.Bitmap) As Integer
Function AddImage(doc As Doc, page As Integer) As Integer
Function AddImage(doc As Doc, page As Integer, src As XRect) As Integer

Throws Exceptions may throw Exception()

Params
Name | Description
image | An XImage containing the image to be added to the page.
path | A file path, URL or html string to be added to the page.
data | The raw JPEG data to be added to the page.
id | An existing image object ID to be copied to the page again.
bm | A .NET Bitmap to be added to the page.
doc | A PDF document page to be added to the page.
page | The page of the document to be added.
src | The source area of the document page to be added.
return | The ID of the newly added Image Object.

Notes

Adds an image to the current page returning the ID of the newly added object.

This method attempts to make a sensible decision as to which of the following methods to call dependent on the content of the ImageSpec.

  • AddImageFile
  • AddImageData
  • AddImageCopy
  • AddImageUrl
  • AddImageHtml
  • AddImageToChain
  • AddImageDoc
  • AddImageObject
  • AddImageBitmap

This function is provided for backwards compatibility purposes. You should call the appropriate method directly rather than working via this method.

Example

None.


Doc AddImageBitmap Function. Adds a System.Drawing.Bitmap to the current page. ABCpdf .NET PDF Library.

AddImageBitmap Function

Adds a System.Drawing.Bitmap to the current page.

Syntax

[C#]
int AddImageBitmap(System.Drawing.Bitmap bm, bool transparent)

[Visual Basic]
Function AddImageBitmap(bm As System.Drawing.Bitmap, transparent As Boolean) As Integer

Throws Exceptions may throw Exception()

Params
Name | Description
bm | A .NET Bitmap to be added to the page.
transparent | Whether transparency information should be preserved.
return | The ID of the newly added Image Object.

Notes

Adds a System.Drawing.Bitmap to the current page.

If the Transparent parameter is set to true then any transparency information will be preserved. This allows you to add formats such as transparent GIF and PNG with alpha channel.

The image is scaled to fill the current Rect. It is transformed using the current Transform.

Example

The following code adds a transparent PNG to a document.

[C#]

using (Doc doc = new Doc()) {
  string thePath = Server.MapPath("../mypics/mypic.png");
  Bitmap bm = new Bitmap(thePath);
  doc.Rect.Inset(20, 20);
  doc.Color.String = "0 0 200";
  doc.FillRect();
  doc.AddImageBitmap(bm, true);
  bm.Dispose();
  doc.Save(Server.MapPath("docaddimagebitmap.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim thePath As String = Server.MapPath("../mypics/mypic.png")
  Dim bm As New Bitmap(thePath)
  doc.Rect.Inset(20, 20)
  doc.Color.String = "0 0 200"
  doc.FillRect()
  doc.AddImageBitmap(bm, True)
  bm.Dispose()
  doc.Save(Server.MapPath("docaddimagebitmap.pdf"))
End Using

docaddimagebitmap.pdf


Doc AddImageCopy Function. Adds a copy of an existing image in the Doc, to the current page. ABCpdf .NET PDF Library.

AddImageCopy Function

Adds a copy of an existing image in the Doc, to the current page.

Syntax

[C#]
int AddImageCopy(int id)

[Visual Basic]
Function AddImageCopy(id As Integer) As Integer

Throws Exceptions may throw Exception()

Params
Name | Description
id | An existing image object ID to be copied to the page again.
return | The ID of the newly added Image Object.

Notes

Adds a copy of an image which has already been inserted elsewhere in the document.

You can use this facility to add commonly used graphics such as watermarks. The raw image data is inserted only once which means that PDF size is greatly reduced.

This method only works with raster or bitmap images. So your ID must have been obtained from a previous call to AddImageFile, AddImageData or AddImageObject.

The image is scaled to fill the current Rect. It is transformed using the current Transform.

Example

This example shows how to read an existing PDF document and insert a background image into every page.

We start by reading our template PDF document and finding out core information we will need to reference each page.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/sample.pdf"));
  int theCount = doc.PageCount;

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/sample.pdf"))
  Dim theCount As Integer = doc.PageCount

We cycle through the pages inserting images as we go.

We set the layer property to ensure that the image gets added in the background rather than on top of existing content.

The first time we add an image file. Subsequent times we reference the image ID. This means that we embed only one copy of the image data and simply reference that data from each page.

Finally we save the modified PDF.

[C#]

  int theID = 0;
  for (int i = 1; i <= theCount; i++) {
    doc.PageNumber = i;
    doc.Layer = doc.LayerCount + 1;
    if (i == 1) {
      string thePath = Server.MapPath("../mypics/light.jpg");
      theID = doc.AddImageFile(thePath, 1);
    }
    else
      doc.AddImageCopy(theID);
  }
  doc.Save(Server.MapPath("watermark.pdf"));
}

[Visual Basic]
  Dim theID As Integer = 0
  Dim i As Integer = 1
  While i <= theCount
    doc.PageNumber = i
    doc.Layer = doc.LayerCount + 1
    If i = 1 Then
      Dim thePath As String = Server.MapPath("../mypics/light.jpg")
      theID = doc.AddImageFile(thePath, 1)
    Else
      doc.AddImageCopy(theID)
    End If
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While
  doc.Save(Server.MapPath("watermark.pdf"))
End Using

Given the following document.

sample.pdf - [Page 1] | sample.pdf - [Page 2]
sample.pdf - [Page 3] | sample.pdf - [Page 4]

And the following image.

This is the kind of output you might expect.

watermark.pdf - [Page 1] | watermark.pdf - [Page 2]
watermark.pdf - [Page 3] | watermark.pdf - [Page 4]


Doc AddImageData Function. Extract an image from data and add it to the current page. ABCpdf .NET PDF Library.

AddImageData Function

Extract an image from data and add it to the current page.

Syntax

[C#]
int AddImageData(byte[] data)
int AddImageData(byte[] data, int frame)

[Visual Basic]
Function AddImageData(data() As Byte) As Integer
Function AddImageData(data() As Byte, frame As Integer) As Integer

Throws Exceptions may throw Exception()

Params
Name | Description
data | The data containing the image in a format such as JPEG or TIFF.
frame | Some image types support multiple frames or pages. This is the one based index specifying the required frame (default one).
return | The ID of the newly added Image Object.

Notes

Extract an image from a chunk of data and add it to the current page returning the ID of the newly added object.

This method is essentially the same as AddImageFile but it allows you add images specified as raw data rather than as a file path.


Doc AddImageDoc Function. Draw a page from one PDF document onto the current page of this document. ABCpdf .NET PDF Library.

AddImageDoc Function

Draw a page from one PDF document onto the current page of this document.

Syntax

[C#]
int AddImageDoc(Doc doc, int page, XRect rect)
int AddImageDoc(Doc doc, int page, XRect rect, bool copyAnnotations)
int AddImageDoc(Doc doc, int page, XRect rect, double alpha)
[Visual Basic]
Function AddImageDoc(doc As Doc, page As Integer, rect As XRect) As Integer
Function AddImageDoc(doc As Doc, page As Integer, rect As XRect, copyAnnotations As Boolean) As Integer
Function AddImageDoc(doc As Doc, page As Integer, rect As XRect, copyAnnotations As Boolean, alpha As Double) As Integer

Params
Name | Description
doc | The document to be used as the source.
page | The page you want drawn. Use one to indicate the first page.
rect | The portion of the page you want drawn. Pass null to specify the entire page.
copyAnnotations | Whether to copy fields and annotations - default false.
alpha | The level of alpha to apply to the drawn page from transparent through to fully opaque (0 to 255).
return | The ID of the newly added Image Object.

Notes

Draw a page from one PDF document onto the current page of this document returning the ID of the newly added object.

The page is scaled to fill the current Rect. It is transformed using the current Transform.

Many field and annotation types can only exist as a simple rectangle with sides parallel to the page borders. For this reason you should be cautious about the transforms you use when specifying that annotations should be copied. A transform which involves scale and translation will be fine but one involving rotation and skew factors may result in unusual output if the field or annotation does not support this combination.

The SaveOptions.Refactor setting determines whether duplicate and redundant objects are eliminated. The SaveOptions.Preflight setting determines whether objects in the destination document are validated before this operation is performed.

Unless the document and the pages are big in terms of memory use and have many common objects, it is faster to disable SaveOptions.Refactor and SaveOptions.Preflight for adding the pages and enable them for saving the document.

Pages may be rotated. As such, when drawing one page onto another, you may wish to copy the Page.Rotation from the source page to the destination page. More complex example code to de-rotate a page may be found under the documentation for the Page.Rotation.

Example

This example shows how to draw one PDF into another. It takes a PDF document and creates a 'four-up' summary document by drawing four pages on each page of the new document.

First we create an ABCpdf Doc object and read in our source document.

[C#]

Doc theSrc = new Doc();
theSrc.Read(Server.MapPath("../Rez/spaceshuttle.pdf"));
int theCount = theSrc.PageCount;

[Visual Basic]
Dim theSrc As New Doc()
theSrc.Read(Server.MapPath("../Rez/spaceshuttle.pdf"))
Dim theCount As Integer = theSrc.PageCount

Next we create a destination Doc object and set the MediaBox so that the page size will match that of the source document. We change the rect so that it occupies a quarter of the page with room to accomodate a small margin.

[C#]

Doc theDst = new Doc();
theDst.MediaBox.String = theSrc.MediaBox.String;
theDst.Rect.String = theDst.MediaBox.String;
theDst.Rect.Magnify(0.5, 0.5);
theDst.Rect.Inset(10, 10);
double theX, theY;
theX = theDst.MediaBox.Width / 2;
theY = theDst.MediaBox.Height / 2;

[Visual Basic]
Dim theDst As New Doc()
theDst.MediaBox.String = theSrc.MediaBox.[String]
theDst.Rect.String = theDst.MediaBox.[String]
theDst.Rect.Magnify(0.5, 0.5)
theDst.Rect.Inset(10, 10)
Dim theX As Double, theY As Double
theX = theDst.MediaBox.Width / 2
theY = theDst.MediaBox.Height / 2

We go through every page in the source document drawing a framed copy of each page at a different position on our four-up document. Every fourth page we add a new page into our destination document.

[C#]

for (int i = 1; i <= theCount; i++) {
  switch (i % 4) {
    case 1:
      theDst.Page = theDst.AddPage();
      theDst.Rect.Position(10, theY + 10);
      break;
    case 2:
      theDst.Rect.Position(theX + 10, theY + 10);
      break;
    case 3:
      theDst.Rect.Position(10, 10);
      break;
    case 0:
      theDst.Rect.Position(theX + 10, 10);
      break;
  }
  theDst.AddImageDoc(theSrc, i, null);
  theDst.FrameRect();
}

[Visual Basic]
Dim i As Integer = 1
While i <= theCount
  Select Case i Mod 4
    Case 1
      theDst.Page = theDst.AddPage()
      theDst.Rect.Position(10, theY + 10)
      Exit Select
    Case 2
      theDst.Rect.Position(theX + 10, theY + 10)
      Exit Select
    Case 3
      theDst.Rect.Position(10, 10)
      Exit Select
    Case 0
      theDst.Rect.Position(theX + 10, 10)
      Exit Select
  End Select
  theDst.AddImageDoc(theSrc, i, Nothing)
  theDst.FrameRect()
  System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
End While

Finally we save.

[C#]

theDst.Save(Server.MapPath("fourup.pdf"));
// finished

[Visual Basic]
theDst.Save(Server.MapPath("fourup.pdf"))
' finished

We get the following output.

fourup.pdf - [Page 1]
fourup.pdf - [Page 2]


Doc AddImageFile Function. Extract an image from a file and add it to the current page. ABCpdf .NET PDF Library.

AddImageFile Function

Extract an image from a file and add it to the current page.

Syntax

[C#]

int AddImageFile(string path)

int AddImageFile(string path, int frame)

[Visual Basic]
Function AddImageFile(path As String) As Integer

Function AddImageFile(path As String, frame As Integer) As Integer

Throws Exceptions may throw Exception()

Params
Name | Description
path | A file path, URL or html string to be added to the page.
frame | Some image types support multiple frames or pages. This is the one based index specifying the required frame (default one).
return | The Object ID of the newly added Image Object.

Notes

Adds an image to the current page returning the ID of the newly added object.

This method supports JPEG, JPEG 2000, TIFF, EMF, WMF, PS (PostScript) or EPS (Encapsulated PostScript).

Images embedded using this method are inserted using a restricted range of ReadModules. For this reason you may wish to prefer the use of the AddImageObject method. AddImageFile is the equivalent of AddImageObject with the transparent parameter set to true.

The only difference between AddImageFile and AddImageObject relates to the treatment of EMF and WMF files. AddImageFile defaults to the EmfVector ReadModule which means that the vector nature of such files will be preserved. AddImageObject defaults to the BasicImage ReadModule which means that such files will be rasterized. For more details see the ReadModule property.

The image is scaled to fill the current Rect. It is transformed using the current Transform.

Transparency. Occasionally you may find that you need to invert the transparency of your image. To do this you can assign a decode array using the ID returned from this function.

To invert the transparency:

[C#]

theDoc.SetInfo(theDoc.GetInfoInt(theID, "XObject"), "/SMask*/Decode", "[1 0]");

[Visual Basic]
theDoc.SetInfo(theDoc.GetInfoInt(theID, "XObject"), "/SMask*/Decode", "[1 0]")

A similar technique can be used for inverting or altering color levels on the image itself.

To invert an RGB image:

[C#]

theDoc.SetInfo(theDoc.GetInfoInt(theID, "XObject"), "/Decode", "[1 0 1 0 1 0]");

[Visual Basic]
theDoc.SetInfo(theDoc.GetInfoInt(theID, "XObject"), "/Decode", "[1 0 1 0 1 0]")

Example

The following code adds an image to the current page positioned at the bottom left.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.String = "0 0 510 638";
  string thePath = Server.MapPath("../mypics/pic.jpg");
  doc.AddImageFile(thePath, 1);
  doc.Save(Server.MapPath("docaddimage.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.String = "0 0 510 638"
  Dim thePath As String = Server.MapPath("../mypics/pic.jpg")
  doc.AddImageFile(thePath, 1)
  doc.Save(Server.MapPath("docaddimage.pdf"))
End Using

docaddimage.pdf


Doc AddImageHtml Function. Renders a web page specified as HTML. ABCpdf .NET PDF Library.

AddImageHtml Function

Renders a web page specified as HTML.

Syntax

[C#]
int AddImageHtml(string html)
int AddImageHtml(string html, bool paged, int width, bool disableCache)

[Visual Basic]
Function AddImageHtml(html As String) As Integer
Function AddImageHtml(html As String, paged As Boolean, width As Integer, disableCache As Boolean) As Integer

Throws Exceptions may throw Exception()

Params
Name | Description
html | The HTML to be rendered.
paged | Allows you to override the default XHtmlOptions.Paged property.
width | Allows you to override the default XHtmlOptions.BrowserWidth property.
disableCache | Allows you to override and disable the page cache. See the XHtmlOptions.PageCacheEnabled property for details.
return | The ID of the newly added object.

Notes

This method is essentially the same as the AddImageUrl method but it allows you to use raw HTML rather than having to specify a URL.

Using the MSHTML, ABCGecko and ABCWebKit engines, ABCpdf saves this HTML into a temporary file and renders the file using a 'file://' protocol specifier. So this is a convenience function - it doesn't offer any performance enhancements. Sometimes the IIS users do not have full access to the temp directory. This is determined by the system setup you have on your machine. If this is the case you will get errors returned. So if you are working from ASP you may find that you need to enable access to the temp directory for the ASPNET user, the IUSR_MACHINENAME user or the IWAM_MACHINENAME user.

Under the ABCChrome engine this method works slightly differently and without an intermediate file. While in many cases this is desirable, it may not scale well for very large HTML strings. If your HTML is larger than perhaps a megabyte you may wish to consider saving the HTML to file and referencing it via a 'file://' protocol specifier.

Styles and Images. HTML does not exist within a file and so it does not have a location.

External stylesheets and images are often referenced via relative URLs. Because the HTML has no location it is impossible to resolve these relative reference.

This means you need to provide your stylesheet and image links as absolute references or provide a BaseURI property to allow them to be resolved. The BaseURI property is only available when you are using the ABCChrome Chrome86 HTML rendering engine.

As an alternative you can insert an HTML BASE element into your HTML to specify an appropriate base location, or you can save your HTML to file in an appropriate location and then use AddImageUrl. Note that any HTML BASE tag must appear in the HEAD and it must appear before other references.

Make sure your HTML comes from trusted sources. See the Security section of the HTML / CSS Rendering section of the documentation for details.


Doc AddImageObject Function. Adds an XImage based image to the current page. ABCpdf .NET PDF Library.

AddImageObject Function

Adds an XImage based image to the current page.

Syntax

[C#]

int AddImageObject(XImage image)

int AddImageObject(XImage image, bool transparent)

[Visual Basic]
Function AddImageObject(image As XImage) As Integer

Function AddImageObject(image As XImage, transparent As Boolean) As Integer

Throws Exceptions may throw Exception()

Params
Name | Description
image | An XImage containing the image to be added to the page.
transparent | Whether transparency information should be preserved. This parameter overrides the PreserveTransparency property of the XReadOptions used to create the XImage. If this parameter is not specified and the XImage has been created without a XReadOptions, this parameter is defaulted to false.
return | The ID of the newly added Image Object. If the image is added as multiple objects, such as if it has been created with an XReadOptions with ReadModule of SwfVector (with a non-null Operation), Xps, or XpsAny, the ID is zero. If XReadOptions.Operation has been null, the temporary SwfImportOperation allows this method to return the ID of the GraphicLayer for the frame of XReadOptions.Frame.

Notes

If the XImage has been created with an XReadOptions with ReadModule that uses an Operation, the operation will be invoked and the result depends on the operation. Otherwise, this method gets an image from the Image object and adds it to the current page returning the ID of the newly added object.

Adds the Selection of the current Frame returning the ID of the newly added object.

Ultimately each image which is imported goes through a ReadModule, so see that property for the types of images that can be imported and how they are handled.

If the Transparent parameter is set to true then any transparency information will be preserved. This allows you to add formats such as transparent GIF, PNG with alpha channel, or images with masks set using the Image.SetMask method.

The image is scaled to fill the current Rect. It is transformed using the current Transform.

Hyperlinks. Sometimes you may wish to insert annotations such as links to an external web page specified using a URI or URL. The AddTextStyled method allows you to specify links but only on text. If, for example, you want to insert a link over content such as an image you need to add it separately. You can do this using code of the following form.

[C#]

static int AddLinkToUri(Doc doc, XRect rect, string uri) {
  int id = doc.AddObject("<< /Type /Annot /Subtype /Link /A << /Type /Action /S /URI /URI () >> /Border [0 0 0] >>");
  doc.SetInfo(doc.Page, "/Annots*[]:Ref", id);
  doc.SetInfo(id, "/Rect:Rect", doc.Rect.String);
  doc.SetInfo(id, "/A/URI:Text", uri);
  return id;
}

[Visual Basic]
Private Shared Function AddLinkToUri(ByVal doc As Doc, ByVal rect As XRect, ByVal uri As String) As Integer
  Dim id As Integer = doc.AddObject("<< /Type /Annot /Subtype /Link /A << /Type /Action /S /URI /URI () >> /Border [0 0 0] >>")
  doc.SetInfo(doc.Page, "/Annots*[]:Ref", id)
  doc.SetInfo(id, "/Rect:Rect", doc.Rect.String)
  doc.SetInfo(id, "/A/URI:Text", uri)
  Return id
End Function

If you wish to link to a particular page specified by page ID you can use code of the following form.

[C#]

static int AddLinkToPage(Doc doc, XRect rect, int pageID) {
  int id = doc.AddObject("<< /Type /Annot /Subtype /Link /Border [0 0 0] /A << /Type /Action /S /GoTo /D [ /XYZ null null 0] >> >>");
  doc.SetInfo(doc.Page, "/Annots*[]:Ref", id);
  doc.SetInfo(id, "/Rect:Rect", doc.Rect.String);
  doc.SetInfo(id, "/A/D[0]:Ref", pageID.ToString());
  return id;
}

[Visual Basic]
Private Shared Function AddLinkToPage(ByVal doc As Doc, ByVal rect As XRect, ByVal pageID As Integer) As Integer
  Dim id As Integer = doc.AddObject("<< /Type /Annot /Subtype /Link /Border [0 0 0] /A << /Type /Action /S /GoTo /D [ /XYZ null null 0] >> >>")
  doc.SetInfo(doc.Page, "/Annots*[]:Ref", id)
  doc.SetInfo(id, "/Rect:Rect", doc.Rect.String)
  doc.SetInfo(id, "/A/D[0]:Ref", pageID.ToString())
  Return id
End Function

Example

The following code adds a transparent GIF against a gray background.

[C#]

XImage theImg = new XImage();
theImg.SetFile(Server.MapPath("../mypics/mypic.gif"));
Doc doc = new Doc();
doc.Color.String = "200 200 200";
doc.FillRect();
doc.Rect.String = "0 0 480 640";
doc.AddImageObject(theImg, true);
theImg.Clear();
doc.Save(Server.MapPath("docaddimageobject.pdf"));
doc.Clear();

[Visual Basic]
Dim theImg As New XImage()
theImg.SetFile(Server.MapPath("../mypics/mypic.gif"))
Dim doc As New Doc()
doc.Color.String = "200 200 200"
doc.FillRect()
doc.Rect.String = "0 0 480 640"
doc.AddImageObject(theImg, True)
theImg.Clear()
doc.Save(Server.MapPath("docaddimageobject.pdf"))
doc.Clear()

docaddimageobject.pdf


Doc AddImageToChain Function. Adds a new page from a paged HTML or PostScript render. ABCpdf .NET PDF Library.

AddImageToChain Function

Adds a new page from a paged HTML or PostScript render.

Syntax

[C#]
int AddImageToChain(int id)

[Visual Basic]
Function AddImageToChain(id As Integer) As Integer

Throws Exceptions may throw Exception()

Params
Name | Description
id | The ID of the previous object in the chain.
return | The ID of the newly added object.

Notes

Some web pages are too large to fit on one PDF page.

To split a web page across multiple PDF pages you need to call AddImageUrl or AddImageHtml to render the first page. The ID returned from these calls represents the head of the chain.

To add subsequent pages to the chain you need to make calls to AddImageToChain passing in the previous image from the chain each time.

As well as using chaining to split web pages across multiple PDF pages you can also use it to split your web pages across multiple columns within a page. You can even split your chain to generate multiple copies of the same page.

More information can be found in the HTML / CSS Rendering section of the documentation.

Similarly some PostScript (PS) files contain more than one page of content.

To split a PS file across multiple PDF pages you need to call AddImageFile or AddImageData to render the first page. The ID returned from these calls represents the head of the chain.

To add subsequent pages to the chain you need to make calls to AddImageToChain passing in the previous image from the chain each time.

Example

This example shows how to import an HTML page into a multi-page PDF document.

We first create a Doc object and inset the edges a little so that the HTML will appear in the middle of the page.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Inset(72, 144);

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Inset(72, 144)

We add the first page of HTML. We save the returned ID as this will be used to add subsequent pages.

[C#]

  int theID;
  theID = doc.AddImageUrl("http://www.yahoo.com/");

[Visual Basic]
  Dim theID As Integer
  theID = doc.AddImageUrl("http://www.yahoo.com/")

We now chain subsequent pages together. We stop when we reach a page which wasn't truncated.

[C#]

  while (true) {
    doc.FrameRect();
    if (!doc.Chainable(theID))
      break;
    doc.Page = doc.AddPage();
    theID = doc.AddImageToChain(theID);
  }

[Visual Basic]
  While True
    doc.FrameRect()
    If Not doc.Chainable(theID) Then
      Exit While
    End If
    doc.Page = doc.AddPage()
    theID = doc.AddImageToChain(theID)
  End While

After adding the pages we can flatten them. We can't do this until after the pages have been added because flattening will invalidate our previous ID and break the chain.

[C#]

  for (int i = 1; i <= doc.PageCount; i++) {
    doc.PageNumber = i;
    doc.Flatten();
  }

[Visual Basic]
  Dim i As Integer = 1
  While i <= doc.PageCount
    doc.PageNumber = i
    doc.Flatten()
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While

Finally we save.

[C#]

  doc.Save(Server.MapPath("pagedhtml.pdf"));
}

[Visual Basic]
  doc.Save(Server.MapPath("pagedhtml.pdf"))
End Using

We get the following output.

pagedhtml.pdf [Page 1]
pagedhtml.pdf [Page 2]


Doc AddImageUrl Function. Renders a web page specified by URL. ABCpdf .NET PDF Library.

AddImageUrl Function

Renders a web page specified by URL.

Syntax

[C#]
int AddImageUrl(string url)
int AddImageUrl(string url, bool paged, int width, bool disableCache)

[Visual Basic]
Function AddImageUrl(url As String) As Integer
Function AddImageUrl(url As String, paged As Boolean, width As Integer, disableCache As Boolean) As Integer

Throws Exceptions may throw Exception()

Params
Name | Description
url | The URL for the page to be rendered. The actual value may be modified depending on the value of disableCache/XHtmlOptions.PageCacheEnabled.
paged | Allows you to override the default XHtmlOptions.Paged property.
width | Allows you to override the default XHtmlOptions.BrowserWidth property.
disableCache | Allows you to override and disable the page cache. See the XHtmlOptions.PageCacheEnabled property for details.
return | The ID of the newly added object.

Notes

This method adds a web page to a document.

The page is added in accordance with the current XHtmlOptions settings. As a convenience you can override the more commonly used settings as detailed above.

Only the first page of the document is drawn. Subsequent pages can be drawn using the AddImageToChain method.

The web page is scaled to fill the current Rect. It is transformed using the current Transform.

Caching. Sometimes you may find that pages appear to be cached.

If you are using AddImageUrl it is possible that the URL is in some way being cached. So the PDF may be changing but the content within it may be staying the same. See the HTML / CSS Rendering section of the documentation for details.

Alternatively it is possible that the PDF itself is being cached. Most commonly this can happen if you're streaming the PDF direct to the browser and you have certain IIS settings (like Expire Content) disabled.

Your first step should be to narrow down the problem. Why not save the PDF to disk at the same time as sending it to the client? That way you can establish whether the PDF itself is being cached or whether the content is in some way being cached (resulting in the same PDF being created again and again).

If the PDF is being cached you will need to look at your IIS settings. ABCpdf is not doing the caching (and indeed it cannot cache the PDF in this way) it will be something which is happening either in IIS/ASP or on an intervening proxy server or on the client.

In addition to accepting URLs to web pages, this method also accepts file based URLs to MHT (MIME HTML) files.

MHT files contain a web page and any associated resources (such as images and style sheets) in one compact archive. You can save web pages in MHT format using IE.

Note that MHT files saved from more complex web pages sometimes omit some required resources. In this situation ABCpdf will attempt to download missing items from the original URL on the web. However if these items are no longer available then ABCpdf may not be able to produce a perfect output.

Make sure your URLs come from trusted sources. See the Security section of the HTML / CSS Rendering section of the documentation for details.

Example

We create an ABCpdf Doc object, add our URL and save. That's it!

[C#]

using (Doc doc = new Doc()) {
  doc.AddImageUrl("http://www.google.com/");
  doc.Save(Server.MapPath("htmlimport.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.AddImageUrl("http://www.google.com/")
  doc.Save(Server.MapPath("htmlimport.pdf"))
End Using

htmlimport.pdf

For an example of how to use paged HTML see the AddImageToChain method.


Doc AddLine Function. Adds a line to the current page. ABCpdf .NET PDF Library.

AddLine Function

Adds a line to the current page.

Syntax

[C#]
int AddLine(double x1, double y1, double x2, double y2)
int AddLine(double x1, double y1, double x2, double y2, LineEnding ending1, LineEnding ending2)
int AddLine(double x1, double y1, double x2, double y2, LineEnding ending1, LineEnding ending2, double scale1, double scale2)

[Visual Basic]
Function AddLine(x1 As Double, y1 As Double, x2 As Double, y2 As Double) As Integer
Function AddLine(x1 As Double, y1 As Double, x2 As Double, y2 As Double, ending1 as LineEnding, ending2 as LineEnding) As Integer
Function AddLine(x1 As Double, y1 As Double, x2 As Double, y2 As Double, ending1 as LineEnding, ending2 as LineEnding, scale1 As Double, scale2 As Double) As Integer

Params
Name | Description
x1 | The horizontal offset of the start point.
x2 | The horizontal offset of the end point.
y1 | The vertical offset of the start point.
y2 | The vertical offset of the end point.
ending1 | The line ending to be placed at the start of the line. Default is None.
ending2 | The line ending to be placed at the end of the line. Default is None.
scale1 | The scaling to be applied to the line ending at the start of the line. Default is 1.0.
scale2 | The scaling to be applied to the line ending at the end of the line. Default is 1.0.
return | The Object ID of the newly added Graphic Object.

Notes

Adds a line to the current page. The line is drawn in the current color at the current width and with the current options.

In addition to the line, you can also specify line endings such as arrows. These can be placed at at the start of the line, the end of the line or both.

The LineEnding enumeration may take the following values:

  • None - No symbol
  • Square - A square block
  • Circle - A filled circle
  • Diamond - A filled diamond
  • OpenArrow - Two lines forming an arrow
  • ClosedArrow - A triangular arrow
  • Butt - A perpendicular line
  • BigButt - A longer perpendicular line
  • ReverseOpenArrow - The same as OpenArrow, but pointing backwards rather than forwards
  • ReverseClosedArrow - The same as ClosedArrow, but pointing backwards rather than forwards
  • Slash - A 30 degree line
  • Arrowhead - A barbed arrowhead

The size of the line ending is proportional to the width of the line, but you can provide a further scaling factor to make it bigger or smaller.

The tip of each line ending is placed at the end of the line so that they can be used for precise positioning. Reversed line endings have a reversed direction, so while the tip is still at the end of the line, the body of the symbol will extend past the end of the line.

The AddLine function returns the Object ID of the newly added Graphic Object.

Example

The following code adds two horizontal lines to a document. The first is blue and the second is green.

[C#]

using (Doc doc = new Doc()) {
  doc.Width = 24;
  doc.Color.String = "0 0 255";
  doc.AddLine(-50, 100, 999, 100);
  doc.Color.String = "0 255 0";
  doc.AddLine(-50, 400, 999, 400);
  doc.Save(Server.MapPath("docaddline.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Width = 24
  doc.Color.String = "0 0 255"
  doc.AddLine(-50, 100, 999, 100)
  doc.Color.String = "0 255 0"
  doc.AddLine(-50, 400, 999, 400)
  doc.Save(Server.MapPath("docaddline.pdf"))
End Using

docaddline.pdf


Doc AddObject Function. Adds a native PDF object to the document. ABCpdf .NET PDF Library.

AddObject Function

Adds a native PDF object to the document.

Syntax

[C#]
int AddObject(string text)

[Visual Basic]
Function AddObject(text As String) As Integer

Params
Name | Description
text | The raw native object to be added.
return | The Object ID of the newly added Object.

Notes

You will not normally need to use this feature. However it can be useful if you wish to add objects which are defined in the PDF specification but not supported by ABCpdf .NET.

Be aware that the text you pass this function must be in native PDF format. This means that unusual characters in text strings must be appropriately escaped. For full details of the way that PDF objects are represented you should see the Adobe PDF Specification.

Your newly added object needs to be referenced from somewhere in the PDF document. If you do not reference your object it will be orphaned and will be deleted when the document is saved.

Example

The following code adds a document information section to an existing PDF document. First it adds an empty dictionary and references it from the document trailer. Then it adds an Author, Title and Subject before saving.

There are multiple places that metadata can be put into a PDF. The most commonly used are the Info entry of the Trailer and the Metadata entry of the Catalog. The Info entry is the older and most widely recognized location. The Metadata entry is a more recent XML based store. It is important that information within these stores is consistent. If the information is inconsistent then you'll find that the metadata reported by different applications is different.

To try and reduce the amount of confusion caused by multiple metadata entries, PDF 2.0 deprecated all Info entries apart from the CreationDate and ModDate. To be PDF 2.0 compliant you should put all metadata into the Metadata entry rather than the Info one. The code example below will ensure backwards compatibility with legacy applications, but in general for metadata, you should be using the kind of code you see in the Catalog.Metadata example.

In this example, to ensure that the data is consistent we're going to delete any XML Metadata entry that may be present. That way we force applications to report the Info store. However it wouldn't be a difficult matter to load up any XML in the Metadata entry and modify that as well as the Info entry. For details see the Catalog.Metadata example.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/sample.pdf"));
  if (doc.GetInfo(-1, "/Info") == "")
    doc.SetInfo(-1, "/Info:Ref", doc.AddObject("<< >>").ToString());
  doc.SetInfo(-1, "/Info*/Author:Text", "Arthur Dent");
  doc.SetInfo(-1, "/Info*/Title:Text", "Musings on Life");
  doc.SetInfo(-1, "/Info*/Subject:Text", "Philosophy");
  doc.SetInfo(doc.Root, "/Metadata:Del", "");
  doc.Save(Server.MapPath("docaddobject.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/sample.pdf"))
  If doc.GetInfo(-1, "/Info") = "" Then
    doc.SetInfo(-1, "/Info:Ref", doc.AddObject("<< >>").ToString())
  End If
  doc.SetInfo(-1, "/Info*/Author:Text", "Arthur Dent")
  doc.SetInfo(-1, "/Info*/Title:Text", "Musings on Life")
  doc.SetInfo(-1, "/Info*/Subject:Text", "Philosophy")
  doc.SetInfo(doc.Root, "/Metadata:Del", "")
  doc.Save(Server.MapPath("docaddobject.pdf"))
End Using


Doc AddOval Function. Adds an oval to the current page. ABCpdf .NET PDF Library.

AddOval Function

Adds an oval to the current page.

Syntax

[C#]
int AddOval(bool filled)

[Visual Basic]
Function AddOval(filled As Boolean) As Integer

Params
Name | Description
filled | Whether to fill the oval rather than simply outline it.
return | The Object ID of the newly added Graphic Object.

Notes

Adds an oval to the current page. The oval is drawn in the current color at the current width and with the current options. It is scaled to fill the current rectangle. The oval may be outlined or filled.

The AddOval function returns the Object ID of the newly added Graphic Object.

Example

The following code adds two ovals to a document. The outline oval is semi-transparent.

[C#]

using (Doc doc = new Doc()) {
  doc.Width = 80;
  doc.Rect.Inset(50, 50);
  doc.Color.String = "255 0 0";
  doc.AddOval(true);
  doc.Color.String = "0 255 0 128";
  doc.AddOval(false);
  doc.Save(Server.MapPath("docaddoval.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Width = 80
  doc.Rect.Inset(50, 50)
  doc.Color.String = "255 0 0"
  doc.AddOval(True)
  doc.Color.String = "0 255 0 128"
  doc.AddOval(False)
  doc.Save(Server.MapPath("docaddoval.pdf"))
End Using

docaddoval.pdf


Doc AddPage Function. Adds a page to the current document. ABCpdf .NET PDF Library.

AddPage Function

Adds a page to the current document.

Syntax

[C#]

int AddPage();
int AddPage(int page);

[Visual Basic]
Function AddPage() As Integer
Function AddPage(page As Integer) As Integer

Params
Name | Description
page | The page insertion location. By default, pages are added at the end of the document.
return | The Object ID of the newly added Page Object.

Notes

Adds a page to the current document.

The AddPage function returns the Object ID of the newly added Page Object. Typically, you will want to assign this return value to the document Page property using code of the form.

[C#]

theDoc.Page = theDoc.AddPage();

[Visual Basic]
theDoc.Page = theDoc.AddPage()

Pages are added at the end of the document. However, you can use the page parameter to insert pages at other locations. The following code inserts a page at the start of a document.

[C#]

theDoc.Page = theDoc.AddPage(1);

[Visual Basic]
theDoc.Page = theDoc.AddPage(1)

Any existing page and all subsequent pages will be shifted towards the end of the document to make room for the insertion.

Example

The following code adds three pages to a document. Each page is marked with the page number and page Object ID.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 96; // big text
  doc.TextStyle.HPos = 0.5; // centered
  doc.TextStyle.VPos = 0.5; // ...
  for (int i = 1; i <= 3; i++) {
    doc.Page = doc.AddPage();
    string txt;
    txt = $"Page {i}, ID=";
    txt = txt + doc.Page.ToString();
    doc.AddText(txt);
  }
  doc.Save(Server.MapPath("docaddpage.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 96
  ' big text
  doc.TextStyle.HPos = 0.5
  ' centered
  doc.TextStyle.VPos = 0.5
  ' ...
  Dim i As Integer = 1
  While i <= 3
    doc.Page = doc.AddPage()
    Dim txt As String
    txt = $"Page {i}, ID="
    txt = txt + doc.Page.ToString()
    doc.AddText(txt)
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While
  doc.Save(Server.MapPath("docaddpage.pdf"))
End Using

docaddpage.pdf


Doc AddPie Function. Adds a pie slice to the current page. ABCpdf .NET PDF Library.

AddPie Function

Adds a pie slice to the current page.

Syntax

[C#]
int AddPie(double angleStart, double angleEnd, bool filled)

[Visual Basic]
Function AddPie(angleStart As Double, angleEnd As Double, filled As Boolean) As Integer

Params
Name | Description
angleStart | The start angle of the pie slice in degrees.
angleEnd | The end angle of the pie slice in degrees.
filled | Whether to fill the pie slice rather than simply outline it.
return | The Object ID of the newly added Graphic Object.

Notes

Adds a pie slice to the current page. The slice is drawn in the current color at the current width and with the current options.

The pie slice represents a segment of the oval which would fill the current rectangle. Drawing starts at the start angle and the arc is swept out until the end angle is reached. Angles are measured anti-clockwise with zero at three o'clock. The slice may be outlined or filled depending on the values passed to the function.

The AddPie function returns the Object ID of the newly added Graphic Object.

Example

The following code adds two pie slices to a document.

[C#]

using (Doc doc = new Doc()) {
  doc.Width = 80;
  doc.Rect.Inset(50, 50);
  doc.Color.String = "255 0 0";
  doc.AddPie(0, 90, true);
  doc.Color.String = "0 255 0";
  doc.AddPie(180, 270, false);
  doc.Save(Server.MapPath("docaddpie.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Width = 80
  doc.Rect.Inset(50, 50)
  doc.Color.String = "255 0 0"
  doc.AddPie(0, 90, True)
  doc.Color.String = "0 255 0"
  doc.AddPie(180, 270, False)
  doc.Save(Server.MapPath("docaddpie.pdf"))
End Using

docaddpie.pdf


Doc AddPoly Function. Adds a polygon to the current page. ABCpdf .NET PDF Library.

AddPoly Function

Adds a polygon to the current page.

Syntax

[C#]
int AddPoly(string points, bool filled)
int AddPoly(double[] points, bool filled)
int AddPoly(double[] points, int index, int count, bool filled)
[Visual Basic]
Function AddPoly(points As String, filled As Boolean) As Integer
Function AddPoly(points() As Double, filled As Boolean) As Integer
Function AddPoly(points() As Double, index As Integer, count As Integer, filled As Boolean) As Integer

Params
Name | Description
points | The coordinates of the vertices of the polygon.
index | The index of the first coordinate into the array points.
count | The number of coordinates in the array points to use.
filled | Whether to fill the polygon rather than simply outline it.
return | The Object ID of the newly added Graphic Object.

Notes

Adds a polygon to the current page. The polygon is drawn in the current color at the current width and with the current options. The polygon may be outlined or filled.

The points string is a sequence of numbers representing the coordinates of the polygon. The string should be of the format "x1 y1 x2 y2 ... xN yN". The numbers may be delimited with spaces, commas or semicolons. If the first point is equal to the last then the path is closed before outlining.

The AddPoly function returns the Object ID of the newly added Graphic Object.

Example

The following code adds a transparent green outlined star over the top of a red filled star.

[C#]

using (Doc doc = new Doc()) {
  doc.Width = 80;
  doc.Color.String = "255 0 0";
  doc.AddPoly("124 158 300 700 476 158 15 493 585 493 124 158", true);
  doc.Color.String = "0 255 0 a128";
  doc.AddPoly("124 158 300 700 476 158 15 493 585 493 124 158", false);
  doc.Save(Server.MapPath("docaddpoly.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Width = 80
  doc.Color.String = "255 0 0"
  doc.AddPoly("124 158 300 700 476 158 15 493 585 493 124 158", True)
  doc.Color.String = "0 255 0 a128"
  doc.AddPoly("124 158 300 700 476 158 15 493 585 493 124 158", False)
  doc.Save(Server.MapPath("docaddpoly.pdf"))
End Using

docaddpoly.pdf


Doc AddRect Function. Add a rectangle to the current page. ABCpdf .NET PDF Library.

AddRect Function

Add a rectangle to the current page.

Syntax

[C#]
int AddRect(bool filled)

[Visual Basic]
Function AddRect(filled As Boolean) As Integer

Params
Name | Description
filled | Whether to fill the rectangle rather than simply outline it.
return | The Object ID of the newly added Graphic Object.

Notes

Add a rectangle drawn in the current color at the current width and with the current options. The rectangle may be outlined or filled.

Note that this is subtly different from the way that FrameRect works. When a rectangle is framed the line goes around the outside of the rectangle. When a rectangle is added the line is centered on the rectangle - so half is inside and half is outside.


Doc AddText Function. Adds a block of text to the current page. ABCpdf .NET PDF Library.

AddText Function

Adds a block of single styled text to the current page.

Syntax

[C#]
int AddText(string text)

[Visual Basic]
Function AddText(text As String) As Integer

Params
Name | Description
text | The text to be added to the page.
return | The Object ID of the newly added Text Object.

Notes

Adds a block of single styled text to the current page.

For adding multi-styled text or for chaining text from one page to another you should use the AddTextStyled method which is used for adding styled text.

The text is in the current style, size and color and starts at the location specified in the current position. If the text is long it will will wrap and extend downwards until it fills the current rectangle. Text positioning in the rectangle is determined by the horizontal and vertical positioning.

You can chain together multiple text blocks so that text flows from one to the next. To do this you need to first add a block of text using AddText. Then add multiple new text blocks using AddTextStyled each time passing in the ID obtained from the previous call after adjusting the target location (such as the rectangle or the page).

The AddText function returns the Object ID of the newly added Text Object. If no text could be added then zero is returned. This will happen if a zero length string was supplied or if the rectangle was too small for even one character to be displayed.

Typically you will get a return value of zero if your text was too large to fit in your Rect or if the Pos was at the end of the Rect. So if you are expecting text to be displayed and are seeing a return value of zero, check your text size, check your Rect is where you think it is by framing it using FrameRect and ensure your Pos is set at the top left of the Rect.

Text is drawn word-wrapped within the current rectangle with the first character at the location specified by the Pos property. Normally the Pos property reflects the top left position of the current rectangle. However if you need to alter the position at which text drawing starts you can modify the Pos property after changing the Rect. When the text has been drawn the Pos will be updated to reflect the next text insertion point.

Character positioning is specified from the top left of the character. Please see Pos for details on positioning when using vertical fonts. The FontSize determines the total line height and the character baseline is 80% of the way down from the top of the line.

Example

The following code adds a number of chunks of text to a document. Each chunk is in a different style. This sample makes use of the fact that the Pos is updated to point to the next text insertion point after adding a piece of text. However note that when inserting muti-styled text it is generally more efficient to use the AddTextStyled method.

[C#]

using (Doc doc = new Doc()) {
  doc.Page = doc.AddPage();
  doc.FontSize = 48;
  int theF1 = doc.AddFont("Times-Roman");
  int theF2 = doc.AddFont("Times-Bold");
  doc.Font = theF1;
  doc.AddText("Gallia est omnis ");
  doc.Font = theF2;
  doc.AddText("tertiam Galli appellantur ");
  doc.Font = theF1;
  doc.AddText("divisa in partes tres, ");
  doc.Font = theF2;
  doc.AddText("quarum unam incolunt ");
  doc.Font = theF1;
  doc.AddText("Belgae, aliam Aquitani. ");
  doc.Font = theF2;
  doc.AddText("tertiam Galli appellantur");
  doc.Save(Server.MapPath("docaddtext.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Page = doc.AddPage()
  doc.FontSize = 48
  Dim theF1 As Integer = doc.AddFont("Times-Roman")
  Dim theF2 As Integer = doc.AddFont("Times-Bold")
  doc.Font = theF1
  doc.AddText("Gallia est omnis ")
  doc.Font = theF2
  doc.AddText("tertiam Galli appellantur ")
  doc.Font = theF1
  doc.AddText("divisa in partes tres, ")
  doc.Font = theF2
  doc.AddText("quarum unam incolunt ")
  doc.Font = theF1
  doc.AddText("Belgae, aliam Aquitani. ")
  doc.Font = theF2
  doc.AddText("tertiam Galli appellantur")
  doc.Save(Server.MapPath("docaddtext.pdf"))
End Using

docaddtext.pdf


Doc AddTextStyled Function. Adds a block of styled text to the current page. ABCpdf .NET PDF Library.

AddTextStyled Function

Adds a block of multi-styled text to the current page.

Syntax

[C#]
int AddTextStyled(string text)
int AddTextStyled(string dummy, int chainid)

[Visual Basic]
Function AddTextStyled(text As String) As Integer
Function AddTextStyled(dummy As String, chainid As Integer) As Integer

Params
Name | Description
text | The HTML to be added to the page.
dummy | A dummy parameter. The contents are not used.
chainid | The Object ID of a previously added text block.
return | The Object ID of the newly added Text Object.

Notes

Adds a block of multi-styled text to the current page.

This function works in a similar manner to the AddText function but it allows you to add multi-styled text by inserting simple HTML tags. A listing of supported tags is given in the Styled Text section of the documentation. Please see Pos for details on positioning when using vertical fonts.

You can chain together multiple text/HTML blocks so that text flows from one to the next. To do this you need to first add a block of text/HTML using AddText or AddTextStyled. Then add multiple new text/HTML blocks using Doc.AddTextStyled each time passing in the ID obtained from the previous call after adjusting the target location (such as the rectangle or the page).

When no more text is available the AddTextStyled function will return zero. Alternatively you can query the TextLayer.Truncated property of the returned object before adding a new item to the chain.

This function returns the Object ID of the newly added Text Object. If no text could be added then zero is returned. This will happen if a zero length string was supplied or if the rectangle was too small for even one character to be displayed.

Typically you will get a return value of zero if your text was too large to fit in your Rect or if the Pos was at the end of the Rect.

Text styles for the entire HTML content are determined at the point at which the first item in a text chain is created. This means that varying document styles will not affect the way in which subsequent items in the chain are displayed.

For an example of chaining see the Text Flow Example.

Note that there is no requirement that blocks be organized in a linear chain. If you wish you can create trees of HTML blocks, flowing text from a chain head through multiple display areas on your document.

Example

The following code adds some styled text to a document.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 72;
  doc.AddTextStyled("<b>Gallia</b> est omnis divisa in partes tres, quarum unam incolunt <b>Belgae</b>, aliam <b>Aquitani</b>, tertiam qui ipsorum lingua <b>Celtae</b>, nostra <b>Galli</b> appellantur.");
  doc.Save(Server.MapPath("docaddhtml.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 72
  doc.AddTextStyled("<b>Gallia</b> est omnis divisa in partes tres, quarum unam incolunt <b>Belgae</b>, aliam <b>Aquitani</b>, tertiam qui ipsorum lingua <b>Celtae</b>, nostra <b>Galli</b> appellantur.")
  doc.Save(Server.MapPath("docaddhtml.pdf"))
End Using

docaddhtml.pdf


Doc AddXObject Function. Add a Form or Image XObject to the current page. ABCpdf .NET PDF Library.

AddXObject Function

Add a Form or Image XObject to the current page.

Syntax

[C#]
int AddXObject(Objects.PixMap pm)
int AddXObject(Objects.FormXObject pm)

[Visual Basic]
Function AddXObject(pm As Objects.PixMap) As Integer
Function AddXObject(pm As Objects.FormXObject) As Integer

Params
Name | Description
pm | The image to be added to the page.
return | The Object ID of the newly added Image Object.

Notes

Add a Form or Image XObject into the current rectangle on the current page.

Form and Image XObjects represent a drawing sequence external to the main content stream of the page. Image XObjects represent a raster bitmap in one of a variety of color spaces. Form XObjects represent a separate content stream with a separate sequence of drawing commands.

For example a Form XObject might be used to represent a "Draft" stamp which might then be applied on various pages at various locations. The fact that this stamp is an external object allows the viewing application to cache the representation and also allows changes to the stamp to affect the appearance of multiple instances.

Example

This example shows how to load an image into a PixMap and then draw it on the current page using the AddXObject method.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Inset(50, 50);
  doc.Transform.Rotate(20, 200, 200);
  doc.Color.SetRgb(200, 200, 255);
  doc.FillRect();
  PixMap pm = new PixMap(doc.ObjectSoup);
  Bitmap img = (Bitmap)Bitmap.FromFile(Server.MapPath("mypics/mypic.png"));
  pm.SetBitmap(img, true);
  doc.AddXObject(pm);
  doc.Save(Server.MapPath("examplePixMapBitmap.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Inset(50, 50)
  doc.Transform.Rotate(20, 200, 200)
  doc.Color.SetRgb(200, 200, 255)
  doc.FillRect()
  Dim pm As New PixMap(doc.ObjectSoup)
  Dim img As Bitmap = DirectCast(Bitmap.FromFile(Server.MapPath("mypics/mypic.png")), Bitmap)
  pm.SetBitmap(img, True)
  doc.AddXObject(pm)
  doc.Save(Server.MapPath("examplePixMapBitmap.pdf"))
End Using

examplePixMapBitmap.pdf


Doc Append Function. Appends a PDF to the end of the document. ABCpdf .NET PDF Library.

Append Function

Appends a PDF to the end of the document.

Syntax

[C#]
void Append(Doc doc)

[Visual Basic]
Sub Append(doc As Doc)

Params
Name | Description
doc | The document to add to the end of this one.

Notes

Use this method to append one PDF to the end of another one.

Individual pages from one PDF can be drawn into another using the AddImageDoc method.

If you are inserting a number of pages it is much faster to use the Append method than to draw pages individually. It also has the advantage of maintaining other information such as bookmarks.

If you are inserting pages that contain form fields, you may want to call MakeFieldsUnique to avoid sharing fields across pages.

The SaveOptions.Refactor setting determines whether duplicate and redundant objects are eliminated. The SaveOptions.Preflight setting determines whether objects in the destination document are validated before this operation is performed.

Unless the document and the pages are big in terms of memory use and have many common objects, it is faster to disable SaveOptions.Refactor and SaveOptions.Preflight for adding the pages and enable them for saving the document.

Example

The following code snippet illustrates how one might join two PDF documents together.

[C#]

Doc doc1 = new Doc();
doc1.FontSize = 192;
doc1.TextStyle.HPos = 0.5;
doc1.TextStyle.VPos = 0.5;
doc1.AddText("Hello");
Doc doc2 = new Doc();
doc2.FontSize = 192;
doc2.TextStyle.HPos = 0.5;
doc2.TextStyle.VPos = 0.5;
doc2.AddText("World");
doc1.Append(doc2);
doc1.Save(Server.MapPath("docjoin.pdf"));
doc1.Clear();
doc2.Clear();

[Visual Basic]
Dim doc1 As New Doc()
doc1.FontSize = 192
doc1.TextStyle.HPos = 0.5
doc1.TextStyle.VPos = 0.5
doc1.AddText("Hello")
Dim doc2 As New Doc()
doc2.FontSize = 192
doc2.TextStyle.HPos = 0.5
doc2.TextStyle.VPos = 0.5
doc2.AddText("World")
doc1.Append(doc2)
doc1.Save(Server.MapPath("docjoin.pdf"))
doc1.Clear()
doc2.Clear()

docjoin.pdf [Page 1]

docjoin.pdf [Page 2]


Doc Chainable Function. Determines if an object is chainable. ABCpdf .NET PDF Library.

Chainable Function

Determines if an object is chainable.

Syntax

[C#]
bool Chainable(int id)

[Visual Basic]
Function Chainable(id As Integer) As Boolean

Params
Name | Description
id | The Object ID of the object to be tested.
return | Whether the object is chainable or not.

Notes

Use this method to determine if an object is chainable.

Some objects can be chained. A chunk of text may be chained from page to page on the output PDF. Similarly a web page may be chained from page to page.

This method allows you to determine if the object you have added is chainable or whether it is at the end of the chain.

Only text, PostScript images and web pages can be chainable. So your ID should have been obtained from a previous call to one of the AddImage family of calls or from AddTextStyled.

Example

See the AddImageToChain method.


Doc Clear Function. Clears the document. ABCpdf .NET PDF Library.

Clear Function

Clears the document.

Syntax

[C#]
void Clear()

[Visual Basic]
Sub Clear()

Params
Name | Description
none |

Notes

Use this method to release resources and return the document to a just-created state.


Doc ClearCachedDecompressedStreams Function. Clears the cached, decompressed data for stream objects. ABCpdf .NET PDF Library.

ClearCachedDecompressedStreams Function

Clears the cached, decompressed data for stream objects.

Syntax

[C#]
void ClearCachedDecompressedStreams()
void ClearCachedDecompressedStreams(StreamObjectTypes types)
[Visual Basic]
Sub ClearCachedDecompressedStreams()
Sub ClearCachedDecompressedStreams(types As StreamObjectTypes)

Params
Name | Description
types | The types of stream objects whose cached, decompressed data are discarded. The default value is All.

Notes

Use this method to discards the cached, decompressed data for multiple stream objects.

The StreamObjectTypes enumeration may take a combination of the following values:

  • None – no stream object.
  • All – all stream objects.
  • Others – stream objects not of the below types.
  • PixMap
  • FormXObject – Form XObject.
  • TilingPattern – tiling pattern object.
  • StreamShadingObject – shading objects that are streams.
  • StreamFunction – function objects that are streams.

You can apply the effect to a single stream object using StreamObject.ClearCachedDecompressed.


Doc Delete Function. Deletes an object previously added to the document. ABCpdf .NET PDF Library.

Delete Function

Deletes an object previously added to the document.

Syntax

[C#]
void Delete(int id)

[Visual Basic]
Sub Delete(id As Integer)

Params
Name | Description
id | The Object ID of the object to be deleted.

Notes

Use this method to delete an object previously added to the document.

Deletion may be applied to pages to remove them from the document. For example to delete the current page you might use the following code:

[C#]

theDoc.Delete(theDoc.Page);

[Visual Basic]
theDoc.Delete(theDoc.Page)

However if you are deleting multiple pages you will probably find it more efficient to use the RemapPages method. as this is more optimized for moving and removing pages.

Example

The following code snippet illustrates how one might add an image and then delete it if the image color space is CMYK.

[C#]

using (Doc doc = new Doc()) {
  string thePath = Server.MapPath("../mypics/mypic.jpg");
  int theID1 = doc.AddImageFile(thePath, 1);
  int theID2 = doc.GetInfoInt(theID1, "XObject");
  int theComps = doc.GetInfoInt(theID2, "Components");
  if (theComps == 4) doc.Delete(theID1);
  doc.Save(Server.MapPath("docdelete.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim thePath As String = Server.MapPath("../mypics/mypic.jpg")
  Dim theID1 As Integer = doc.AddImageFile(thePath, 1)
  Dim theID2 As Integer = doc.GetInfoInt(theID1, "XObject")
  Dim theComps As Integer = doc.GetInfoInt(theID2, "Components")
  If theComps = 4 Then
    doc.Delete(theID1)
  End If
  doc.Save(Server.MapPath("docdelete.pdf"))
End Using

docdelete.pdf


Doc EmbedFont Function. Embeds a font into the document. ABCpdf .NET PDF Library.

EmbedFont Function

Embeds a font into the document.

Syntax

[C#]
int EmbedFont(string name)
int EmbedFont(string name, LanguageType language)
int EmbedFont(string name, LanguageType language, bool vertical)
int EmbedFont(string name, LanguageType language, bool vertical, bool subset)
int EmbedFont(string name, LanguageType language, bool vertical, bool subset, bool force)

[Visual Basic]
Function EmbedFont(name As String) As Integer
Function EmbedFont(name As String, language As LanguageType) As Integer
Function EmbedFont(name As String, language As LanguageType, vertical As Boolean) As Integer
Function EmbedFont(name As String, language As LanguageType, vertical As Boolean, subset As Boolean) As Integer
Function EmbedFont(name As String, language As LanguageType, vertical As Boolean, subset As Boolean, force As Boolean) As Integer

Params
Name | Description
name | The name of the font typeface.
language

The language type to use. The LanguageType enumeration may take the following values:

  • Latin
  • Unicode
  • Korean
  • Japanese
  • ChineseS
  • ChineseT

See the Fonts and Languages section for details on language types. The default language type is LanguageType.Latin.

vertical

Whether the text direction should be vertical.

See the Fonts and Languages section for details on writing directions. The default is false to indicate standard left to right layout.

subset

Whether to subset the font.

See the Fonts and Languages section for details on subsetting. The default is false to indicate that the font should not be subsetted.

force

Whether to override permissions on the font.

Fonts often contain embedded licensing information. By default ABCpdf will prevent you from embedding fonts which indicate that embedding is not permitted.

You can force the font to be embedded by passing true for this value.

return | The Object ID of the newly embedded Font Object.

Notes

Embeds a font into the document.

The font name, a description of the font style and the the font glyph descriptions themselves are placed into the document. This ensures that the document will always display perfectly on every system and that font substitutions will never need to be made.

There are a number of reasons you may not wish to embed fonts and instead use the AddFont method. Embedding fonts can increase the size of your PDF considerably. Additionally by distributing a PDF with an embedded font you are actually redistributing the font itself. You should check with your font supplier or legal department that you have permission to do this.

For information on how to specify font names see the AddFont method.

The EmbedFont function returns the Object ID of the newly added Font Object. Typically you will want to assign this return value to the document Font property using code of the form.

[C#]

theDoc.Font = theDoc.AddFont("Courier");

[Visual Basic]
theDoc.Font = theDoc.AddFont("Courier")

If the specified font could not be found then you will get an Object ID of zero returned. You may wish to check for this possibility otherwise a default font will be used.

Fonts are cached so newly added fonts will not be available to ABCpdf until the application is restarted. If you need to dynamically load a font you can pass this method a path to your font file. This will add the font to the cache and make it available for use. You should not move, rename or delete a font file which has been dynamically loaded using this technique.

Why is my language a string?

In older versions of ABCpdf the language parameter was a string. So you might find code of this form.

[C#]

theDoc.EmbedFont("Courier", "Unicode");

[Visual Basic]
theDoc.EmbedFont("Courier", "Unicode")

In more recent releases the language parameter has been changed to a true enumeration. This is a safer way of coding as it allows the compiler to ensure that the values you are using are valid. Your new code should look like this.

[C#]

theDoc.EmbedFont("Courier", LanguageType.Unicode);

[Visual Basic]
theDoc.EmbedFont("Courier", LanguageType.Unicode)

The names of the items in the LanguageType enumeration are the same as the values of the strings used in previous versions. So changing your code should be a simple search and replace operation. If you see a language of "" this equates to LanguageType.Latin.

Example

The following code embeds the font 'Comic Sans MS' into the document and then adds some text.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 216;
  string theFont = "Comic Sans MS";
  doc.Font = doc.EmbedFont(theFont);
  doc.AddText(theFont);
  doc.Save(Server.MapPath("docembedfont.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 216
  Dim theFont As String = "Comic Sans MS"
  doc.Font = doc.EmbedFont(theFont)
  doc.AddText(theFont)
  doc.Save(Server.MapPath("docembedfont.pdf"))
End Using

docembedfont.pdf


Doc FillRect Function. Adds a painted rectangle to the current page. ABCpdf .NET PDF Library.

FillRect Function

Adds a painted rectangle to the current page.

Syntax

[C#]
int FillRect()
int FillRect(double radiusX, double radiusY)

[Visual Basic]
Function FillRect() As Integer
Function FillRect(radiusX As Double, radiusY As Double) As Integer

Params
Name | Description
radiusX | The horizontal radius to use for rounded corners.
radiusY | The vertical radius to use for rounded corners.
return | The Object ID of the newly added Graphic Object.

Notes

Adds a painted rectangle to the current page. The rectangle location and size is determined by the current rectangle, the fill color is determined by the current color and any options are determined by the current options.

By specifying values for the horizontal and vertical radius parameters you can draw rectangles with rounded corners. The values refer to the radii of the ellipse used to draw the corners.

By setting the horizontal radius parameter to half the width of the rect and the vertical radius parameter to half the height of the rect you can draw filled ovals and circles.

The FillRect function returns the Object ID of the newly added Graphic Object.

Example

The following code adds a blue filled rectangle to a document. The frame is inset from the edges of the document by 200 points horizontally and 100 points vertically.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Inset(200, 100);
  doc.Color.Blue = 255;
  doc.FillRect();
  doc.Save(Server.MapPath("docfillrect.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Inset(200, 100)
  doc.Color.Blue = 255
  doc.FillRect()
  doc.Save(Server.MapPath("docfillrect.pdf"))
End Using

docfillrect.pdf


Doc FitText Function. Fit a block of text into the current rectangle on the current page. ABCpdf .NET PDF Library.

FitText Function

Fit a block of text into the current rectangle on the current page.

Syntax

[C#]
int FitText(string text)

[Visual Basic]
Function FitText(text As String) As Integer

Params
Name | Description
text | The text to be added to the page.
return | The Object ID of the newly added Text Object.

Notes

Fit a block of text into the current rectangle on the current page.

This function is similar to AddText but can be used in situations in which you have a set area into which you know your text should be fitted. The call will take the base text supplied and scale it appropriately until it fits as exactly as possible into the current Rect.

For fitting multi-styled text you should use the FitTextStyled method which is used for adding styled text.


Doc FitTextStyled Function. Fit a block of styled text into the current rectangle. ABCpdf .NET PDF Library.

FitTextStyled Function

Fit a block of styled text into the current rectangle.

Syntax

[C#]
int FitTextStyled(string text)

[Visual Basic]
Function FitTextStyled(text As String) As Integer

Params
Name | Description
text | The HTML to be added to the page.
return | The Object ID of the newly added Text Object.

Notes

Fit a block of styled text into the current rectangle on the current page.

This function is similar to AddTextStyled but can be used in situations in which you have a set area into which you know your text should be fitted. The call will take the base text supplied and scale it appropriately until it fits as exactly as possible into the current Rect.


Doc Flatten Function. Flattens and compresses the current page. ABCpdf .NET PDF Library.

Flatten Function

Flattens and compresses the current page.

Syntax

[C#]
int Flatten()

[Visual Basic]
Function Flatten() As Integer

Params
Name | Description
return | n/a.

Notes

Objects added to a page are stored as individual layers. Calling this method combines all the layers on the current page and then re-compresses the layer data.

For pages that contain only a few layers the reduction in size will be minimal. However for pages which contain complex tables with many items, flattening can reduce the size of the output PDF by a factor of five or more.

Note that flattening will delete all the items currently on the page and replace them with a new compressed item. This means that Object IDs previously obtained from calls such as AddText or FrameRect will no longer be valid.

Example

See the Small Table Example and Large Table Example.


Doc FrameRect Function. Adds a rectangular frame to the current page. ABCpdf .NET PDF Library.

FrameRect Function

Adds a rectangular frame to the current page.

Syntax

[C#]
int FrameRect()
int FrameRect(bool inside)
int FrameRect(double radiusX, double radiusY)
int FrameRect(double radiusX, double radiusY, bool inside)

[Visual Basic]
Function FrameRect() As Integer
Function FrameRect(inside As Boolean) As Integer
Function FrameRect(radiusX As Double, radiusY As Double) As Integer
Function FrameRect(radiusX As Double, radiusY As Double, inside As Boolean) As Integer

Params
Name | Description
radiusX | The horizontal radius to use for rounded corners.
radiusY | The vertical radius to use for rounded corners.
inside | Whether to draw the frame inside the rectangle.
return | The Object ID of the newly added Graphic Object.

Notes

Adds a rectangular frame to the current page. The frame location and size is determined by the current rectangle, the line color is determined by the current color, the line width is determined by the current width and any options are determined by the current options.

By specifying values for the horizontal and vertical radius parameters you can draw rectangles with rounded corners. The values refers to the radii of the ellipse used to draw the corners.

By setting the horizontal radius parameter to half the width of the rect and the vertical radius parameter to half the height of the rect you can draw ovals and circles.

By default frames are drawn round the outside of the current rectangle. This allows you to add content and then frame it ensuring that the frame and the content do not overlap. However sometimes you may wish to draw the frame round the inside of the rectangle. You can do this by setting the inside parameter to true.

The FrameRect function returns the Object ID of the newly added Graphic Object.

Example

The following code adds a black frame to a document. The frame is inset from the edges of the document by 50 points horizontally and 100 points vertically.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Inset(50, 100);
  doc.FrameRect();
  doc.Save(Server.MapPath("docframerect.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Inset(50, 100)
  doc.FrameRect()
  doc.Save(Server.MapPath("docframerect.pdf"))
End Using

docframerect.pdf


Doc GetData Function. Saves a document to memory. ABCpdf .NET PDF Library.

GetData Function

Saves a document to memory.

Syntax

[C#]
byte[] GetData()

[Visual Basic]
Function GetData() As Byte()

Throws Exceptions may throw Exception()

Params
Name | Description
return | The PDF document as an array of bytes.

Notes

Normally, you will want to save your documents using the Save method. However, sometimes you will need to obtain your PDF as raw data rather than in a file. The GetData method allows you to do this.

You may wish to write a PDF directly to a client browser rather than going through an intermediate file. The data you obtain using GetData can be written direct to an HTTP stream using Response.BinaryWrite. Similarly, you may wish to obtain raw data for insertion into a database.

The SaveOptions.Refactor setting determines whether duplicate and redundant objects are eliminated when the document's data is obtained.

PDFs and Internet Explorer. The combination of Internet Explorer and Acrobat is not always trouble free - particularly under https or using older versions of Explorer. It can be difficult to know exactly where the problem lies because there is an interaction of the Operating System, Explorer and Acrobat. Any of these can be the cause.

Sometimes, Explorer may get 'stuck' on a particular content type and insist on displaying your PDF as HTML. In this case, you will see random text starting with %PDF. Sometimes, this can happen if you stream PDF data to a window which was previously displaying HTML.

Sometimes, server-side debugging results in extra data being inserted into the content stream. While this may not matter for HTML, it will corrupt binary documents like PDF.

Sometimes, your code may inadvertently insert extra data into the content stream. Again, this will corrupt the PDF. Error messages are a common cause of this kind of corruption.

HTTP compression may result in PDF streams being compressed before return to the browser. While browsers are able to deal with this type of compression, Acrobat may not be able to. You can see if this type of compression is being used by examining the headers returned to the browser using a tool like IEWatch. If you are using IIS 6 compression, you can disable it on a page by page basis using the IIS Metabase Explorer from the IIS 6 resource kit.

Sometimes, the use of HTTPS with PDF content can be problematic. For example, see Microsoft KB812935.

For testing purposes, you may wish to change the content-disposition from 'inline' to 'attachment'. This will allow you to download the data rather than view it in your browser. You can then check the downloaded document using Acrobat or a hex editor.

Alternatively, if the problem is that PDFs seem to be cached you may wish to check the 'Enable Content Expiration' checkbox you will find under the Web Site Properties.

We would suggest two steps:

  1. Your first step should be to eliminate ABCpdf as the cause. Why not save the PDF to disk at the same time as sending it to the client? That way you can establish that the PDF is fine. If you want to take it further, you can then read the PDF data from disk and stream it direct to the client.
  2. The example site streams PDF data direct to the client. So, install the example site into a new virtual directory and establish if the same issue exists for the example site. If it works, then it's simply a matter of moving your current code base and the example site code base towards each other until you find the cause of the problem.

Example

The following code illustrates how one might add text to a PDF and then write it direct to the client browser. This code is an entire ASP.NET page - hello.aspx.

[C#]

<% @Page Language="C#" %>
<% @Import Namespace="WebSupergoo.ABCpdf12" %>
<%
Doc theDoc = new Doc();
theDoc.FontSize = 96;
theDoc.AddText("Hello World");
byte[] theData = theDoc.GetData();
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "inline; filename=MyPDF.PDF");
Response.AddHeader("content-length", theData.Length.ToString());
Response.BinaryWrite(theData);
Response.End();
%>

[Visual Basic]
<% @Page Language="Visual Basic" %>
<% @Import Namespace="WebSupergoo.ABCpdf12" %>
<%
Dim theDoc As Doc = New Doc()
theDoc.FontSize = 96
theDoc.AddText("Hello World")
Dim theData() As Byte = theDoc.GetData()
Response.Clear()
Response.ContentType = "application/pdf"
Response.AddHeader("content-disposition", "inline; filename=MyPDF.PDF")
Response.AddHeader("content-length", theData.Length.ToString())
Response.BinaryWrite(theData)
Response.End()
%>

hello.asp


Doc GetInfo Function. Gets string information about an object. ABCpdf .NET PDF Library.

GetInfo Function

Gets string information about an object.

Syntax

[C#]
string GetInfo(int id, string type)

[Visual Basic]
Function GetInfo(id As Integer, type As String) As String

Params
Name | Description
id | The Object ID of the object to be queried.
type | The type of information to be retrieved.
return | The returned information.

Notes

After you modify a document you may want to get back information about the objects you have added. For example you might want to find out the natural dimensions of an image or you might want to find out how many characters were drawn when you inserted some text. This method allows you access to this information.

There are core information types that all objects support. There are also information types specific to particular types of object. You can use core information types to allow you to iterate through every object in your document finding out specific information about each of them.

If the object does not exist or does not support the requested type of information then an empty string is returned.

Every object supports the ID and Type properties. For more detailed information about this and other properties see the Object Paths section of this document.

PDF objects are case sensitive so be sure you use the correct case when specifying information.

Example

The following code snippet illustrates how one might report the natural dimensions of an image.

[C#]

using (Doc doc = new Doc()) {
  string thePath = Server.MapPath("../mypics/mypic.jpg");
  int theID1 = doc.AddImageFile(thePath, 1);
  int theID2 = doc.GetInfoInt(theID1, "XObject");
  string theWidth = doc.GetInfo(theID2, "Width");
  string theHeight = doc.GetInfo(theID2, "Height");
  Response.Write($"Width {theWidth}< br>");
  Response.Write($"Height {theHeight}< br>");
}

[Visual Basic]
Using doc As New Doc()
  Dim thePath As String = Server.MapPath("../mypics/mypic.jpg")
  Dim theID1 As Integer = doc.AddImageFile(thePath, 1)
  Dim theID2 As Integer = doc.GetInfoInt(theID1, "XObject")
  Dim theWidth As String = doc.GetInfo(theID2, "Width")
  Dim theHeight As String = doc.GetInfo(theID2, "Height")
  Response.Write($"Width {theWidth}< br>")
  Response.Write($"Height {theHeight}< br>")
End Using

This is the kind of output you might expect.

Width 480
Height 640


Doc GetInfoDate Function. Gets date information about an object. ABCpdf .NET PDF Library.

GetInfoDate Function

Gets date information about an object.

Syntax

[C#]
DateTime GetInfoDate(int id, string type)
DateTime GetInfoDate(int id, string type, bool allowLocal)
[Visual Basic]
Function GetInfoDate(id As Integer, type As String) As DateTime
Function GetInfoDate(id As Integer, type As String, allowLocal As Boolean) As DateTime

Params
Name | Description
id | The Object ID of the object to be queried.
type | The type of information to be retrieved.
allowLocal | For dates containing time zone information, if the parameter is true, the returned values will be local times (local to the time zone of the dates, and not to the local machine); if the parameter is false, the returned values will be UTC times. The default is false.
return | The returned value.

Notes

This function behaves identically to the GetInfo method but returns a DateTime rather than a string. If the information cannot be obtained or is not a date, then the return value will be the zero DateTime.

PDF dates also contain times. They are stored as strings in PDF so this function is mostly used with the :Text object type.

Example

See the GetInfo function.


Doc GetInfoDouble Function. Gets numeric information about an object. ABCpdf .NET PDF Library.

GetInfoDouble Function

Gets numeric information about an object.

Syntax

[C#]
double GetInfoDouble(int id, string type)

[Visual Basic]
Function GetInfoDouble(id As Integer, type As String) As Double

Params
Name | Description
id | The Object ID of the object to be queried.
type | The type of information to be retrieved.
return | The returned value.

Notes

This function behaves identically to the GetInfo method but returns a double rather than a string. If the information cannot be obtained or is not numeric, the return value will be zero.

Example

See the GetInfo function.


Doc GetInfoInt Function. Gets numeric information about an object. ABCpdf .NET PDF Library.

GetInfoInt Function

Gets numeric information about an object.

Syntax

[C#]
int GetInfoInt(int id, string type)

[Visual Basic]
Function GetInfoInt(id As Integer, type As String) As Integer

Params
Name | Description
id | The Object ID of the object to be queried.
type | The type of information to be retrieved.
return | The returned integer.

Notes

This function behaves identically to the GetInfo method but returns an integer rather than a string. If the information cannot be obtained or is not numeric, the return value will be zero.

Example

See the GetInfo function.


Doc GetInfoInt64 Function. Gets numeric information about an object. ABCpdf .NET PDF Library.

GetInfoInt64 Function

Gets numeric information about an object.

Syntax

[C#]
long GetInfoInt64(int id, string type)

[Visual Basic]
Function GetInfoInt64(id As Integer, type As String) As Long

Params
Name | Description
id | The Object ID of the object to be queried.
type | The type of information to be retrieved.
return | The returned integer.

Notes

This function behaves identically to the GetInfo method but returns a 64-bit integer rather than a string. If the information cannot be obtained or is not numeric, the return value will be zero.

Example

See the GetInfo function.


Doc GetStream Function. Gets a document as raw data stream. ABCpdf .NET PDF Library.

GetStream Function

Gets a document as raw data stream.

Syntax

[C#]
Stream GetStream()

[Visual Basic]
Function GetStream() As Stream

Throws Exceptions may throw Exception()

Params
Name | Description
return | The PDF document as a stream.

Notes

Normally, you will want to save your documents using the Save method. However, sometimes you will need to obtain your PDF as raw data rather than in a file. The GetStream method allows you to do this.

You may wish to write a PDF directly to a client browser rather than going through an intermediate file. The data you obtain using GetStream can be written direct to an HTTP stream using Response.BinaryWrite. Similarly, you may wish to obtain raw data for insertion into a database.

Because of the CLR limit of 2 GB per object, the GetData method cannot return the data for a document larger than 2 GB. Use this method for documents larger than 2 GB. Dispose of the returned stream as soon as it is no longer needed for small memory footprint.

The SaveOptions.Refactor setting determines whether duplicate and redundant objects are eliminated when the document's data is obtained.

PDFs and Internet Explorer. The combination of Internet Explorer and Acrobat is not always trouble free - particularly under https or using older versions of Explorer. It can be difficult to know exactly where the problem lies because there is an interaction of the Operating System, Explorer and Acrobat. Any of these can be the cause.

Sometimes, Explorer may get 'stuck' on a particular content type and insist on displaying your PDF as HTML. In this case, you will see random text starting with %PDF. Sometimes, this can happen if you stream PDF data to a window which was previously displaying HTML.

Sometimes, server-side debugging results in extra data being inserted into the content stream. While this may not matter for HTML, it will corrupt binary documents like PDF.

Sometimes, your code may inadvertently insert extra data into the content stream. Again, this will corrupt the PDF. Error messages are a common cause of this kind of corruption.

HTTP compression may result in PDF streams being compressed before return to the browser. While browsers are able to deal with this type of compression, Acrobat may not be able to. You can see if this type of compression is being used by examining the headers returned to the browser using a tool like IEWatch. If you are using IIS 6 compression, you can disable it on a page by page basis using the IIS Metabase Explorer from the IIS 6 resource kit.

Sometimes, the use of HTTPS with PDF content can be problematic. For example, see Microsoft KB812935.

For testing purposes, you may wish to change the content-disposition from 'inline' to 'attachment'. This will allow you to download the data rather than view it in your browser. You can then check the downloaded document using Acrobat or a hex editor.

Alternatively, if the problem is that PDFs seem to be cached you may wish to check the 'Enable Content Expiration' checkbox you will find under the Web Site Properties.

We would suggest two steps:

  1. Your first step should be to eliminate ABCpdf as the cause. Why not save the PDF to disk at the same time as sending it to the client? That way you can establish that the PDF is fine. If you want to take it further, you can then read the PDF data from disk and stream it direct to the client.
  2. The example site streams PDF data direct to the client. So, install the example site into a new virtual directory and establish if the same issue exists for the example site. If it works, then it's simply a matter of moving your current code base and the example site code base towards each other until you find the cause of the problem.

Example

The following code illustrates how one might add text to a PDF and then write it direct to the client browser. This code is an entire ASP.NET page - hello.aspx.

[C#]

<% @Page Language="C#" %>
<% @Import Namespace="WebSupergoo.ABCpdf12" %>
<%
Doc theDoc = new Doc();
theDoc.FontSize = 96;
theDoc.AddText("Hello World");
using (Stream theStream = theDoc.GetStream()) {
  Response.Clear();
  Response.ContentType = "application/pdf";
  Response.AddHeader("content-disposition", "inline; filename=MyPDF.PDF");
  Response.AddHeader("content-length", theStream.Length.ToString());
  long theLen = theStream.Length;
  byte[] theData = new byte[theLen >= 32768? 32768: (int)theLen];
  while (theLen > 0) {
    theStream.Read(theData, 0, theData.Length);
    Response.BinaryWrite(theData);
    theLen -= theData.Length;
    if (theLen < theData.Length && theLen > 0)
      theData = new byte[(int)theLen];
  }
}
Response.End();
%>

[Visual Basic]
<% @Page Language="Visual Basic" %>
<% @Import Namespace="WebSupergoo.ABCpdf12" %>
<%
Dim theDoc As Doc = New Doc()
theDoc.FontSize = 96
theDoc.AddText("Hello World")
Using theStream As Stream = theDoc.GetStream()
  Response.Clear()
  Response.ContentType = "application/pdf"
  Response.AddHeader("content-disposition", "inline; filename=MyPDF.PDF")
  Response.AddHeader("content-length", theStream.Length.ToString())
  Dim theLen As Long = theStream.Length;
  Dim theData() As Byte = New Byte(Math.Min(32768, theLen))
  Do While theLen > 0
    theStream.Read(theData, 0, theData.Length)
    Response.BinaryWrite(theData)
    theLen -= theData.Length
    If theLen < theData.Length AndAlso theLen > 0 Then
      theData = New Byte(theLen)
    End If
  Loop
End Using
Response.End()
%>

hello.asp


Doc GetText Function. Extract content from the current page in a specified format. ABCpdf .NET PDF Library.

GetText Function

Extract content from the current page in a specified format.

Syntax

[C#]
string GetText(string type)
string GetText(Page.TextType type, bool includeAnnotations)

[Visual Basic]
Function GetText(type As String) As String
Function GetText(type As Page.TextType, includeAnnotations As Boolean) As String

Params
Name | Description
type | The format in which to return the content.
includeAnnotations | Whether to include field and annotation text.
return | The returned content.

Notes

This function allows you to extract the content from a page.

This is a convenience function for easy access to the content of the current page. For full details of how text extraction works see the Page.GetText function.

The following formats are supported - "Text", "SVG", "SVG+", "SVG+2" and "RawText". These types can be specified as strings for backwards compatibility with older code. However in newer code you should prefer the function overload that takes a Page.TextType enumeration.

Text is in layout order which may not be the same as reading order. ABCpdf will make sensible assumptions on how items of text should be combined but some situations are ambiguous.

The current release of ABCpdf is much more sophisticated than previous ones when it comes to extracting text. However if you are relying on the ABCpdf 8 simplified model you can use the "RawText" format for backwards compatibility.


Doc MeasureText Function. Measure the length of a block of text without adding it to the page. ABCpdf .NET PDF Library.

MeasureText Function

Measure the length of a block of text without adding it to the page.

Syntax

[C#]
double MeasureText(string text)
double MeasureText(string text, double fontSize, double charSpacing, double wordSpacing, bool italic, bool bold, double outline)
double MeasureText(string text, double fontSize, double charSpacing, double wordSpacing, bool italic, bool bold, double outline, int defaultSize1000ths)

[Visual Basic]
Function MeasureText(text As String) As Double
Function MeasureText(text As String, fontSize As Double, charSpacing As Double, wordSpacing As Double, italic As Boolean, bold As Boolean, outline As Double) As Double
Function MeasureText(text As String, fontSize As Double, charSpacing As Double, wordSpacing As Double, italic As Boolean, bold As Boolean, outline As Double, defaultSize1000ths As Integer) As Double

Params
Name | Description
text | The text to be measured.
fontSize | The size of the font.
charSpacing | The spacing to be applied between each character.
wordSpacing | The spacing to be applied between each word.
italic | Whether a synthetic italic style is to be applied.
bold | Whether a synthetic bold style is to be applied.
outline | The size of any outline to be applied to the font.
defaultSize1000ths | The default width for missing characters in 1000ths of an M.
return | The width of the text in the units provided.

Notes

This function is used to measure the length of a block of text using the current Font.

This method is unit agnostic so you can use whatever units you like and the result will be returned in terms of those units. However typically you would provide point based measurements to provide a point based length.


Doc Read Function. Reads an existing document. ABCpdf .NET PDF Library.

Read Function

Reads an existing document.

Syntax

[C#]
void Read(string path)
void Read(byte[] data)
void Read(Stream stream)
void Read(string path, string password)
void Read(byte[] data, string password)
void Read(Stream stream, string password)
void Read(string path, XReadOptions options)
void Read(byte[] data, XReadOptions options)
void Read(Stream stream, XReadOptions options)

[Visual Basic]
Sub Read(path As String)
Sub Read(data() As Byte)
Sub Read(stream As Stream)
Sub Read(path As String, password As String)
Sub Read(data() As Byte, password As String)
Sub Read(stream As Stream, password As String)
Sub Read(path As String, options As XReadOptions)
Sub Read(data() As Byte, options As XReadOptions)
Sub Read(stream As Stream, options As XReadOptions)

Throws Exceptions may throw Exception()

Params
Name | Description
path | The file path to the PDF, OpenOffice.org, SVG, RTF, XPS or other supported document type.
data | The source PDF data.
stream | The source PDF or document stream.
password | Any password needed to open the document.
options | The settings for the read.

Notes

Use this method to read a file into a document object. Any existing document content will be discarded. All properties will be set back to their defaults.

You can specify a PDF as a file path or by passing in the raw PDF data. Raw data must be held as an array of bytes. You can open encrypted PDF documents if you supply a valid password.

You may notice that colors in the PDF files are slightly different if you are reading non-PDF files. PDF handles alpha blending differently from other file formats. Refer to SwfImportOperation.Import for notes about alpha blending.

Other File Types. This method supports the import of a range of other file types as standard.

For the import of doc and docx formats we recommend the use of WordGlue wherever possible. This eliminates the installation and configuration issues which can be associated with other doc import applications.

If OpenOffice.org is installed you can pass this method a file path to OpenOffice.org compatible documents. This means you can read file types like Microsoft Word (.doc, .docx), Microsoft Excel (.xls, xlsx), Rich Text Format (.rtf), PowerPoint (.ppt, .pptx), WordPerfect (.wpd), Lotus 1-2-3 (.wk1) and AutoCAD (.dxf).

If both Microsoft Office and .NET 3.5 are installed you can pass this method a path to any Microsoft Office compatible document. By default the Microsoft Office import operation works direct but it can also work via the XPS printer driver if you explicitly specify that the XpsAny read module be used. ABCpdf works with Office 2007 or later.

Rich Text Format (.rtf) documents are automatically imported using the nativeABCpdf Rich Text Format read module. This is generally the simplest, fastest and most reliable import method. However if you have specific needs you can also import them using the OpenOffice.org or Microsoft Office XReadOptiions.ReadModules.

You can pass this method a file path to an SVG or SVGZ document for conversion to PDF. ABCpdf supports a subset of SVG based around the SVG Tiny specification. For details see the SVG Support section of the documentation. You can also pass a file path to an XPS, OXPS or EPS document for conversion to PDF.

You can use a path to an image type such as JPEG or TIFF. ABCpdf will import multi-page images as multi-page documents. The image types supported are, broadly, those supported by the XImage object.

If you have a stream or data rather than a file path then you will need to specify an options parameter. This is necessary because in the case of data ABCpdf does not have a file extension from which it can automatically decide the type of module to use. As a result it regards all data as PDF unless told otherwise.

Full control over the import process can be implemented by specifying an options parameter. Reading a document without specifying an options parameter is functionally the same as reading a document using a default XReadOptions object.

After the read operation is complete the Page property will contain the ID of the first page in the document. The Rect and MediaBox properties will reflect the size of the first page in the document.

ABCpdf .NET operates an intelligent just-in-time object loading scheme for PDFs which ensures that only those objects that are required are loaded into memory. This means that if you are modifying large documents then server load will be kept to a minimum. The original PDF document must be available for as long as the Doc object is being used. As a result you cannot modify or overwrite a PDF file while it is read into a Doc object. You will need to save your PDF to another location and then swap the two files around after the Doc object's use of the PDF is ended (with a call to Clear, Dispose, or Read with another PDF file).

Object deletion requires that all references to an object are removed. There is no way of doing this without checking each object in the document. So object deletion requires that every object in the document is loaded and for large documents this may place a significant load on the server. Reading encrypted documents places a greater load on the server because - like object deletion - it requires that every object in the document be loaded.

Please note that you are legally bound to respect the permissions present in existing PDF documents. For details please see the Legal Requirement Section.

The Read method may be used to read eForm FDF documents as well as PDF documents. Most PDF operations will not work on FDF documents but you can query field values using the GetInfo methods to return Unicode strings.

Modifying Documents. ABCpdf will allow you to open, modify and save PDF documents.

ABCpdf will allow you to draw on top of PDF documents or add or delete pages or modify document data. However because of the way that PDF documents are structured it's unlikely that you'll be able to edit existing content.

So if there are blank spaces which you can draw your entries into that will work. Indeed you might want to draw a white box over existing content and then draw on that.

However you shouldn't expect to be able to edit and re-flow text that is already in your PDF.

Example

The following illustrates how one might add a large red number to every page of a PDF document.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/sample.pdf"));
  doc.FontSize = 500;
  doc.Color.String = "255 0 0";
  doc.TextStyle.HPos = 0.5;
  doc.TextStyle.VPos = 0.3;
  int theCount = doc.PageCount;
  for (int i = 1; i <= theCount; i++) {
    doc.PageNumber = i;
    doc.AddText(i.ToString());
  }
  doc.Save(Server.MapPath("docread.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/sample.pdf"))
  doc.FontSize = 500
  doc.Color.String = "255 0 0"
  doc.TextStyle.HPos = 0.5
  doc.TextStyle.VPos = 0.3
  Dim theCount As Integer = doc.PageCount
  Dim i As Integer = 1
  While i <= theCount
    doc.PageNumber = i
    doc.AddText(i.ToString())
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While
  doc.Save(Server.MapPath("docread.pdf"))
End Using

docread.pdf - [Page 1] | docread.pdf - [Page 2]
docread.pdf - [Page 3] | docread.pdf - [Page 4]


Doc RemapPages Function. Remaps pages for reordering, copying and deletion. ABCpdf .NET PDF Library.

RemapPages Method

Remaps pages for reordering, copying and deletion.

Syntax

[C#]
void RemapPages(string pages)
void RemapPages(int[] pages)
void RemapPages(int[] pages, int index, int count)
[Visual Basic]
Sub RemapPages(pages As String)
Sub RemapPages(pages() As Integer)
Sub RemapPages(pages() As Integer, index As Integer, count As Integer)

Params
Name | Description
pages | The list of page numbers.
index | The index of the first page number into the array pages.
count | The number of page numbers in the array pages to use.

Notes

This method provides a simple method for remapping the pages in a document. It can be used for reordering, copying or deleting pages.

It accepts a list of page numbers and reorders the pages in the document so that they match these page numbers. If a number is repeated more than once, the page is duplicated. If a number is omitted, the page is deleted.

Page numbers can be delimited using spaces, commas or semicolons. The first page in a document is page one. So to reverse a four page document, you might use "4 3 2 1".

If a page is duplicated and it contains Form fields, you may want to call MakeFieldsUnique to avoid sharing fields across pages.

Example

The following code snippet illustrates how one might reverse all the pages in a document.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/sample.pdf"));
  doc.FontSize = 500;
  doc.Color.String = "255 0 0";
  doc.TextStyle.HPos = 0.5;
  doc.TextStyle.VPos = 0.3;
  int theCount = doc.PageCount;
  List<int> pages = new List<int>();
  for (int i = 1; i <= theCount; i++) {
    doc.PageNumber = i;
    doc.AddText(i.ToString());
    pages.Add(theCount - i + 1);
  }
  doc.RemapPages(pages.ToArray());
  doc.Save(Server.MapPath("docremappages.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/sample.pdf"))
  doc.FontSize = 500
  doc.Color.String = "255 0 0"
  doc.TextStyle.HPos = 0.5
  doc.TextStyle.VPos = 0.3
  Dim theCount As Integer = doc.PageCount
  Dim pages As New List(Of Integer)()
  Dim i As Integer = 1
  While i <= theCount
    doc.PageNumber = i
    doc.AddText(i.ToString())
    pages.Add(theCount - i + 1)
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While
  doc.RemapPages(pages.ToArray())
  doc.Save(Server.MapPath("docremappages.pdf"))
End Using

docremappages.pdf [Page 1] | docremappages.pdf [Page 2]
docremappages.pdf [Page 3] | docremappages.pdf [Page 4]


Doc Save Function. Saves the document as PDF. ABCpdf .NET PDF Library.

Save Function

Saves the document as PDF.

Syntax

[C#]
void Save(string path)
void Save(Stream stream)

[Visual Basic]
Sub Save(path As String)
Sub Save(stream As Stream)

Throws Exceptions may throw Exception()

Params
Name | Description
path | The destination file path.
stream | The destination stream.

Notes

Use this method to export the current document as PDF, XPS, PostScript, HTML, DOCX, WebGL or SWF.

To export as XPS, PostScript, DOCX or HTML you need to specify a file path with an appropriate extension - ".xps", ".ps", ".docx", ".htm", ".html" or ".swf". If the file extension is unrecognized then the default PDF format will be used.

When saving to a Stream the format can be indicated using a Doc.SaveOptions.FileExtension property such as ".htm" or ".xps". For HTML you must provide a sensible value for the Doc.SaveOptions.Folder property. For XPS streams must be both readable and writable - FileAccess.ReadWrite and not simply FileAccess.Write.

ABCpdf operates an intelligent just-in-time object loading scheme which ensures that only those objects that are required are loaded into memory. This means that if you are modifying large documents then server load will be kept to a minimum. The original PDF document must be available for as long as the Doc object is being used.

As a result you cannot modify or overwrite a PDF file while it is read into a Doc object. You will need to save your PDF to another location and then swap the two files around after the Doc object's use of the PDF is ended (with a call to Clear, Dispose, or Read with another PDF file).

If you need to obtain a PDF as raw data you can use the GetData function.

The SaveOptions.Refactor setting determines whether duplicate and redundant objects are eliminated when the document is saved.

Versions. ABCpdf automatically determines the version depending on the features you use. If you use features from only the 1.1 specification it will write a 1.1 PDF. If you use 1.3 features it will write a 1.3 PDF. If you use 1.4 features it will write a 1.4 PDF. Ditto 1.5 and 1.6.

If you're using a PDF template or drawing from another PDF the final output will be the minimum version used in these templates. In many real world applications this will be the factor which determines the version in the final output produced by ABCpdf.

There is no advantage in producing a 1.6 document if you're not using features from the 1.6 feature set. To do this will simply stop users of older versions of Acrobat from accessing a document which should be available to them.

When saving to SWF, if the Doc.SaveOptions.Template is null, the current page is exported with Rect as the bounds of the Flash movie using Doc.SaveOptions.TemplateData.MeasureDpiX and Doc.SaveOptions.TemplateData.MeasureDpiY if specified. Otherwise, Doc.SaveOptions.Template specifies the path to a SWF file. The saved SWF file starts with the template SWF files, and a frame is added for each page in the document. The script added is in ActionScript 2. If the template's version is Flash Player 7 or lower, the saved file's version will be Flash Player 8. For information on the interaction between the added frames and the script from the template, please refer to the example Flash file. Images are output in JPEG if (1) they are in DeviceGray or DeviceRGB and already in JPEG (without any other compression on top), or (2) they are not in the indexed color space and both the width and the height are at least 8 pixels. For (1), the original JPEG data is used so you can control the quality by pre-compressing the images; for (2), the output will use 80% quality.

Example

The following code illustrates how one might add text to a PDF and then save it out.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 96;
  doc.AddText("Hello World");
  doc.Save(Server.MapPath("docsave.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 96
  doc.AddText("Hello World")
  doc.Save(Server.MapPath("docsave.pdf"))
End Using

docsave.pdf


Doc SetInfo Function. Sets information about an object. ABCpdf .NET PDF Library.

SetInfo Function

Sets information about an object.

Syntax

[C#]
void SetInfo(int id, string type, string info)
void SetInfo(int id, string type, int info)
void SetInfo(int id, string type, double info)
void SetInfo(int id, string type, DateTime info)
void SetInfo(int id, string type, bool info)
[Visual Basic]
Sub SetInfo(id As Integer, type As String, info As String)
Sub SetInfo(id As Integer, type As String, info As Integer)
Sub SetInfo(id As Integer, type As String, info As Double)
Sub SetInfo(id As Integer, type As String, info As DateTime)
Sub SetInfo(id As Integer, type As String, info As Boolean)

Params
Name | Description
id | The Object ID of the object to be modified.
type | The type of value to insert.
info | The value to insert. • The overloads taking integer/floating-point info converts this parameter to the string representation (numbers as used in PDF) in the invariant culture without creating a managed string object. • The overload taking DateTime info converts this parameter to the string representation (PDF date string) so it is mostly used with the :Text object type.

Notes

In the same way as you can get information about aspects of a document using the GetInfo method you can modify aspects of the document using the SetInfo method.

Different types of object support different types of properties. For more detailed information see the Object Paths section of this document.

PDF objects are case sensitive so be sure you use the correct case.

Example

The following shows how to modify the document catalog to ensure that the PDF opens onto the second page rather than the first.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/sample.pdf"));
  int thePages = doc.GetInfoInt(doc.Root, "Pages");
  int thePage2 = doc.GetInfoInt(thePages, "Page 2");
  string theAction = $"[ {thePage2} 0 R /Fit ]";
  doc.SetInfo(doc.Root, "/OpenAction", theAction);
  doc.Save(Server.MapPath("docsetinfo.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/sample.pdf"))
  Dim thePages As Integer = doc.GetInfoInt(doc.Root, "Pages")
  Dim thePage2 As Integer = doc.GetInfoInt(thePages, "Page 2")
  Dim theAction As String = $"[ {thePage2} 0 R /Fit ]"
  doc.SetInfo(doc.Root, "/OpenAction", theAction)
  doc.Save(Server.MapPath("docsetinfo.pdf"))
End Using

Open Actions. The way in which a PDF is displayed when opened is dependent on certain flags within the PDF itself. Here are some common combinations. For full details of how these work you should see the Adobe PDF Specification available from the Adobe web site.

To show outlines:

theDoc.SetInfo(theDoc.Root, "/PageMode", "/UseOutlines")

Or for thumbnails:

theDoc.SetInfo theDoc.Root, "/PageMode", "/UseThumbs"

To display two pages side by side:

theDoc.SetInfo(theDoc.Root, "/PageLayout", "/TwoColumnLeft")

To make the print dialog appear when the document is opened:

theDoc.SetInfo(theDoc.Root, "/OpenAction", "<< /Type /Action /S /Named /N /Print >>")

To open at 200% zoom onto the current page:

theDoc.SetInfo(theDoc.Root, "/OpenAction", "[ " + theDoc.Page.ToString() +" 0 R /XYZ null null 2 ]")

To fit the document width onto the current page:

theDoc.SetInfo(theDoc.Root, "/OpenAction", "[ " + theDoc.Page.ToString() + " 0 R /FitH " + theDoc.MediaBox.Height.ToString() + " ]")


Doc ToString Function. A string representation of the graphic style of the document. ABCpdf .NET PDF Library.

ToString Function

A string representation of the graphic style of the document

Syntax

[C#]
override string ToString()

[Visual Basic]
Overrides Function ToString() As String

Params
Name | Description
none | The string representation of the object.

Notes

This method returns the string value of the object. This is equivalent to reading the String property of the object.


Doc Bookmark Property. The top level bookmark for the document. ABCpdf .NET PDF Library.

Bookmark Property

Type | Default Value | Read Only | Description
[C#] Objects.Bookmark [Visual Basic] Objects.Bookmark | n/a | No | The top level bookmark for the document.

Notes

The top level bookmark associated with this document.

PDF documents typically provide a list of bookmarks for easy navigation between pages. In Acrobat this navigation structure is available under the Bookmarks tab. The PDF specification refers to this structure as the document outline.

The document outline comprises of a hierarchy of bookmarks. The bookmark at the top of the hierarchy is available via this property.

See the Objects.Bookmark object for further details.


Doc Color Property. The current drawing and filling color. ABCpdf .NET PDF Library.

Color Property

Type | Default | Read Only | Description
[C#] XColor [Visual Basic] XColor | Black | No | The current drawing and filling color.

Notes

The color used for drawing.

This property determines the color used for drawing lines, shapes, filled shapes and text.

Example

The following code creates a PDF document with a red background.

[C#]

using (Doc doc = new Doc()) {
  doc.Color.String = "255 0 0";
  doc.FillRect();
  doc.Save(Server.MapPath("doccolor.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Color.String = "255 0 0"
  doc.FillRect()
  doc.Save(Server.MapPath("doccolor.pdf"))
End Using

doccolor.pdf


Doc ColorSpace Property. The current ColorSpace ID. ABCpdf .NET PDF Library.

ColorSpace Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | The current ColorSpace ID.

Notes

The current color space.

The ColorSpace is used when the Color is of a matching type. If the color type does not match then the default - device - color space is used.

For example you add a CMYK color space and assign it to the ColorSpace property. All CMYK Colors you use will be defined in terms of this color space. However RGB and Grayscale colors will continue to be defined in terms of the default - device - color spaces.

To get a ColorSpace ID you need to add your color space to the current document using the AddColorSpaceFile or AddColorSpaceSpot method.

Example

The following code shows how to colorize an image. It adds a base image to the current page and converts it to grayscale. Then it creates a new spot color space and assigns the new color space to the image.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Inset(20, 20);

  XImage theImg = new XImage();
  theImg.SetFile(Server.MapPath("../mypics/mypic.jpg"));
  int theID = doc.AddImageObject(theImg, false);

  theID = doc.GetInfoInt(theID, "XObject");
  doc.SetInfo(theID, "Grayscale", "");

  int theCS = doc.AddColorSpaceSpot("MAGENTA", "0 100 0 0");
  doc.SetInfo(theID, "/ColorSpace:Ref", theCS.ToString());
  doc.SetInfo(theID, "/Decode", "[1 0]");

  doc.Save(Server.MapPath("doccolorspace.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Inset(20, 20)

  Dim theImg As New XImage()
  theImg.SetFile(Server.MapPath("../mypics/mypic.jpg"))
  Dim theID As Integer = doc.AddImageObject(theImg, False)

  theID = doc.GetInfoInt(theID, "XObject")
  doc.SetInfo(theID, "Grayscale", "")

  Dim theCS As Integer = doc.AddColorSpaceSpot("MAGENTA", "0 100 0 0")
  doc.SetInfo(theID, "/ColorSpace:Ref", theCS.ToString())
  doc.SetInfo(theID, "/Decode", "[1 0]")

  doc.Save(Server.MapPath("doccolorspace.pdf"))
End Using

doccolorspace.pdf


Doc CropBox Property. The current document visible page size. ABCpdf .NET PDF Library.

CropBox Property

Type | Default | Read Only | Description
[C#] XRect [Visual Basic] XRect | Letter Size [0, 0, 612, 792]. | Yes | The current document visible page size.

Notes

The current document visible page size.

This property reflects the CropBox of the current page.

For methods you can use to change the CropBox of the current page see the MediaBox property.


Doc Encryption Property. The current encryption settings. ABCpdf .NET PDF Library.

Encryption Property

Type | Default | Read Only | Description
[C#] XEncryption [Visual Basic] XEncryption | No encryption. | No | The current encryption settings.

Notes

This property determines the current encryption settings. When you save the document the encryption settings - if any - will be used to determine the method of encryption to be used.

By default documents are not encrypted when created. However if you read an existing PDF document the encryption property will be updated to reflect the encryption settings used to create the original document.

PDF encryption supports two different types of password - a user password and an owner password. You can use either password to open and view the document. However unless you supply the owner password, permissions will be applied and access to the document may be restricted.

Typically PDF encryption is used to apply permissions to a document. The user password is left blank and only an owner password supplied. PDF readers will not prompt for a password if there is no user password. However any permissions will automatically be applied. In this way you can allow anyone to open the document but restrict access to operations like copying text, printing the document or extracting images.

The PDF 2.0 standard deprecates a number of these options as being potentially insecure. The recommended set for PDF 2.0 compliant documents is XEncryption.Type 5 with XEncryption.SetCryptMethods AESV3.

Please note that you are legally bound to respect the permissions present in existing PDF documents. For details please see the Legal Requirement Section.

Example

The following code saves a simple PDF document using a 128 bit encryption key. It applies a copy-protection permission to stop people copying text out of the document.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 96;
  doc.AddText("Hello World!");
  doc.Encryption.Type = 5;
  doc.Encryption.SetCryptMethods(CryptMethodType.AESV3);
  doc.Encryption.CanCopy = false;
  doc.Encryption.OwnerPassword = "owner";
  doc.Save(Server.MapPath("docencrypt.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 96
  doc.AddText("Hello World!")
  doc.Encryption.Type = 5
  doc.Encryption.SetCryptMethods(CryptMethodType.AESV3)
  doc.Encryption.CanCopy = False
  doc.Encryption.OwnerPassword = "owner"
  doc.Save(Server.MapPath("docencrypt.pdf"))
End Using


Doc Font Property. The current Font ID. ABCpdf .NET PDF Library.

Font Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | The current Font ID.

Notes

The font used for drawing text.

This property holds the current Font ID and determines the style of text that is added to the document using methods like AddText.

To get a Font ID you need to add your font to the current document using the AddFont method.

The Font property is an accessor for the the XTextStyle.Font property.

Example

The following example adds two blocks of styled text to a document. The first block is in Helvetica and the second in Courier.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 96; // big text
  doc.Font = doc.AddFont("Helvetica");
  doc.AddText("Helvetica Text.");
  doc.Font = doc.AddFont("Courier");
  doc.AddText("Courier Text.");
  doc.Save(Server.MapPath("docfont.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 96
  ' big text
  doc.Font = doc.AddFont("Helvetica")
  doc.AddText("Helvetica Text.")
  doc.Font = doc.AddFont("Courier")
  doc.AddText("Courier Text.")
  doc.Save(Server.MapPath("docfont.pdf"))
End Using

docfont.pdf


Doc FontSize Property. The current text size. ABCpdf .NET PDF Library.

FontSize Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 10 | No | The current text size.

Notes

The line height for drawing text.

This property determines the size of text that is added to the document using methods like AddText.

The font size is measured in the current Units.

You should prefer use of the XTextStyle.Size property, to which the FontSize property is simply an integer accessor. Assigning a value to the FontSize is exactly equivalent to assigning it to the XTextStyle.Size. Getting a value from this property is exactly equivalent to the following.

[C#]

int n = (int)(doc.TextStyle.Size + 0.5);

[Visual Basic]
Dim n As Integer = CInt((doc.TextStyle.Size + 0.5))

Example

The following example adds two blocks of styled text to a document. The first block is in 96 point type and the second is in 192 point type.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 96;
  doc.AddText("Small ");
  doc.FontSize = 192;
  doc.AddText("Big");
  doc.Save(Server.MapPath("docfontsize.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 96
  doc.AddText("Small ")
  doc.FontSize = 192
  doc.AddText("Big")
  doc.Save(Server.MapPath("docfontsize.pdf"))
End Using

docfontsize.pdf


Doc Form Property. The document form and fields. ABCpdf .NET PDF Library.

Form Property

Type | Default Value | Read Only | Description
[C#] XForm [Visual Basic] XForm | n/a | No | The document form and fields.

Notes

This property allows you to examine and manipulate the document Form and Fields.

Fields are generally obtained using a fully qualified name. A full name describes a path down through the field hierarchy - using periods as delimiters - to a specific field object.

Once a field has been obtained you can query or change its values. If you wish to convert the fields into a permanent part of the document you can use the Field.Stamp method to permanently emboss them.

See the XForm object for full details.


Doc HtmlOptions Property. The HTML and URL rendering options. ABCpdf .NET PDF Library.

HtmlOptions Property

Type | Default Value | Read Only | Description
[C#] XHtmlOptions [Visual Basic] XHtmlOptions | n/a | No | The HTML and URL rendering options.

Notes

This property allows you control over the way that HTML is rendered.

The properties of this object may be used to control the way that the AddImageUrl and AddImageHtml methods work.

The methods of this object operate on objects added using the theAddImageUrl and AddImageHtml methods. Some operations change the content. Others provide information about the content which has been added.

See the XHtmlOptions object for further details.


Doc Layer Property. The insertion layer for new content. ABCpdf .NET PDF Library.

Layer Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 1 | No | The insertion layer for new content.

Notes

The insertion layer for new content.

The default layer is one which indicates insertion at the top. So if you want to insert at the bottom and your page has ten layers you need to insert at position eleven.

Note that insertion may not behave predictably with documents read from file. It is good practice for each layer to operate independently but not all documents are set up this way.

Optional Content Groups: The type of layer that this property describes is an ABCpdf construct that you cannot detect using Acrobat. Acrobat layers are something completely different and are more precisely known as Optional Content Groups (OCGs).

See the Doc.Layer property for details of how to construct this type of layer.

Optional Content Groups. The type of layer that this property describes is an ABCpdf construct that you cannot detect using Acrobat. Acrobat layers are something completely different and are more precisely known as Optional Content Groups (OCG items).

The OCGLayers example project which comes with ABCpdf shows how to create content with visibility determined using a variety of flags. In addition to creation, it also shows manipulation such as hiding and showing OCGs, annotation of the items on a page dependent on their OCGs, and the redaction and and deletion of invisible items.


Doc LayerCount Property. The number of layers on the current page. ABCpdf .NET PDF Library.

LayerCount Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The number of layers on the current page.

Notes

This property holds the number of layers on the current page.

You can add layers to pages using calls to methods such as AddText and AddImage. See the Layer property for more details.


Doc MediaBox Property. The current document page size. ABCpdf .NET PDF Library.

MediaBox Property

Type | Default | Read Only | Description
[C#] XRect [Visual Basic] XRect | Letter Size [0, 0, 612, 792]. | No | The current document page size.

Notes

This property reflects the size of the current page. It also determines the size of new pages created by the AddPage method. Note that changing the MediaBox does not change the current Rect. So typically you'll want to write code like this:

[C#]

theDoc.MediaBox.String = "0 0 200 300";
theDoc.Rect.String = theDoc.MediaBox.String;

[Visual Basic]
theDoc.MediaBox.String = "0 0 200 300"
theDoc.Rect.String = theDoc.MediaBox.String

Changing this property will change the size of pages created by subsequent calls to AddPage. However it will not change the size of the pages that have already been created. To change the size of the pages that have already been created you need to use the SetInfo method. For example:

[C#]

theDoc.SetInfo(theDoc.Page, "/MediaBox:Rect", "0 0 200 300");

[Visual Basic]
theDoc.SetInfo(theDoc.Page, "/MediaBox:Rect", "0 0 200 300")

Similar methods can be used to control other page size measures such as the CropBox, BleedBox, TrimBox and ArtBox. For example:

[C#]

theDoc.SetInfo(theDoc.Page, "/CropBox:Rect", "20 20 180 280");

[Visual Basic]
theDoc.SetInfo(theDoc.Page, "/CropBox:Rect", "20 20 180 280")

The default page size is often the one you'll want to use. However it may be that your PDFs are required to conform to a different page size. If this is the case you can simply specify the name of the size rather than the exact dimension. See the Rect.String property for details.

Example

The following code creates a PDF document containing three different pages each with a different size.

[C#]

using (Doc doc = new Doc()) {
  doc.Page = doc.AddPage();
  doc.MediaBox.String = "A4";
  doc.Page = doc.AddPage();
  doc.MediaBox.String = "B5";
  doc.Page = doc.AddPage();
  doc.Save(Server.MapPath("docmediabox.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Page = doc.AddPage()
  doc.MediaBox.String = "A4"
  doc.Page = doc.AddPage()
  doc.MediaBox.String = "B5"
  doc.Page = doc.AddPage()
  doc.Save(Server.MapPath("docmediabox.pdf"))
End Using


Doc ObjectSoup Property. The collection of obects that make up the PDF. ABCpdf .NET PDF Library.

ObjectSoup Property

Type | Default | Read Only | Description
[C#] ObjectSoup [Visual Basic] ObjectSoup | n/a | Yes | The collection of obects that make up the PDF.

Notes

This property holds a reference to the ObjectSoup for the document. The soup is a non-traditional collection of indirect PDF objects which comprise the content of the PDF.

Do not alter the soup or the contents of the soup unless you are sure of the changes you are making. If inappropriate changes are made the result will be a corrupt PDF output.


Doc Options Property. The state options for low level drawing control. ABCpdf .NET PDF Library.

Options Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | "" | No | The state options for low level drawing control.

Notes

The options property is an advanced feature which allows low level control over PDF drawing. It is important to use it correctly as incorrect use can corrupt your documents.

The value of the options property is inserted into the PDF content stream after state has been established but before any drawing has taken place. You can use this property to insert your own state commands. This is most commonly used for drawing dashed lines.

FillRect, FrameRect, AddLine and AddArc all insert the options parameter.

You can find details of graphics state parameters and how to use them in the Adobe PDF Specification.

Example

The following code adds an arc to a document. It uses the options parameter to make the line dashed rather than solid.

[C#]

using (Doc doc = new Doc()) {
  doc.Width = 24;
  doc.Color.String = "0 120 0";
  doc.Options = "[6 10] 6 d";
  doc.AddArc(0, 270, 300, 400, 200, 300);
  doc.Save(Server.MapPath("docoptions.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Width = 24
  doc.Color.String = "0 120 0"
  doc.Options = "[6 10] 6 d"
  doc.AddArc(0, 270, 300, 400, 200, 300)
  doc.Save(Server.MapPath("docoptions.pdf"))
End Using

docoptions.pdf


Doc Page Property. The current Page ID. ABCpdf .NET PDF Library.

Page Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | The current Page ID.

Notes

This property holds the current Page ID. The current page is the one that receives new objects as they are added to the document.

For example the methods AddText, AddLine, AddImage, FrameRect and FillRect all operate on the current page.

When you change the Page property the Pos property is reset to the top left of the current Rect.

Note that the PageNumber property is not the same as the Page property. The Page holds an Object ID typically returned from a call to AddPage. The PageNumber indicates the page using an index ranging between one and the PageCount.

Either the Page or the PageNumber property can be used to set the current page.

If no page is specified the current page is taken to be the first page in the document.

Example

The following example creates a document with two pages and adds text to each of the pages in turn.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 96; // big text
  doc.Page = doc.AddPage();
  doc.AddText("Page One");
  doc.Page = doc.AddPage();
  doc.AddText("Page Two");
  doc.Save(Server.MapPath("docpage.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 96
  ' big text
  doc.Page = doc.AddPage()
  doc.AddText("Page One")
  doc.Page = doc.AddPage()
  doc.AddText("Page Two")
  doc.Save(Server.MapPath("docpage.pdf"))
End Using

docpage.pdf


Doc PageCount Property. The number of pages in the document. ABCpdf .NET PDF Library.

PageCount Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | Yes | The number of pages in the document.

Notes

This property holds the number of pages in the document.

You can add pages to the document using the AddPage method.


Doc PageNumber Property. The page number of the current page. ABCpdf .NET PDF Library.

PageNumber Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | The page number of the current page.

Notes

This property holds the current Page Number. The current page is the one that receives new objects as they are added to the document.

For example the methods AddText, AddLine, AddImage, FrameRect and FillRect all operate on the current page.

When you change this property the Pos property is reset to the top left of the current Rect.

Note that the PageNumber property is not the same as the Page property. The Page holds an Object ID typically returned from a call to AddPage. The PageNumber indicates the page using an index ranging between one and the PageCount. If you set an invalid index an exception will be raised.

Either the Page or the PageNumber property can be used to set the current page.

If no page is specified the current page is taken to be the first page in the document.

Optimization Tips.

Well structured PDF documents are optimized for fast access to pages. So when you go to a particular page of a document by specifying a PageNumber this operation is quick.

However it is less obvious that getting the PageNumber property can be more expensive than one might think. ABCpdf cannot assume that the PDF is the same as it was last time you accessed the PageNumber so it cannot necessarily just give you the number it had last time. It has to assume the worst case which is that you have reorganized the pages in some way and at the very least it will have to validate the current PageNumber by a test retrieval of that page. At the very worst it will have to scan through the entire page tree looking to see where the current page has ended up.

In general getting the PageNumber is not too expensive. But if you write code which results in it being accessed thousands of times then it can become noticeable. So if you find yourself doing this then consider using the Page.GetPageArrayAll function instead. It's an easy optimization to make.


Doc Pos Property. The current drawing position. ABCpdf .NET PDF Library.

Pos Property

Type | Default | Read Only | Description
[C#] XPoint [Visual Basic] XPoint | The top left of the current rectangle. | No | The current drawing position.

Notes

This property determines the current drawing position.

This is used by the AddText and AddTextStyled methods. Text is placed within the Rect at the starting point specified by the Pos.

When you change the Page or Rect properties the Pos is automatically reset to the top left of the current Rect.

In general use, the Pos specifies the top left corner of characters and text is positioned in rows from left to right and top to bottom. After adding text using the AddText method, the Pos is updated to point to the next text insertion position - at the top of and just after the last drawn character.

However East Asian scripts may also be positioned top to bottom, right to left. For this reason fonts may be specified as vertical - indicated using the FontObject.WritingMode property. In this situation the value of the Pos is not updated after calling AddText.

This is the case because ABCpdf applies vertical text flow via an internal transformation applied to Pos. All horizontal positioning settings are applied to vertical coordinates and vice versa. The transformation rotates the coordinate system by 90 degrees clock-wise and maps the top-left corner of the Rect to the top-right corner of the Rect. Hence the default initial value of Pos specifies that vertical text should start at the top-right corner of the Rect. This is similar to Windows processing of text using an East Asian font whose name is prefixed with @ and applying the transformation only at the last step.

For this reason note that the effects of XTextStyle.CharSpacing and XTextStyle.WordSpacing depend on the writing mode.

Please note that text in vertical fonts and text in horizontal fonts do not mix well, so stick to one type for each text area you create.

Example

The following code creates a PDF document with text positioned at a number of different points within it.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 48;
  for (int i = 1; i <= 8; i++) {
    doc.Pos.X = i * 40;
    doc.Pos.Y = i * 80;
    doc.AddText($"Pos = {doc.Pos}");
  }
  doc.Save(Server.MapPath("docpos.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 48
  Dim i As Integer = 1
  While i <= 8
    doc.Pos.X = i * 40
    doc.Pos.Y = i * 80
    doc.AddText($"Pos = {doc.Pos}")
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While
  doc.Save(Server.MapPath("docpos.pdf"))
End Using

docpos.pdf


Doc Rect Property. The current rectangle used for drawing operations. ABCpdf .NET PDF Library.

Rect Property

Type | Default | Read Only | Description
[C#] XRect [Visual Basic] XRect | The dimensions of the current page. | No | The current rectangle used for drawing operations.

Notes

This property determines the current rectangle. This is used by a number of operations including AddText, AddImage, FrameRect and FillRect.

The XRect object represents a rectangular area in two-dimensional space. The properties of the XRect object represent the bottom left and top right corners of the area.

AddText adds text within the current rectangle wrapping the text at the edges.

The AddImage methods add an image scaled to fill the current rectangle.

FrameRect frames the current rectangle and FillRect fills the current rectangle.

When you change this property the Pos property is reset to point to the top left of the Rect.

Example

The following code creates a PDF document containing a number of concentric frames.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.String = "50 50 550 550";
  for (int i = 1; i <= 20; i++) {
    doc.FrameRect();
    doc.Rect.Inset(20, 20);
  }
  doc.Save(Server.MapPath("docrect.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.String = "50 50 550 550"
  Dim i As Integer = 1
  While i <= 20
    doc.FrameRect()
    doc.Rect.Inset(20, 20)
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While
  doc.Save(Server.MapPath("docrect.pdf"))
End Using

docrect.pdf


Doc Rendering Property. The rendering options and control. ABCpdf .NET PDF Library.

Rendering Property

Type | Default Value | Read Only | Description
[C#] XRendering [Visual Basic] XRendering | n/a | No | The rendering options and control.

Notes

This property allows you control over the way that PDFs are rendered.

Note that Rendering is only available under the ABCpdf Professional License.

See the XRendering object for further details.


Doc Root Property. The root catalog object. ABCpdf .NET PDF Library.

Root Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | Yes | The root catalog object.

Notes

This property holds the ID of the catalog object.

The catalog is the root of the whole PDF document. It contains information on the root Pages object and the Outline object.

For dynamically created documents the root of the document is always one. However documents read from existing PDF files may use different root IDs.

Example

The following code snippet illustrates how one might find some information about a PDF document.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/mydoc.pdf"));
  string theVers, theNames, thePages, theOutlines;
  theVers = doc.GetInfo(doc.Root, "Version");
  theNames = doc.GetInfo(doc.Root, "/Names");
  thePages = doc.GetInfo(doc.Root, "pages");
  theOutlines = doc.GetInfo(doc.Root, "outlines");
  Response.Write($"Version {theVers}&lt;br&gt;");
  Response.Write($"Names {theNames}&lt;br&gt;");
  Response.Write($"Pages ID {thePages}&lt;br&gt;");
  Response.Write($"Outlines ID {theOutlines}&lt;br&gt;");
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/mydoc.pdf"))
  Dim theVers As String, theNames As String, thePages As String, theOutlines As String
  theVers = doc.GetInfo(doc.Root, "Version")
  theNames = doc.GetInfo(doc.Root, "/Names")
  thePages = doc.GetInfo(doc.Root, "pages")
  theOutlines = doc.GetInfo(doc.Root, "outlines")
  Response.Write($"Version {theVers}&lt;br&gt;")
  Response.Write($"Names {theNames}&lt;br&gt;")
  Response.Write($"Pages ID {thePages}&lt;br&gt;")
  Response.Write($"Outlines ID {theOutlines}&lt;br&gt;")
End Using

This might result in the following output.

Version /1.4
Names 12 0 R
Pages ID 618
Outlines ID 2169


Doc SaveOptions Property. The save options and control. ABCpdf .NET PDF Library.

SaveOptions Property

Type | Default Value | Read Only | Description
[C#] XSaveOptions [Visual Basic] XSaveOptions | n/a | No | The save options and control.

Notes

This property allows you control over the way that PDF documents are saved or streamed.

The properties of this object may be used to control the way that the Save and GetData methods work.

See the XSaveOptions object for further details.


Doc String Property. A string representation of the graphic style of the document. ABCpdf .NET PDF Library.

String Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | Variable | No | A string representation of the graphic style of the document

Notes

A string representation of the graphic style of the document.

This covers the Transform, ColorSpace, Color, Font, TextStyle, Width and Options properties. However it does not cover the Page, Layer, Rect or Pos properties.

Example

In this example we show how to use the String property to implement a graphics state stack with Push and Pop operators.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 64;
  doc.Rect.Inset(20, 20);
  doc.Font = doc.AddFont("Helvetica");
  Stack<string> state = new Stack<string>();
  state.Push(doc.String);
  doc.AddText("Black Helvetica\r\n\r\n");
  doc.Color.SetRgb(255, 0, 0);
  doc.Font = doc.AddFont("Helvetica-Oblique");
  doc.AddText("Red Helvetica-Oblique\r\n\r\n");
  doc.String = state.Pop();
  doc.AddText("Black Helvetica again\r\n\r\n");
  doc.Save(Server.MapPath("savestate.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 64
  doc.Rect.Inset(20, 20)
  doc.Font = doc.AddFont("Helvetica")
  Dim state As New Stack(Of String)()
  state.Push(doc.String)
  doc.AddText("Black Helvetica" & vbCr & vbLf & vbCr & vbLf)
  doc.Color.SetRgb(255, 0, 0)
  doc.Font = doc.AddFont("Helvetica-Oblique")
  doc.AddText("Red Helvetica-Oblique" & vbCr & vbLf & vbCr & vbLf)
  doc.String = state.Pop()
  doc.AddText("Black Helvetica again" & vbCr & vbLf & vbCr & vbLf)
  doc.Save(Server.MapPath("savestate.pdf"))
End Using

savestate.pdf


Doc TextStyle Property. The current style for drawing text. ABCpdf .NET PDF Library.

TextStyle Property

Type | Default | Read Only | Description
[C#] XTextStyle [Visual Basic] XTextStyle | Ten point text. | No | The current style for drawing text.

Notes

This property determines the current style settings used for adding text.

Example

The following code creates a PDF document and adds some text using a number of the text style properties to control formatting.

[C#]

using (Doc doc = new Doc()) {
  string theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. Hi omnes lingua, institutis, legibus inter se differunt. Gallos ab Aquitanis Garumna flumen, a Belgis Matrona et Sequana dividit.";
  theText = theText + "\r\n" + theText + "\r\n" + theText + "\r\n";
  doc.Rect.Inset(20, 20);
  doc.TextStyle.Size = 32;
  doc.TextStyle.Justification = 1;
  doc.TextStyle.Indent = 64;
  doc.TextStyle.ParaSpacing = 32;
  doc.AddText(theText);
  doc.Save(Server.MapPath("doctextstyle.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theText As String = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. Hi omnes lingua, institutis, legibus inter se differunt. Gallos ab Aquitanis Garumna flumen, a Belgis Matrona et Sequana dividit."
  theText = theText + vbCr & vbLf + theText + vbCr & vbLf + theText + vbCr & vbLf
  doc.Rect.Inset(20, 20)
  doc.TextStyle.Size = 32
  doc.TextStyle.Justification = 1
  doc.TextStyle.Indent = 64
  doc.TextStyle.ParaSpacing = 32
  doc.AddText(theText)
  doc.Save(Server.MapPath("doctextstyle.pdf"))
End Using

doctextstyle.pdf


Doc TopDown Property. The current position of the origin. ABCpdf .NET PDF Library.

TopDown Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | The current position of the origin.

Notes

PDF coordinates are measured upwards from the bottom of the document. For some types of layout it can be useful to measure coordinates downwards from the top of the document.

By setting this property to true coordinates are assumed to start at the top rather than the bottom of the document.

More precisely the origin is assumed to be at the top-left of the current MediaBox.

There are a variety of methods you can use to change coordinate systems.

Note that transforms operate on the underlying PDF coordinate space rather than any abstraction specified by the Units and TopDown properties. If you are using transforms you will find it easiest to work in the native PDF coordinate space.

Example

The following code creates a PDF document and adds a grid measured in inches.

[C#]

using (Doc doc = new Doc()) {
  doc.Units = UnitType.Inches;
  doc.TopDown = true;
  doc.Width = 1.0 / 8.0;
  doc.FontSize = 1;
  doc.Rect.Pin = XRect.Corner.TopLeft;
  for (int i = 0; i <= 12; i += 2) {
    doc.AddLine(0, i, 12, i);
    doc.Rect.Position(0, i);
    doc.AddText(i.ToString());
    doc.AddLine(i, 0, i, 12);
    doc.Rect.Position(i, 0);
    doc.AddText(i.ToString());
  }
  doc.Save(Server.MapPath("doctopdown.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Units = UnitType.Inches
  doc.TopDown = True
  doc.Width = 1.0 / 8.0
  doc.FontSize = 1
  doc.Rect.Pin = XRect.Corner.TopLeft
  Dim i As Integer = 0
  While i <= 12
    doc.AddLine(0, i, 12, i)
    doc.Rect.Position(0, i)
    doc.AddText(i.ToString())
    doc.AddLine(i, 0, i, 12)
    doc.Rect.Position(i, 0)
    doc.AddText(i.ToString())
    i += 2
  End While
  doc.Save(Server.MapPath("doctopdown.pdf"))
End Using

doctopdown.pdf


Doc Transform Property. The current transformation for drawing. ABCpdf .NET PDF Library.

Transform Property

Type | Default | Read Only | Description
[C#] XTransform [Visual Basic] XTransform | No transformation. | No | The current transformation for drawing.

Notes

This property determines the current world space transform. It affects any drawing using the AddText, AddImage, AddLine, FrameRect and FillRect methods.

Transforms are general operations which encompass rotation, translation, magnification and skewing or a combination of these. Note that the order in which transforms are applied is significant: a rotation followed by a translation is not the same as a translation followed by a rotation.

A world space transform is not same an object transform. You are changing the coordinate system - not the objects you're inserting.

Note that transforms operate on the underlying PDF coordinate space rather than any abstraction specified by the Units and TopDown properties. If you are using transforms you will find it easiest to work in the native PDF coordinate space.

Example

The following code creates a PDF document and adds some text and a rectangle rotated at 45 degrees anti-clockwise around the middle of the document.

[C#]

using (Doc doc = new Doc()) {
  string theText;
  theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. Hi omnes lingua, institutis, legibus inter se differunt. Gallos ab Aquitanis Garumna flumen, a Belgis Matrona et Sequana dividit.";
  theText = theText + "\r\n" + theText + "\r\n" + theText + "\r\n";
  doc.Rect.Magnify(0.5, 0.5);
  doc.Rect.Position(151, 198);
  doc.FrameRect();
  doc.Transform.Rotate(45, 302, 396);
  doc.FrameRect();
  doc.FontSize = 24;
  doc.AddText(theText);
  doc.Save(Server.MapPath("doctransform.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theText As String
  theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. Hi omnes lingua, institutis, legibus inter se differunt. Gallos ab Aquitanis Garumna flumen, a Belgis Matrona et Sequana dividit."
  theText = theText + vbCr & vbLf + theText + vbCr & vbLf + theText + vbCr & vbLf
  doc.Rect.Magnify(0.5, 0.5)
  doc.Rect.Position(151, 198)
  doc.FrameRect()
  doc.Transform.Rotate(45, 302, 396)
  doc.FrameRect()
  doc.FontSize = 24
  doc.AddText(theText)
  doc.Save(Server.MapPath("doctransform.pdf"))
End Using

doctransform.pdf


Doc Units Property. The current measurement units. ABCpdf .NET PDF Library.

Units Property

Type | Default | Read Only | Description
[C#] UnitType [Visual Basic] UnitType | UnitType.Points | No | The current measurement units.

Notes

This property holds the current measurement units.

The UnitType enumeration may take the following values:

  • Points (PostScript Points) - 1/72 of an Inch
  • Twips (Twentieths of a Point) - 1/20 of a PostScript Point
  • Didots (Didot Points) - 1/72 of a French Royal Inch
  • ATAPoints (ATA Points) - 1/72.272 of an Inch
  • TeXPoints (TeX Points) - 1/72.27 of an Inch
  • INPoints (l'Imprimerie Nationale Points) - 0.4 mm
  • Picas - 12 PostScript Points
  • Ciceros - 12 Didot Points
  • ATACiceros - 12 ATA Points
  • TeXCiceros - 12 TeX Points
  • Microns - millionths of a metre
  • Mm - thousandths of a metre
  • Cm - hundredths of a metre
  • M - metres
  • Inches
  • Feet

There are a variety of methods you can use to change coordinate systems.

Why are my Units a string?

In older versions of ABCpdf the Units property was a string. So you might find code of this form.

[C#]

theDoc.Units = "mm";

[Visual Basic]
theDoc.Units = "mm"

In Version 8 the Units property has been changed to a true enumeration. This is a safer way of coding as it allows the compiler to ensure that the values you are using are valid. Your new code should look like this.

[C#]

theDoc.Units = UnitType.Mm;

[Visual Basic]
theDoc.Units = UnitType.Mm

The names of the items in the UnitType enumeration are the same as the values of the strings used in previous versions. So changing your code should be a simple search and replace operation.

Alternatively if you need to convert between enumerations and strings automatically you can do so. To convert from a string to an enumeration use the following code.

[C#]

UnitType unitType = (UnitType)Enum.Parse(typeof(UnitType), unitString, true);

[Visual Basic]
Dim unitType As UnitType = CType([Enum].Parse(GetType(UnitType), unitString, True), UnitType)

To convert from an enumeration to a string use the following code.

[C#]

string unitString = unitType.ToString("G");

[Visual Basic]
Dim unitString As String = unitType.ToString("G")

Example

See the TopDown property.


Doc Width Property. The current line width. ABCpdf .NET PDF Library.

Width Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 1.0 | No | The current line width.

Notes

The width determines the width of lines drawn using methods like AddLine and FrameRect. The width is measured in the current Units.

The AddLine method creates lines centered on the points you provide. This means if you draw a horizontal line with a width of ten the line will extend five points above your start position and five points below it.

The FrameRect method draws lines outside the rectangle you provide. So if you frame a rectangle using a width of ten, the drawn rectangle will extend ten points above, below, to the left and to the right of your specified rectangle. No drawing will fall within the rectangle.

Example

The following code adds two lines to a document. The first line has a width of ten points and the second has a width of twenty points.

[C#]

using (Doc doc = new Doc()) {
  doc.Width = 10;
  doc.AddLine(10, 10, 300, 300);
  doc.Width = 20;
  doc.AddLine(10, 300, 300, 10);
  doc.Save(Server.MapPath("docwidth.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Width = 10
  doc.AddLine(10, 10, 300, 300)
  doc.Width = 20
  doc.AddLine(10, 300, 300, 10)
  doc.Save(Server.MapPath("docwidth.pdf"))
End Using

docwidth.pdf


XColor Class

This object represents a color. Colors may be expressed in RGB, CMYK, Grayscale or generic unspecified color components.

When first created, the color defaults to RGB black - "0 0 0".

System.Object
   WebSupergoo.ABCpdf12.XColor

Implements: IDisposable, IEquatable<XColor>, IComparable<XColor>

Method | Description
S» FromGray | Create an XColor from a grayscale value.
S» FromRgb | Create an XColor from a set of RGB component values.
S» FromCmyk | Create an XColor given a set of CMYK component values.
S» FromComponents | Create an XColor from a set of PDF components in the generic ColorSpace color space.
S» Throws Exceptions FromArrayAtom | Create an XColor from an ArrayAtom of NumAtoms containing PDF color values.
S» Throws Exceptions FromOperator | Create an XColor given a PDF color operator and a set of Atoms containing the arguments for that operator.
SetColor | Sets the color.
SetGray | Set the color to a grayscale value.
SetRgb | Set the color to an RGB value.
Equals | Test whether the two colors are effectively the same.
GetHashCode | A hash code for the XColor.
SetCmyk | Set the color to an CMYK value.
SetComponents | Set the color to a set of ColorSpace PDF components.
SetRandom | Set the color to a random opaque value in the current color space.
ToArrayAtom | An ArrayAtom representation of the components of the color.
ToString | Returns a string representation of the object.

Property | Description
Alpha | The alpha opacity.
Black | The black component.
Blue | The blue component.
Color | The System.Drawing.Color.
ColorSpace | The native color space for the color.
Components | The components of the color in native PDF format.
Cyan | The cyan component.
Gray | The gray component.
Green | The green component.
Magenta | The magenta component.
Name | Any name that may be associated with this color.
Red | The red component.
String | The color as a string.
Yellow | The yellow component.


XColor FromGray Function. Create an XColor from a grayscale value. ABCpdf .NET PDF Library.

FromGray Function

Create an XColor from a grayscale value.

Syntax

[C#]
static XColor FromGray(int gray)
static XColor FromGray(double gray)

[Visual Basic]
Shared Function FromGray(gray As Integer) As XColor
Shared Function FromGray(gray As Double) As XColor

Params
Name | Description
gray | The amount of black (0 to 255)
return | The resulting XColor.

Notes

Create an XColor from a grayscale value ranging between zero and 255.

The value represents the amount of black ink so zero indicates white and 255 indicates black.


XColor FromRgb Function. Create an XColor from a set of RGB component values. ABCpdf .NET PDF Library.

FromRgb Function

Create an XColor from a set of RGB component values.

Syntax

[C#]
static XColor FromRgb(int red, int green, int blue)
static XColor FromRgb(double red, double green, double blue)

[Visual Basic]
Shared Function FromRgb(red As Integer, green As Integer, blue As Integer) As XColor
Shared Function FromRgb(red As Double, green As Double, blue As Double) As XColor

Params
Name | Description
red | The amount of red (0 to 255)
green | The amount of green (0 to 255)
blue | The amount of blue (0 to 255)
return | The resulting XColor.

Notes

Create an XColor from a set of RGB component values ranging between zero and 255..


XColor FromCmyk Function. Create an XColor given a set of CMYK component values. ABCpdf .NET PDF Library.

FromCmyk Function

Create an XColor given a set of CMYK component values.

Syntax

[C#]
static XColor FromCmyk(int cyan, int magenta, int yellow, int black)
static XColor FromCmyk(double cyan, double magenta, double yellow, double black)

[Visual Basic]
Shared Function FromCmyk(cyan As Integer, magenta As Integer, yellow As Integer, black As Integer) As XColor
Shared Function FromCmyk(cyan As Double, magenta As Double, yellow As Double, black As Double) As XColor

Params
Name | Description
cyan | The amount of cyan (0 to 100)
magenta | The amount of magenta (0 to 100)
yellow | The amount of yellow (0 to 100)
black | The amount of black (0 to 100)
return | The resulting XColor.

Notes

Create an XColor given a set of CMYK component values ranging between zero and 100.


XColor FromComponents Function. Create an XColor from a set of PDF components in the generic ColorSpace color space. ABCpdf .NET PDF Library.

FromComponents Function

Create an XColor from a set of PDF components in the generic ColorSpace color space.

Syntax

[C#]
static XColor FromComponents(double value1)
static XColor FromComponents(double value1, double value2)
static XColor FromComponents(double value1, double value2, double value3)
static XColor FromComponents(double value1, double value2, double value3, double value4)

[Visual Basic]
Shared Function FromComponents(value1 As Double) As XColor
Shared Function FromComponents(value1 As Double, value2 As Double) As XColor
Shared Function FromComponents(value1 As Double, value2 As Double, value3 As Double) As XColor
Shared Function FromComponents(value1 As Double, value2 As Double, value3 As Double, value4 As Double) As XColor

Params
Name | Description
value1 | The intensity of the first component (typically 0 to 1)
value2 | The intensity of the second component (typically 0 to 1)
value3 | The intensity of the third component (typically 0 to 1)
value4 | The intensity of the fourth component (typically 0 to 1)
return | The resulting XColor.

Notes

Create an XColor from a set of PDF components in the generic ColorSpace color space.

PDF color components typically range between zero - no intensity - and one - 100% intensity. However this is not always the case. For color spaces such as Lab the components may take a wider range of values.


XColor FromArrayAtom Function. Create an XColor from an ArrayAtom of NumAtoms containing PDF color values. ABCpdf .NET PDF Library.

FromArrayAtom Function

Create an XColor from an ArrayAtom of NumAtoms containing PDF color values.

Syntax

[C#]
static XColor FromArrayAtom(ArrayAtom array)

[Visual Basic]
Shared Function FromArrayAtom(array As ArrayAtom) As XColor

Throws Exceptions may throw Exception()

Params
Name | Description
array | The ArrayAtom containing the components of the color.
return | The resulting XColor.

Notes

Create an XColor from an ArrayAtom of NumAtoms containing PDF color values.

There may be only one, three or four items in the ArrayAtom. The number of items is used to select between Grayscale, RGB or CMYK color spaces respectively.

The values expected are PDF color values so all the atoms in the ArrayAtom must be NumAtoms with a value between zero and one, each representing a component of the color.

If these conditions are not met then an exception will be raised.


XColor FromOperator Function. Create an XColor given a PDF color operator and a set of Atoms containing the arguments for that operator. ABCpdf .NET PDF Library.

FromOperator Function

Create an XColor given a PDF color operator and a set of Atoms containing the arguments for that operator.

Syntax

[C#]
static XColor FromOperator(Atom[] arguments, string op)

[Visual Basic]
Shared Function FromOperator(arguments() As Atom, op As String) As XColor

Throws Exceptions may throw Exception()

Params
Name | Description
arguments | The Atoms containing the parameters for the color operator.
op | The PDF color operator.
return | The resulting XColor.

Notes

Create an XColor given a PDF color operator and a set of Atoms containing the arguments for that operator.

There are a variety of color operators available detailed in the PDF Specification. However the most common ones are"rg" and "RG" which are used to set the color to DeviceRGB. These operators take three NumAtom arguments for the red, green and blue components, each of which is a value ranging between zero and one. The upper case operator is used to set the stroking color and the lower case one is used to set the non-stroking color.

Other similar operators include "g" and "G" for grayscale; "k" and "K" for CMYK; "sc" and "SC" for generic color components; "scn" and "SCN" for generic components - possibly also including a pattern name.

If these conditions are not met then an exception will be raised.


XColor SetColor Function. Sets the color. ABCpdf .NET PDF Library.

SetColor Function

Sets the color.

Syntax

[C#]
void SetColor(XColor color)

[Visual Basic]
Sub SetColor(color As XColor)

Params
Name | Description
color | The source color.

Notes

This method copies the value from the parameter.


XColor SetGray Function. Set the color to a grayscale value. ABCpdf .NET PDF Library.

SetGray Function

Set the color to a grayscale value.

Syntax

[C#]
void SetGray(int gray)
void SetGray(int gray, int alpha)
void SetGray(double gray)
void SetGray(double gray, double alpha)

[Visual Basic]
Sub SetGray(gray As Integer)
Sub SetGray(gray As Integer, alpha as Integer)
Sub SetGray(gray As Double)
Sub SetGray(gray As Double, alpha as Double)

Params
Name | Description
gray | The amount of black (0 to 255).
alpha | The level of opacity from transparent through to fully opaque (0 to 255).

Notes

Set the color to grayscale and provide a value for it.

Optionally set the alpha value to specify a transparency level. If this parameter is omitted the color is set to fully opaque - no transparency.


XColor SetRgb Function. Set the color to an RGB value. ABCpdf .NET PDF Library.

SetRgb Function

Set the color to an RGB value.

Syntax

[C#]
void SetRgb(int red, int green, int blue)
void SetRgb(int red, int green, int blue, int alpha)
void SetRgb(double red, double green, double blue)
void SetRgb(double red, double green, double blue, double alpha)

[Visual Basic]
Sub SetRgb(red As Integer, green As Integer, blue As Integer)
Sub SetRgb(red As Integer, green As Integer, blue As Integer, alpha as Integer)
Sub SetRgb(red As Double, green As Double, blue As Double)
Sub SetRgb(red As Double, green As Double, blue As Double, alpha as Double)

Params
Name | Description
red | The amount of red (0 to 255).
green | The amount of green (0 to 255).
blue | The amount of blue (0 to 255).
alpha | The level of opacity from transparent through to fully opaque (0 to 255).

Notes

Set the color to RGB and provide a value for it.

Optionally set the alpha value to specify a transparency level. If this parameter is omitted the color is set to fully opaque - no transparency.


XColor Equals Function. Test whether the two colors are effectively the same. ABCpdf .NET PDF Library.

Equals Function

Test whether the two colors are effectively the same

Syntax

[C#]
bool Equals(XColor color)
override bool Equals(object color)

[Visual Basic]
Function Equals(color As XColor) As Boolean
Overrides Function Equals(other As Object) As Boolean

Params
Name | Description
color | The color to test against.
return | Whether the two colors are the same.

Notes

Test whether the two colors are effectively the same.

Colors are considered equal if they have the same ColorSpace, the same number and values of color Components and the same Name. This represents value equality for the colors in question.

The underlying components of a color are represented as floating point numbers. Floating point numbers are subject to rounding errors, so there has to be a degree of latitude when comparing color values. The degree of latitude is, by default, determined by the color space. CMYK values use a percentage based scale so the value used to determine the resolution of the comparison is 1%. Other color spaces use an eight bit scale so the resolution of comparison is 1/256.


XColor GetHashCode Function. A hash code for the XColor. ABCpdf .NET PDF Library.

GetHashCode Function

A hash code for the XColor

Syntax

[C#]
override int GetHashCode()

[Visual Basic]
Overrides Function GetHashCode() As Integer

Params
Name | Description
return | The returned hash code.

Notes

Derives a hash code suitable for use in hashing algorithms and data structures like hash tables.


XColor SetCmyk Function. Set the color to an CMYK value. ABCpdf .NET PDF Library.

SetCmyk Function

Set the color to an CMYK value.

Syntax

[C#]
void SetCmyk(int cyan, int magenta, int yellow, int black)
void SetCmyk(int cyan, int magenta, int yellow, int black, int alpha)
void SetCmyk(double cyan, double magenta, double yellow, double black)
void SetCmyk(double cyan, double magenta, double yellow, double black, double alpha)

[Visual Basic]
Sub SetCmyk(cyan As Integer, magenta As Integer, yellow As Integer, black As Integer)
Sub SetCmyk(cyan As Integer, magenta As Integer, yellow As Integer, black As Integer, alpha as Integer)
Sub SetCmyk(cyan As Double, magenta As Double, yellow As Double, black As Double)
Sub SetCmyk(cyan As Double, magenta As Double, yellow As Double, black As Double, alpha as Double)

Params
Name | Description
cyan | The amount of cyan (0 to 100).
magenta | The amount of magenta (0 to 100).
yellow | The amount of yellow (0 to 100).
black | The amount of black (0 to 100).
alpha | The level of opacity from transparent through to fully opaque (0 to 255).

Notes

Set the color to CMYK and provide a value for it.

Optionally set the alpha value to specify a transparency level. If this parameter is omitted the color is set to fully opaque - no transparency.


XColor SetComponents Function. Set the color to a set of ColorSpace PDF components. ABCpdf .NET PDF Library.

SetComponents Function

Set the color to a set of ColorSpace PDF components

Syntax

[C#]
void SetComponents(double value1)
void SetComponents(double value1, double value2)
void SetComponents(double value1, double value2, double value3)
void SetComponents(double value1, double value2, double value3, double value4)

[Visual Basic]
Sub SetComponents(value1 As Double)
Sub SetComponents(value1 As Double, value2 As Double)
Sub SetComponents(value1 As Double, value2 As Double, value3 As Double)
Sub SetComponents(value1 As Double, value2 As Double, value3 As Double, value4 As Double)

Params
Name | Description
value1 | The intensity of the first component (typically 0 to 1)
value2 | The intensity of the second component (typically 0 to 1)
value3 | The intensity of the third component (typically 0 to 1)
value4 | The intensity of the fourth component (typically 0 to 1)

Notes

Sets the color to the generic ColorSpace color space and provide a set of components for it.

PDF color components typically range between zero - no intensity - and one - 100% intensity. However this is not always the case. For color spaces such as Lab the components may take a wider range of values.


XColor SetRandom Function. Set the color to a random opaque value in the current color space. ABCpdf .NET PDF Library.

SetRandom Function

Set the color to a random opaque value in the current color space.

Syntax

[C#]
void SetRandom()

[Visual Basic]
Sub SetRandom()

Params
Name | Description
None |

Notes

Set the color to a random opaque value in the current color space.


XColor ToArrayAtom Function. An ArrayAtom representation of the components of the color. ABCpdf .NET PDF Library.

ToArrayAtom Function

An ArrayAtom representation of the components of the color

Syntax

[C#]
ArrayAtom ToArrayAtom()

[Visual Basic]
ArrayAtom ToArrayAtom()

Params
Name | Description
return | An ArrayAtom representing the color.

Notes

An ArrayAtom representation of the components of the color.

The ArrayAtom that is created will contain one NumAtom for each component of the color, each with the appropriate value set.


XColor ToString Function. Returns a string representation of the object. ABCpdf .NET PDF Library.

ToString Function

Returns a string representation of the object.

Syntax

[C#]
override string ToString()

[Visual Basic]
Overrides Function ToString() As String

Params
Name | Description
return | The string representation of the object.

Notes

This method returns the string value of the object. This is equivalent to reading the String property of the object.


XColor Alpha Property. The alpha opacity. ABCpdf .NET PDF Library.

Alpha Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 255 | No | The alpha opacity.

Notes

Allows you to get or set the alpha opacity of the color.

Alpha values can range from 0 to 255. Zero indicates fully transparent and 255 indicates fully opaque.

Example

Here we create a PDF document showing how different values of alpha result in different levels of transparency.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Inset(20, 20);
  doc.FontSize = 300;
  for (int i = 1; i <= 10; i++) {
    doc.Color.Alpha = 255 / i;
    doc.AddText(doc.Color.Alpha.ToString());
    doc.Rect.Move(25, -50);
  }
  doc.Save(Server.MapPath("coloralpha.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Inset(20, 20)
  doc.FontSize = 300
  Dim i As Integer = 1
  While i <= 10
    doc.Color.Alpha = 255 / i
    doc.AddText(doc.Color.Alpha.ToString())
    doc.Rect.Move(25, -50)
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While
  doc.Save(Server.MapPath("coloralpha.pdf"))
End Using

coloralpha.pdf


XColor Black Property. The black component. ABCpdf .NET PDF Library.

Black Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | The black component.

Notes

Allows you to get or set the black level.

CMYK color components can range from 0 to 100.

Querying this property does not change the ColorSpace. This means you can obtain approximate CMYK values for RGB or Grayscale colors.

However if you change the value of this property the color will automatically be converted to CMYK.


XColor Blue Property. The blue component. ABCpdf .NET PDF Library.

Blue Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | The blue component.

Notes

Allows you to get or set the blue component.

RGB color components can range from 0 to 255.

Querying this property does not change the ColorSpace. This means you can obtain approximate RGB values for CMYK or Grayscale colors.

However if you change the value of this property the color will automatically be converted to RGB.


XColor Color Property. The System.Drawing.Color. ABCpdf .NET PDF Library.

Color Property

Type | Default | Read Only | Description
[C#] Color [Visual Basic] Color | n/a | No | The System.Drawing.Color.

Notes

Allows you to access the color as a standard .NET Color from the System.Drawing namespace.


XColor ColorSpace Property. The color space for the color. ABCpdf .NET PDF Library.

ColorSpace Property

Type | Default | Read Only | Description
[C#] ColorOperatorType [Visual Basic] ColorOperatorType | ColorOperatorType.Rgb | No | The color space for the color.

Notes

Allows you to get or set the current color space for the color.

Grayscale, RGB and CMYK colors are defined purely in terms of the values of the XColor object. However more complex colors need to be defined in the context of a separate color space.

The ColorOperatorType enumeration may take the following values:

  • None
  • DeviceGray (i.e. grayscale)
  • DeviceRGB (i.e. RGB)
  • DeviceCMYK (i.e. CMYK)
  • ColorSpace (i.e. a generic set of color components)

The actual color is defined in terms of the Components of the color. For grayscale, RGB and CMYK there are one, three and four of these respectively. These components are most commonly accessed using properties such as Gray, Red, Green or Blue which express the values in terms of integers (typically 0 to 255). However it is ultimately the Components ranging from 0.0 to 1.0 which are provided as parameters to the PDF color operator.

If you change the value of this property between DeviceGray, DeviceRGB and DeviceCMYK, the current color will automatically be converted to the indicated color space. However different color spaces have fundamentally different properties and color conversions can only ever be approximate. Changing to None or ColorSpace will not change the number or values of the Components.

The integer values for the enumeration values DeviceGray, DeviceRGB and DeviceCMYK are one, three and four respectively, so that they match up with the number of color components in each of these color spaces.

The ColorSpace enumeration value indicates a generic color with a generic set of components. This type of color only makes sense within the context of a specified color space such as a spot color space. In this situation the parameters that are provided to the PDF color operator are accessed directly using the Components of the color. In addition, for pattern color spaces, there may also be a Name associated with the color.

Why is my ColorSpace an integer?

In older versions of ABCpdf the ColorSpace property was an integer. So you might find code of this form.

[C#]

theColor.ColorSpace = 3;

[Visual Basic]
theColor.ColorSpace = 3

In Version 10 the ColorSpace property was changed to a true enumeration. This is a safer way of coding as it allows the compiler to ensure that the values you are using are valid. Your new code should look like this.

[C#]

theColor.ColorSpace = ColorOperatorType.DeviceRGB;

[Visual Basic]
theColor.ColorSpace = ColorOperatorType.DeviceRGB

The old values of the integers match up with the new enumeration values. So if you find code of this form:

[C#]

theColor.ColorSpace = anInteger;

[Visual Basic]
theColor.ColorSpace = anInteger

You can just cast it to the correct type.

[C#]

theColor.ColorSpace = (ColorOperatorType)anInteger;

[Visual Basic]
theColor.ColorSpace = CType(anInteger, ColorOperatorType)

Or similarly:

[C#]

int n = theColor.ColorSpace;

[Visual Basic]
Dim n As Integer = theColor.ColorSpace

You can again cast it to the correct type.

[C#]

int n = (int)theColor.ColorSpace;

[Visual Basic]
Dim n As Integer = CInt(theColor.ColorSpace)


XColor Components Property. The components of the color in native PDF format. ABCpdf .NET PDF Library.

Components Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<double> | n/a | No | The components of the color in native PDF format

Notes

The components of the color in native PDF format.

PDF color components typically range between zero - no intensity - and one - 100% intensity. However this is not always the case. For color spaces such as Lab the components may take a wider range of values.

Example

In the following example we demonstrate how to use generic color components to draw in the Lab color space.

[C#]

using (Doc doc = new Doc()) {
  doc.Width = 80;
  doc.Rect.Inset(50, 50);
  ColorSpace cs = new ColorSpace(doc.ObjectSoup, ColorSpaceType.Lab);
  doc.ColorSpace = cs.ID;
  // This Lab color is a deep green
  doc.Color.ColorSpace = ColorOperatorType.ColorSpace;
  doc.Color.Components[0] = 50; // L range is 0 to +100
  doc.Color.Components[1] = -50; // a range is -100 to +100
  doc.Color.Components[2] = +50; // B range is -100 to +100
  doc.AddOval(true);
  doc.Save(Server.MapPath("examplelabcolorspace.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Width = 80
  doc.Rect.Inset(50, 50)
  Dim cs As New ColorSpace(doc.ObjectSoup, ColorSpaceType.Lab)
  doc.ColorSpace = cs.ID
  ' This Lab color is a deep green
  doc.Color.ColorSpace = ColorOperatorType.ColorSpace
  doc.Color.Components(0) = 50
  ' L range is 0 to +100
  doc.Color.Components(1) = -50
  ' a range is -100 to +100
  doc.Color.Components(2) = +50
  ' B range is -100 to +100
  doc.AddOval(True)
  doc.Save(Server.MapPath("examplelabcolorspace.pdf"))
End Using

examplelabcolorspace.pdf


XColor Cyan Property. The cyan component. ABCpdf .NET PDF Library.

Cyan Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | The cyan component.

Notes

Allows you to get or set the cyan level.

CMYK color components can range from 0 to 100.

Querying this property does not change the ColorSpace. This means you can obtain approximate CMYK values for RGB or Grayscale colors.

However if you change the value of this property the color will automatically be converted to CMYK.


XColor Gray Property. The gray component. ABCpdf .NET PDF Library.

Gray Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | The gray component.

Notes

Allows you to get or set the gray level.

Grayscale levels can range from 0 (black) to 255 (white).

Querying this property does not change the ColorSpace. This means you can obtain approximate Grayscale values for RGB or CMYK colors.

However if you change the value of this property the color will automatically be converted to Grayscale.

This property can also be used to specify levels for spot colorants. Levels can range from 0 (0% intensity) to 255 (100% intensity). See the AddColorSpaceSpot method for an example.


XColor Green Property. The green component. ABCpdf .NET PDF Library.

Green Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | The green component.

Notes

Allows you to get or set the green component.

RGB color components can range from 0 to 255.

Querying this property does not change the ColorSpace. This means you can obtain approximate RGB values for CMYK or Grayscale colors.

However if you change the value of this property the color will automatically be converted to RGB.


XColor Magenta Property. The magenta component. ABCpdf .NET PDF Library.

Magenta Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | The magenta component.

Notes

Allows you to get or set the magenta level.

CMYK color components can range from 0 to 100.

Querying this property does not change the ColorSpace. This means you can obtain approximate CMYK values for RGB or Grayscale colors.

However if you change the value of this property the color will automatically be converted to CMYK.


XColor Name Property. Any name that may be associated with this color. ABCpdf .NET PDF Library.

Name Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | null | No | Any name that may be associated with this color

Notes

Any name that may be associated with this color. Most commonly this is used for pattern names.


XColor Red Property. The red component. ABCpdf .NET PDF Library.

Red Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | The red component.

Notes

Allows you to get or set the red component.

RGB color components can range from 0 to 255.

Querying this property does not change the ColorSpace. This means you can obtain approximate RGB values for CMYK or Grayscale colors.

However if you change the value of this property the color will automatically be converted to RGB.


XColor String Property. The color as a string. ABCpdf .NET PDF Library.

String Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | "0 0 0" | No | The color as a string.

Notes

Allows you access to the color as a string.

If the color is in the RGB color space then the string contains three values representing the Red, Green and Blue levels. For example "100 150 200".

If the color is in the CMYK color space then the string contains four values representing the Cyan, Magenta, Yellow and Black levels. For example "30 60 90 10".

If the color is in the Grayscale color space then the string contains one value representing the Gray level. For example "150".

You can use the ColorSpace property to find the current color space for the color.

Alpha values can be indicated by prepending an 'a' to an extra component. For example "30 60 90 a120" would indicate an RGB value with an alpha value of 120.


XColor Yellow Property. The yellow component. ABCpdf .NET PDF Library.

Yellow Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | The yellow component.

Notes

Allows you to get or set the yellow level.

CMYK color components can range from 0 to 100.

Querying this property does not change the ColorSpace. This means you can obtain approximate CMYK values for RGB or Grayscale colors.

However if you change the value of this property the color will automatically be converted to CMYK.


XEncryption Object

Represents the current encryption settings.

By default encryption is not applied unless you explicitly specify it using the Type property.

System.Object
   WebSupergoo.ABCpdf12.XEncryption

Method | Description
Throws Exceptions SetCryptMethods | Sets the crypt methods for encryption levels of type 4 or above.

Property | Description
CanAssemble | Whether a user can assemble the document.
CanChange | Whether a user can modify the document.
CanCopy | Whether a user can copy from the document.
CanEdit | Whether a user can edit the document.
CanExtract | Whether a user can extract from the document.
CanFillForms | Whether a user can fill forms in the document.
CanPrint | Whether a user can print the document.
CanPrintHi | Whether a user can print a high resolution copy of the document.
EncryptMetadata | Whether to encrypt the document metadata for encryption levels of type 4 or above.
OwnerPassword | The owner password.
Password | The user password.
StreamCryptionMethod | The crypt method for streams for encryption levels of type 4 or above.
StringCryptionMethod | The crypt method for strings for encryption levels of type 4 or above.
Type | The level of encryption to use.


XEncryption SetCryptMethods Function. Sets the crypt methods for encryption levels of type 4 or above. ABCpdf .NET PDF Library.

SetCryptMethods Function

Sets the crypt methods for encryption levels of type 4 or above.

Syntax

[C#]
void SetCryptMethods(CryptMethodType method)
void SetCryptMethods(CryptMethodType stringMethod, CryptMethodType streamMethod)

[Visual Basic]
Sub SetCryptMethods(method As CryptMethodType)
Sub SetCryptMethods(stringMethod As CryptMethodType, streamMethod As CryptMethodType)

Throws Exceptions may throw Exception()

Params
Name | Description
method | The crypt method for strings and streams.
stringMethod | The crypt method for strings.
streamMethod | The crypt method for streams.

Notes

The default crypt method for Type 4 is V2, which uses RC4 algorithm. Crypt method settings are in effect only when Type is 4 or above.

The CryptMethodType enumeration can take any of the following values:

  • None – (Not supported.) An exception is thrown when it is used.
  • Identity – No encryption.
  • V2 – Uses the RC4 algorithm.
  • AESV2 – Uses the AES algorithm with 128-bit encryption keys.
  • AESV3 – Uses the AES algorithm with 256-bit encryption keys.

Because Adobe Reader does not support using more than one crypt methods per document (i.e. stringMethod≠streamMethod), an exception is thrown if you try to use multiple crypt methods. However, Identity is degenerate and can be used with other crypt methods.

The PDF 2.0 standard deprecates a number of these options as being potentially insecure. The recommended set for PDF 2.0 compliant documents is Type 5 with SetCryptMethods AESV3.

Example

Here we use 128-bit AES encryption.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 96;
  doc.AddText("Hello World!");
  doc.Encryption.Type = 5;
  doc.Encryption.SetCryptMethods(CryptMethodType.AESV3);
  doc.Save(Server.MapPath("docencrypt.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 96
  doc.AddText("Hello World!")
  doc.Encryption.Type = 5
  doc.Encryption.SetCryptMethods(CryptMethodType.AESV3)
  doc.Save(Server.MapPath("docencrypt.pdf"))
End Using


XEncryption ToString Function. Returns a string representation of the object. ABCpdf .NET PDF Library.

ToString Function

Returns a string representation of the object.

Syntax

[C#]
override string ToString()

[Visual Basic]
Overrides Function ToString() As String

Params
Name | Description
return | The string representation of the object.

Notes

This method returns the string value of the object. This is equivalent to reading the String property of the object.


XEncryption CanAssemble Property. Whether a user can assemble the document. ABCpdf .NET PDF Library.

CanAssemble Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether a user can assemble the document.

Notes

This property determines if people who supply the user password can assemble the document.

Assembling is defined as inserting, rotating or deleting pages; creating bookmarks or thumbnail images. This is allowed even if the CanChange property is set to false.

This property is only applied if the Type is set to 2 or higher.

Example

See the Doc.Encryption property.


XEncryption CanChange Property. Whether a user can modify the document. ABCpdf .NET PDF Library.

CanChange Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether a user can modify the document.

Notes

This property determines if people who supply the user password can change the document.

Changing is defined as modifying the document in any way other than those controlled by the CanEdit, CanFillForms or CanAssemble properties.

This property is only applied if the Type is set to 1 or higher.

Example

See the Doc.Encryption property.


XEncryption CanCopy Property. Whether a user can copy from the document. ABCpdf .NET PDF Library.

CanCopy Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether a user can copy from the document.

Notes

This property determines if people who supply the user password can copy from the document.

Copying is defined as copying, or otherwise extracting text and graphics from the document. If the Type is set to 3 and the CanExtract property is set to true then extracting text and graphics in support of accessibility to disabled users is allowed.

This property is only applied if the Type is set to 1 or higher.

Example

See the Doc.Encryption property.


XEncryption CanEdit Property. Whether a user can edit the document. ABCpdf .NET PDF Library.

CanEdit Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether a user can edit the document.

Notes

This property determines if people who supply the user password can edit the document.

Editing is defined as adding or modifying text annotations, filling in interactive form fields and if the CanChange property is set, creating or modifying interactive form fields including signature fields.

This property is only applied if the Type is set to 1 or higher.

Example

See the Doc.Encryption property.


XEncryption CanExtract Property. Whether a user can extract from the document. ABCpdf .NET PDF Library.

CanExtract Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether a user can extract from the document.

Notes

This property determines if people who supply the user password can extract from the document.

Extracting is defined as extracting text or graphics in support of accessibility to disabled users or for other purposes.

This property is only applied if the Type is set to 2 or higher.

Example

See the Doc.Encryption property.


XEncryption CanFillForms Property. Whether a user can fill forms in the document. ABCpdf .NET PDF Library.

CanFillForms Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether a user can fill forms in the document.

Notes

This property determines if people who supply the user password can fill forms in the document.

Filling forms is defined as filling in existing interactive form fields including signature fields. This is allowed even if the CanEdit property is set to false.

This property is only applied if the Type is set to 2 or higher.

Example

See the Doc.Encryption property.


XEncryption CanPrint Property. Whether a user can print the document. ABCpdf .NET PDF Library.

CanPrint Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether a user can print the document.

Notes

This property determines if people who supply the user password can print the document.

Printing may not be available at the highest quality level if the CanPrintHi property is set to false.

This property is only applied if the Type is set to 1 or higher.

Example

See the Doc.Encryption property.


XEncryption CanPrintHi Property. Whether a user can print a high resolution copy of the document. ABCpdf .NET PDF Library.

CanPrintHi Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether a user can print a high resolution copy of the document.

Notes

This property determines if people who supply the user password can print a high resolution copy of the document.

When this property is set to false and the CanPrint property is set to true printing is limited to a lower quality representation of the document.

This property is only applied if the Type is set to 2 or higher.

Example

See the Doc.Encryption property.


XEncryption EncryptMetadata Property. Whether to encrypt the document metadata for encryption levels of type 4 or above. ABCpdf .NET PDF Library.

EncryptMetadata Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to encrypt the document metadata for encryption levels of type 4 or above.

Notes

This property determines whether the document metadata is encrypted. It is in effect only when Type is 4 or above.

The document metadata can be saved unencrypted so that tools that do not support PDF encryption can still index/process the document using the metadata.


XEncryption OwnerPassword Property. The owner password. ABCpdf .NET PDF Library.

OwnerPassword Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "" | No | The owner password.

Notes

This property determines or reflects the owner password for the document.

You can open and view an encrypted document with either the user or the owner password. However only the owner has full control over the document. The user may have a restricted set of permissions.

For more information about the user and owner passwords see the Doc.Encryption property.

Example

See the Doc.Encryption property.


XEncryption Password Property. The user password. ABCpdf .NET PDF Library.

Password Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "" | No | The user password.

Notes

This property determines or reflects the user password for the document.

You can open and view an encrypted document with either the user or the owner password. However only the owner has full control over the document. The user may have a restricted set of permissions.

Typically the user password is left blank to allow all users to view the document.

For more information about the user and owner passwords see the Doc.Encryption property.

Example

See the Doc.Encryption property.


XEncryption StreamCryptionMethod Property. The crypt method for streams for encryption levels of type 4 or above. ABCpdf .NET PDF Library.

StreamCryptionMethod Property

Type | Default Value | Read Only | Description
[C#] CryptMethodType [Visual Basic] CryptMethodType | V2 | Yes | The crypt method for streams for encryption levels of type 4 or above.

Notes

This property returns the crypt methods for streams. Crypt method settings are in effect only when Type is 4 or above.

To change this value, use SetCryptMethods.


XEncryption String Property. The encryption settings as a string. ABCpdf .NET PDF Library.

String Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | Variable | No | The encryption settings as a string.

Notes

A string representation of the encryption settings.

This covers all the properties of this class and can be sued for a save and restore stack.

Example

None


XEncryption StringCryptionMethod Property. The crypt method for strings for encryption levels of type 4 or above. ABCpdf .NET PDF Library.

StringCryptionMethod Property

Type | Default Value | Read Only | Description
[C#] CryptMethodType [Visual Basic] CryptMethodType | V2 | Yes | The crypt method for strings for encryption levels of type 4 or above.

Notes

This property returns the crypt methods for strings. Crypt method settings are in effect only when Type is 4 or above.

To change this value, use SetCryptMethods.


XEncryption Type Property. The level of encryption to use. ABCpdf .NET PDF Library.

Type Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | The level of encryption to use.

Notes

This property determines the level of encryption used when saving the document. The default value of zero indicates that no encryption will be used.

Higher levels of encryption provide higher levels of security and more flexibility in applying permissions but also require more recent versions of Adobe Acrobat to view. The table below details valid combinations.

The PDF 2.0 standard deprecates a number of these options as being potentially insecure. The recommended set for PDF 2.0 compliant documents is Type 5 with SetCryptMethods AESV3.

Type Value | 0 | 1 | 2 | 4 | 5
Acrobat Version Required | Any | 2.0 | 5.0 | 7.0 / X - see below | 9.0 / X - see below
Encryption Key Length (bits) | None | 40 | 128 | 128 | 256
Encryption Algorithm | Identity | RC4 | RC4 | Identity/RC4/AES | Identity/AES
Can Assemble |  |  |  |  |
Can Change |  |  |  |  |
Can Copy |  |  |  |  |
Can Edit |  |  |  |  |
Can Extract |  |  |  |  |
Can Fill Forms |  |  |  |  |
Can Print |  |  |  |  |
Can Print Hi |  |  |  |  |

On a technical level Acrobat 9 supported 256 bit AES encryption. However there were a number of security flaws in the specification and Adobe released an update to resolve these using PDF 1.7 Extension Level 8. Since we felf it important that the encryption be secure, we produce AES 256 documents conforming to this later specification - hence only readable by Acrobat X and later.

AES 256 Support in Acrobat.

On a technical level Acrobat 7 supported 128 bit AES and Acrobat 9 supported 256 bit AES encryption. However there were security flaws in the specification as relates to the way passwords were handled.

For this reason Adobe released an update to resolve these - PDF 1.7 Extension Level 8 - requiring Acrobat X. The specification for this was never formally published but it became part of the PDF 2.0 specification.

Since we feel it important that encryption be secure, we produce AES 128 and AES 256 documents conforming to this later specification - hence only readable by Acrobat X and later.

Example

See the Doc.Encryption property and the SetCryptMethods method.


XFont Class

Provides information about the fonts available to ABCpdf.

System.Object
   WebSupergoo.ABCpdf12.XFont

Method | Description
S» FindAll | Find all the fonts currently installed on the system.
S» FindFamily | Find all the fonts belonging to a particular family.
S» FindFamilyNames | Find the names of all font families.
S» FindByName | Find all the fonts with a given name.
S» FindByStyle | Find a font from a specific family, with a given style.
TextWidth | Calculate the width of a string of text.
Unload | Unloads a font so that it is no longer available.

Property | Description
FamilyName | The name of the family to which the font belongs.
FixedPitch | Whether the font is in a fixed pitch style.
Italic | Whether the font is in an italic style.
Name | The complete human readable name of the font.
Names | The complete set of names by which this font is known.
PostScriptName | The name the font will be known by on a PostScript printer.
Script | Whether the font is in a script style.
Serif | Whether the font is in a serif style.
Weight | The weight of the font.
Baseline | The baseline of the font in thousandths of a unit.
Widths | The widths of the characters in the font.


XFont FindAll Function. Find all the fonts currently installed on the system. ABCpdf .NET PDF Library.

FindAll Function

Find all the fonts currently installed on the system.

Syntax

[C#]
static XFont[] FindAll()

[Visual Basic]
Shared Function FindAll() As XFont()

Params
Name | Description
return | The set of matching fonts.

Notes

This function finds all the fonts currently installed on the system.


XFont FindFamily Function. Find all the fonts belonging to a particular family. ABCpdf .NET PDF Library.

FindFamily Function

Find all the fonts belonging to a particular family.

Syntax

[C#]
static XFont[] FindFamily(string family)

[Visual Basic]
Shared Function FindFamily(family As String) As XFont()

Params
Name | Description
family | The name of the font family.
return | The set of matching fonts.

Notes

This function finds all the fonts belonging to a particular font family.


XFont FindFamilyNames Function. Find the names of all font families. ABCpdf .NET PDF Library.

FindFamilyNames Function

Find the names of all font families.

Syntax

[C#]
static string[] FindFamilyNames()

[Visual Basic]
Shared Function FindFamilyNames() As String()

Params
Name | Description
return | The set of family names.

Notes

This function finds all the font families currently available.


XFont FindByName Function. Find all the fonts with a given name. ABCpdf .NET PDF Library.

FindByName Function

Find all the fonts with a given name.

Syntax

[C#]
static XFont[] FindByName(string name)

[Visual Basic]
Shared Function FindByName(name As String) As XFont()

Params
Name | Description
name | The name of the font.
return | The set of matching fonts.

Notes

This function finds all the fonts with a given name.

Note that each font may contain many different names. Some names are more unique than others. So it is good to be as specific as possible when searching by name.


XFont FindByStyle Function. Find a font from a specific family, with a given style. ABCpdf .NET PDF Library.

FindByStyle Function

Find a font from a specific family, with a given style.

Syntax

[C#]
static XFont FindByStyle(string family, FontWeight weight, bool italic)
static XFont FindByStyle(string family, int weight, bool italic)
static XFont FindByStyle(IEnumerable<XFont> fonts, int weight, int weightTolerance, bool italic)
[Visual Basic]
Shared Function FindByStyle(family As String, weight As FontWeight, italic As Boolean) As XFont
Shared Function FindByStyle(family As String, weight As Integer, italic As Boolean) As XFont
Shared Function FindByStyle(fonts As IEnumerable(Of XFont), weight As Integer, weightTolerance as Integer, italic As Boolean) As XFont

Params
Name | Description
family | The name of the font family.
fonts | The fonts.
weight | The weight (or the midpoint of the permitted weight range) of the required font.
weightTolerance | The maximum permitted difference between the weight parameter and the weight of the required font. The default value is 0.
italic | Whether an italic font is required.
return | A matching font. Null if no matching font could be found.

Notes

This function finds a font from a specific family or among the given fonts, with a given style.

If no matching font can be found, then the function will return null.

The desired weight can be passed in either as an integer or as a value from the FontWeight enumeration.


XFont TextWidth Function. Calculate the width of a string of text. ABCpdf .NET PDF Library.

TextWidth Function

Calculate the width of a string of text.

Syntax

[C#]
int TextWidth(string text)

[Visual Basic]
Function TextWidth(text As String) As Integer

Params
Name | Description
text | The text
return | The width of the text in 1000ths.

Notes

This function caculates the width for a given text string.

The value returned is measured in thousandths of a unit. So to calculate the physical size on the page multiply the returned value by the font size and divide by one thousand.


XFont Unload Function. Unloads a font so that it is no longer available. ABCpdf .NET PDF Library.

Unload Function

Unloads a font so that it is no longer available.

Syntax

[C#]
void Unload()

[Visual Basic]
Sub Unload()

Params
Name | Description
none |

Notes

Unloads a font so that it is no longer available.

It is important that you ensure that the fonts is not being used by ABCpdf at the point that it is unloaded. This means you need to consider if other threads might be constructing PDF documents that are making use of the font. Unloading a font which is in use may result in unpredictable behavior or output.


XFont FamilyName Property. The name of the family to which the font belongs. ABCpdf .NET PDF Library.

FamilyName Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | n/a | Yes | The name of the family to which the font belongs.

Notes

The name of the family to which the font belongs.

Fonts often come in collections providing variations on a particular style. Although the font name for each style may be different the family name will be the same.


XFont FixedPitch Property. Whether the font is in a fixed pitch style. ABCpdf .NET PDF Library.

FixedPitch Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | n/a | Yes | Whether the font is in a fixed pitch style.

Notes

The value of this property is true if the font is in a fixed pitch style.

Fixed pitch fonts have characters which are all the same width. Courier is an example of such a font.


XFont Italic Property. Whether the font is in an italic style. ABCpdf .NET PDF Library.

Italic Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | n/a | Yes | Whether the font is in an italic style.

Notes

The value of this property is true if the font is in an italic style.


XFont Name Property. The complete human readable name of the font. ABCpdf .NET PDF Library.

Name Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | n/a | Yes | The complete human readable name of the font.

Notes

The complete human readable name of the font.

Font names are not guaranteed to be unique. However it is unusual to find duplicates.


XFont Names Property. The complete set of names by which this font is known. ABCpdf .NET PDF Library.

Names Property

Type | Default | Read Only | Description
[C#] System.Collections.Specialized.StringCollection [Visual Basic] System.Collections.Specialized.StringCollection | n/a | Yes | The complete set of names by which this font is known.

Notes

The complete set of names by which this font is known.

Fonts can hold multiple names. These can be short names, long names, unique names, names for a particular purpose or names in different languages.


XFont PostScriptName Property. The name the font will be known by on a PostScript printer. ABCpdf .NET PDF Library.

PostScriptName Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | n/a | Yes | The name the font will be known by on a PostScript printer.

Notes

The name the font will be known by on a PostScript printer.

PDF documents generally refer to fonts by their PostScript name.


XFont Script Property. Whether the font is in a script style. ABCpdf .NET PDF Library.

Script Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | n/a | Yes | Whether the font is in a script style.

Notes

The value of this property is true if the font is in a script style.

Script styles are designed to look like cursive handwriting. Comic Sans MS is an example of such a font.


XFont Serif Property. Whether the font is in a serif style. ABCpdf .NET PDF Library.

Serif Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | n/a | Yes | Whether the font is in a serif style.

Notes

The value of this property is true if the font is in a serif style.

Fonts come in serif and sans-serif styles. Serif styles have structural elements on the end of strokes. Sans-serif styles do not.

Times is an example of a font with serifs. Arial is an example of one without.


XFont Weight Property. The weight of the font. ABCpdf .NET PDF Library.

Weight Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The weight of the font.

Notes

The weight of the font determines whether the font is light, normal or bold.

The value of this property can be compared against the FontWeight enumeration.

The FontWeight enumeration contains the following values:

  • DontCare = 0
  • Thin = 100
  • ExtraLight = 200
  • Light = 300
  • Normal = 400
  • Medium = 500
  • SemiBold = 600
  • Bold = 700
  • ExtraBold = 800
  • Heavy = 900


XFont Baseline Property. The baseline of the font in thousandths of a unit. ABCpdf .NET PDF Library.

Baseline Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The baseline of the font in thousandths of a unit.

Notes

The baseline of the font in thousandths of a unit.

To find the base of the font use this metric together with the font size to find the distance from the top of the text area to the baseline of your font.

For example if the baseline is 800 and the font size is 100 points, then the base of the font will be 80 points from the top of the current rectangle.


XFont Widths Property. The widths of the characters in the font. ABCpdf .NET PDF Library.

Widths Property

Type Default Read Only Description
[C#]
int[]

[Visual Basic]
Integer() 		n/a Yes The widths of the characters in the font.

Notes

The character widths for all the characters in the font.

The array is indexable by Unicode value. For example to find the width of a space (ASCII 32) you would simply reference item 32 in the array.

The values are measured in in 1000ths of a PDF unit. Characters with no representation in the font are assigned a width of -1.


XForm Object

Represents the form and fields associated with this document.

The PDF specification makes a distinction between a field (in terms of a named value) and the visible appearance of the field on the document.

In general one field will have one visible appearance on the document. However it is possible for a field to have multiple or indeed no appearances on the document.

For example a Radio Button group encapsulates one value and is represented by one field. However each radio button has a separate appearance on the document. So one Radio Button field is likely to have many appearances.

For this reason fields exist within a hierarchy. Each field may or may not have a visible appearance. Each field may or may not have children. These children may be fields themselves and again may have their own children.

Fields are generally referenced by fully qualified name. A full name describes a path down through the field hierarchy - using periods as delimiters - to a specific field object. For example the name 'person.address.city' would reference a field with a partial field name called 'city' which has a parent called 'address' which has a parent at the top level called 'person'. You can resolve a fully qualified name using the Item function.

Once a field has been obtained you can query or change its values. If you wish to convert the fields into a permanent part of the document you can use the Stamp method to permanently emboss them.

System.Object
   WebSupergoo.ABCpdf12.XForm

Method | Description
AddComboBoxField | Add combo box form field.
AddListBoxField | Add list box form field.
AddGroupField | Add group field.
AddTextField | Add text field.
AddButton | Add button field.
AddCheckbox | Add check box form field.
AddRadioButtonGroup | Add radio button group.
AddResource | Add a particular type of resource to the form.
AddSignature | Add unsigned signature field.
AddDocTimestamp | Adds a Signature field compatible with a document timestamp.
Create | Create an AcroForm if one does not already exist.
GetFieldNames | Gets the full names of all the fields in the document.
Item | Gets or sets a particular field referenced by full name.
MakeFieldIntoGroup | Make duplicate fields into synchronized groups.
MakeFieldsUnique | Makes shared XForm fields unique.
Remove | Remove a field from the form.
RunJS | Run JavaScript code.
Stamp | Stamp all fields into the document.

Property | Description
DateTimeFormat | The format provider for formatting dates and times.
Fields | All top level fields in the form.
FormatFields | Whether values should be formatted before insertion into fields.
GenerateAppearances | Whether field appearances should be pre-generated.
NeedAppearances | Whether the viewer should automatically regenerate field appearances.
UseFieldScript | Whether the viewer should run JavaScript field calculations.


XForm AddButton Function. Add button field. ABCpdf .NET PDF Library.

AddButton Function

Add button field.

Syntax

[C#]
Field AddButton(XRect rect, string name, string inCaption)

[Visual Basic]
Function AddButton(rect As XRect, name As string, inCaption As string) As Field

Params
Name | Description
rect | Rectangle of the form field
name | Name of the form field
inCaption | Caption of the button
return | Form field object

Notes

Add a button field.

Example
See the Annotations example project.


XForm AddCheckbox Function. Add check box form field. ABCpdf .NET PDF Library.

AddCheckbox Function

Add check box form field.

Syntax

[C#]
Field AddCheckbox(XRect rect, string name, bool value)

[Visual Basic]
Function AddCheckbox(rect As XRect, name As string, value As bool) As Field

Params
Name | Description
rect | Rectangle of the form field
name | Name of the form field
value | Initial value
return | Form field object

Notes

Add check box form field.

Example
See the Annotations example project.


XForm AddComboBoxField Function. Add combo box form field. ABCpdf .NET PDF Library.

AddComboBoxField Function

Add combo box form field.

Syntax

[C#]
Field AddComboBoxField(XRect rect, string name)

[Visual Basic]
Function AddComboBoxField(rect As XRect, name As string) As Field

Params
Name | Description
rect | Rectangle of the form field
name | Name of the form field
return | Form field object

Notes

Add combo box form field.

Example
See the Annotations example project.


XForm AddDocTimestamp Function. Adds a Signature field compatible with a DocTimeStamp. ABCpdf .NET PDF Library.

AddDocTimestamp Function

Adds a Signature field compatible with a DocTimeStamp.

Syntax

[C#]
Signature AddDocTimestamp()
Signature AddDocTimestamp(string name)

[Visual Basic]
Function AddDocTimestamp() As Signature
Function AddDocTimestamp(name As string) As Signature

Params
Name | Description
name | The name of the document timestamp field. If no name is specified a unique name will be added.

Notes

Adds a Signature field compatible with a document timestamp.

Add an RFC 3161 compliant document timestamp field to the form.

To sign the timestamp you need to specify either a TimestampServiceUrl or a CustomSigner and then call SignTimestamp.

Example
See the Annotations example project.


XForm AddGroupField Function. Add group field. ABCpdf .NET PDF Library.

AddGroupField Function

Add group field.

Syntax

[C#]
Field AddGroupField(List<IndirectObject> kids, string name, string value)

[Visual Basic]
Function AddGroupField(kids As List<IndirectObject>, name As string, value As string) As Field

Params
Name | Description
kids | The kids to go in the form field
name | Name of the form field
value | Initial value for kids
return | Form field id

Notes

Add group field.

Example
See the Annotations example project.


XForm AddListBoxField Function. Add list box form field. ABCpdf .NET PDF Library.

AddListBoxField Function

Add list box form field.

Syntax

[C#]
Field AddListBoxField(XRect rect, string name)

[Visual Basic]
Function AddListBoxField(rect As XRect, name As string) As Field

Params
Name | Description
rect | Rectangle of the form field
name | Name of the form field
return | Form field object

Notes

Add list box form field.

Example
See the Annotations example project.


XForm AddRadioButtonGroup Function. Add radio button group. ABCpdf .NET PDF Library.

AddRadioButtonGroup Function

Add radio button group.

Syntax

[C#]
Field AddRadioButtonGroup(XRect[] rects, string name, int selected)

[Visual Basic]
Function AddRadioButtonGroup(rects() As XRect, name As string, selected As int) As Field

Params
Name | Description
rects | Radio button rectangles.
name | Name of the radio button form field.
selected | Number of initially selected button using a zero based index.
return | Form field object.

Notes

Add radio button group.

Example
See the Annotations example project.


XForm AddResource Function. Add a particular type of resource to the form. ABCpdf .NET PDF Library.

AddResource Function

Add a particular type of resource to the form

Syntax

[C#]
string AddResource(IndirectObject resource, string type, string name)

[Visual Basic]
Function AddResource(resource As IndirectObject, type As String, name As String) As String

Params
Name | Description
resource | The resource to be added.
type | The type of resource.
name | The format of the name that should be used.

Notes

Add a particular type of resource to the form.

Forms may contain default resources usable by any of the fields and annotations in the form. The most common resource types are "Font", "XObject" and "ColorSpace". For further details see the PDF Specification.

This method allows you to add new resources to the form. You may supply your own name for the resource but if the name is already in use, it may need to be modified. For this reason the function returns the value which was actually used for the addition.


XForm AddSignature Function. Add unsigned signature field. ABCpdf .NET PDF Library.

AddSignature Function

Add unsigned signature field.

Syntax

[C#]
Signature AddSignature(XRect rect, string name)

[Visual Basic]
Function AddSignature(rect As XRect, name As string) As Signature

Params
Name | Description
rect | Rectangle of the form field
name | Name of the form field
return | Form field object

Notes

Add unsigned signature field.

To add an invisible field provide an empty rectangle.

Example
See the Annotations example project.


XForm AddTextField Function. Add text field. ABCpdf .NET PDF Library.

AddTextField Function

Add text field.

Syntax

[C#]
Field AddTextField(XRect rect, string name, string inText)

[Visual Basic]
Function AddTextField(rect As XRect, name As string, text As string) As Field

Params
Name | Description
rect | Rectangle of the form field
name | Name of the form field
text | Initial value
return | Form field object

Notes

Add text field.

Example
See the Annotations example project.


XForm Create Function. Create an AcroForm if one does not already exist. ABCpdf .NET PDF Library.

Create Function

Create an AcroForm if one does not already exist.

Syntax

[C#]
void Create()

[Visual Basic]
Sub Create()

Params
Name | Description
none |

Notes

Create an AcroForm if one does not already exist.

Adding a field to a form using a method like AddTextField will automatically create an AcroForm if necessary. So in general you will not need to use this function.


XForm GetFieldNames Function. Gets the full names of all the fields in the document. ABCpdf .NET PDF Library.

GetFieldNames Function

Gets the full names of all the fields in the document.

Syntax

[C#]
string[] GetFieldNames()

[Visual Basic]
Function GetFieldNames() As String()

Params
Name | Description
return | The names of all the eForm fields in the document.

Notes

This function scans the field tree and extracts the full name of every terminal field in the document.


XForm Item Function. Gets or sets a particular field referenced by full name. ABCpdf .NET PDF Library.

Item Function

Gets or sets a particular field referenced by full name.

Syntax

[C#]
Field this[string name]

[Visual Basic]
Default Property Item(name As String) As Field

Params
Name | Description
name | The fully qualified name of the field.
return | The matching field.

Notes

Use this method to retrieve a field referenced by fully qualified name.

If no matching field can be found then a null value will be returned.

When setting a value any intermediate fields will be created and the provided field name will be updated to reflect the field path provided.

In C# this property is the indexer for the class.

See the XForm object for details of how fully qualified names are constructed.


XForm MakeFieldIntoGroup Function. Make duplicate fields into synchronized groups. ABCpdf .NET PDF Library.

MakeFieldIntoGroup Function

Make duplicate fields into synchronized groups.

Syntax

[C#]
bool MakeFieldIntoGroup(Field inField)

[Visual Basic]
Function MakeFieldIntoGroup(inField As Field) As Boolean

Params
Name | Description
inField | The field to operate on

Notes

Make duplicate fields into synchronized groups.

Scans through sibling fields looking for duplicate names.

Any duplicates are put together in a field group so that they will synchronize.

Example
See the Annotations example project.


XForm MakeFieldsUnique Function. Makes shared XForm fields unique. ABCpdf .NET PDF Library.

MakeFieldsUnique Function

Makes shared XForm fields unique.

Syntax

[C#]
void MakeFieldsUnique()
void MakeFieldsUnique(string token)

[Visual Basic]
Sub MakeFieldsUnique()
Sub MakeFieldsUnique(token As String)

Params
Name | Description
token | A token appended to the existing field name, together with the page number. This makes the field name unique. Default value is "_page".

Notes

Makes shared XForm fields unique.

After duplicating pages via calls such as RemapPages and Append, fields may end up shared by pages. This means that updating a field in a page will affect the same field in a different page. Very often this is not the desired behaviour. Fields should then be made unique. Changing fields in a page will not affect other pages when fields are unique. Call this method to make the fields unique. For example: RemapPages("1 1") creates two copies of the first page, which means that any field owned by the first page is now shared by two pages. Calling MakeFieldsUnique after RemapPages, will create separate copies of the fields, each one with a unique name.

To make names unique we use the token parameter. This is a string that is appended to the field name. It is also followed by the page number. For example, you can set the token to something like "_page", the default value. The field names will then be changed to ExistnigName_page1, where ExistingName is the current name of the field and the field is located on page 1. Fields must have unique names, this is required by the PDF specifications.

If the token already exists in the field name - and is located at the end except for digits - only the page number is changed. The token will not be appended twice. Therefore an existing field name that ends with digits, and has the exact token before such digits, will have the digits replaced by the page number and nothing else changed.

The token may be empty but be aware that any digits at the end of the field name will be replaced by the page number. If the token is null it will be replaced by the default token, _page.

If a field is shared by several widget annotations either on the same or different pages, we do our best not to break this sharing when the fields are made unique. When duplicating a shared field, the page number in the field name will be the number of the last page the field appeared on. For example, take a field called "title" and shared between pages 1 and 2. The following remap is performed: "1 1 2 2". Then MakeFieldsUnique is called. The first and third pages will then share a field called title_page3 and the second and forth pages will share a field called title_page4. If remapping with "1 2 1 2", then the first two pages share title_page2 and the last two pages share title_page4.


XForm Remove Function. Remove a field from the form. ABCpdf .NET PDF Library.

Remove Function

Remove a field from the form.

Syntax

[C#]
void Remove(Field field)

[Visual Basic]
Sub Remove(field As Field)

Params
Name | Description
field | The field to be removed.

Notes

Remove a field from the form.


XForm RunJS Function. Run JavaScript code. ABCpdf .NET PDF Library.

RunJS Function

Run JavaScript code.

Syntax

[C#]
string RunJS(string js, JSOptions options)

[Visual Basic]
Function RunJS(js As String, options As JSOptions) As String

Params
Name | Description
js | The JavaScript code to be executed. The method does nothing if it is null/Nothing or empty.
options | The options. If it is null, a default will be used.
return | The result of the execution converted to string.

Notes

This method runs the JavaScript code against the PDF document. For example, you can execute actions that are executed when an annotation is clicked on by running the JavaScript code obtained with doc.GetInfo(annot.ID, "/A/JS:Text").

Example

See the JSOptions.SetUp event.


XForm Stamp Function. Stamp all fields into the document. ABCpdf .NET PDF Library.

Stamp Method

Stamp all fields into the document.

Syntax

[C#]
void Stamp()

[Visual Basic]
Sub Stamp()

Params
Name | Description
none |

Notes

Use this method to permanently stamp all fields into the document.

When this method is called all field appearances are stamped permanently into the document and the fields are deleted.

Each field becomes a new layer on the page (see Doc.LayerCount) so you may wish to call Doc.Flatten on any affected pages.

You can use the Field.Stamp method to stamp individual fields into the document.


XForm DateTimeFormat Property. The format provider for formatting dates and times. ABCpdf .NET PDF Library.

DateTimeFormat Property

Type | Default Value | Read Only | Description
[C#] IFormatProvider [Visual Basic] IFormatProvider | null | No | The format provider for formatting dates and times.

Notes

This property specifies the formats of dates and times for the appearances of fields that use javascript functions such as AFDate_FormatEx, AFTime_FormatEx.

A null value indicates the use of the locale-independent default formats.

You can see the appearances when the PDF is rendered to an image.

If the fields are not stamped, Adobe Reader may ignore the appearances and generate new appearances so you may not see the dates and times in the specified formats when viewing in Adobe Reader.


XForm Fields Property. All top level fields in the form. ABCpdf .NET PDF Library.

Fields Property

Type | Default Value | Read Only | Description
[C#] Fields [Visual Basic] Fields | See description. | Yes | All top level fields in the form.

Notes

The collection of all top level fields in the form.

Items in this collection can be referenced by partial field name or by zero based index.

As with all collections you can use the Count property to determine the number of items contained and you can iterate through the collection using the standard methods appropriate to the language you are coding in.


XForm FormatFields Property. Whether values should be formatted before insertion into fields. ABCpdf .NET PDF Library.

FormatFields Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether values should be formatted before insertion into fields.

Notes

This determines if values should be formatted before insertion.

Acrobat uses JavaScript to implement number and date formats. Although this is something which is part of Acrobat rather than of the PDF specification you can ask ABCpdf to adhere to these formatting scripts.

When this property is set to true ABCpdf will detect these standard scripts and generate appearances conforming with them. See the Field.Format property for details.

It is unlikely you will want to change the value of this property.


XForm GenerateAppearances Property. Whether field appearances should be pre-generated. ABCpdf .NET PDF Library.

GenerateAppearances Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether field appearances should be pre-generated.

Notes

This property determines if field appearances are pre-generated or not.

Many PDF viewing applications are unable to generate field appearances dynamically. This means that they are unable to display fields given the field and the value of that field. Instead they require the appearance of the field to be pre-generated.

A new appearance will only be generated when it is required. Typically this is when the value of a field changes.

It is unlikely you will want to change the value of this property.


XForm NeedAppearances Property. Whether the viewer should automatically regenerate field appearances. ABCpdf .NET PDF Library.

NeedAppearances Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether the viewer should automatically regenerate field appearances.

Notes

This property determines if the NeedAppearances flag in the PDF is set when field values are changed.

The NeedAppearances flag signals to the viewing application that field appearances should be automatically generated rather than using the appearance embedded in the PDF.

If this property is true, every time you change the value of a field ABCpdf will ensure that a NeedsAppearances flag is available and that it is set to true. It only ever sets the flag to true, it will not set it to false. It only sets the flag when field values are changed, it will not set it if no field values are changed.

This means that if you read a document in which this flag may already be set to true, to revert it back to false, you would need code of the folllowing form.

[C#]

var cat = doc.ObjectSoup.Catalog;
var form = cat.Resolve(Atom.GetItem(cat.Atom, "AcroForm"));
if (form != null)
    Atom.RemoveItem(form, "NeedAppearances");
doc.Save("...

[Visual Basic]
Dim cat = doc.ObjectSoup.Catalog
Dim form = cat.Resolve(Atom.GetItem(cat.Atom, "AcroForm"))
If form IsNot Nothing Then Atom.RemoveItem(form, "NeedAppearances")
doc.Save("...

PDF 2.0 Related Changes. In PDF 2.0 the 'true' setting for this property has been deprecated.

The logic is that documents should generate their own appearance streams rather than relying on the behavior of the viewer. There is truth in this, but also a problem - the generation of appearance streams is not defined in the specification - it inevitably varies between applications.

So the reality is that, without this flag, users may see a document which looks subtly different from the one they expect. Currently we leave this default as true so that users see the documents as they expect. If you require strict adherence to PDF 2.0 then you may wish to set it to false.

However since PDF 2.0 has deprecated this setting, the default value for this property is likely to change in the future. As such, if you are relying on a particular value you should set the property explicitly in your code.


XForm UseFieldScript Property. Whether the viewer should run JavaScript field calculations. ABCpdf .NET PDF Library.

UseFieldScript Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether the viewer should run JavaScript field calculations.

Notes

This property determines if JavaScript field calculations are executed.

Some PDF forms contain field JavaScript. This may be used to format field values, to add field values together, to ensure field values are consistent or to perform other form or field calculations.

By default these calculations will be run to ensure that the field values update in the way a user would expect. However by setting this property to false you can disable this behavior.


XHtmlOptions Object

Represents the current HTML rendering settings.

The properties of this object may be used to control the way that the Doc.AddImageUrl and Doc.AddImageHtml methods work.

The methods of this object operate on objects added using the the Doc.AddImageUrl and Doc.AddImageHtml methods. Some operations change the document. Others provide information about the content which has been added.

HTML documents can be imported using different HTML engines. The current supported ones are the MSHTML engine (used in Microsoft Internet Explorer) and a modified version of Mozilla Firefox's Gecko engine tailored to work with ABCpdf. Different engines interpret HTML documents in different ways and support a different set of HTML options, please see the Engine property for details.

System.Object
   WebSupergoo.ABCpdf12.XHtmlOptions

Method | Description
EndTasks | Ends any HTML Engine worker threads or processes.
GetHttpStatusCode | Retrieves the HTTP status code.
GetScriptReturn | Retrieves the client side onload script return value.
GetTagIDs | Gets an array of the HTML IDs of tagged visible items.
GetTagRects | Gets an array of the locations of tagged visible items.
GetTagUntransformedRects | Gets an array of the locations of tagged visible items before Doc.Transform is applied.
LinkDestinations | Convert a restricted selection of external links to internal links.
LinkPages | Convert external links to internal links wherever possible.
PageCacheClear | Clears the HTML page cache.
PageCachePurge | Purges the HTML page cache.
SetTheme | Specify whether to use Windows themes or not.

Property | Description
Engine | The engine to use for HTML import operations.
ForChrome | An object that provides access to only the HTML options supported by the ABCChrome engine.
ForMSHtml | An object that provides access to only the HTML options supported by the MSHTML engine.
ForGecko | An object that provides access to only the HTML options supported by the ABCGecko HTML engine.
ForWebKit | An object that provides access to only the HTML options supported by the ABCWebKit engine.
AddForms | Whether form fields should be live.
AddLinks | Whether hyperlinks should be live.
AddMovies | Whether active content such as movies should be added.
AddTags | Whether location of certain tags should be noted.
AddIDs | Whether HTML ID attributes should be tracked.
AddNames | Whether HTML name attributes should be tracked.
AdjustLayout | Whether HTML layout is checked and adjusted for optimal output to PDF.
AutoTruncate | Whether to automatically clip redundant content at the end of the page.
BaseURI | The base URL to use for all relative URLs in the page.
BreakMethod | The page break logic for HTML.
BreakZoneSize | The percentage of the current drawing area in which HTML breaks can occur.
BrowserWidth | The width of the virtual browser in pixels.
CoerceVector | The conditions under which to coerce a vector output.
ContentCount | The minimum number of content items required for a page to be valid.
DeactivateWebBrowser | Whether to deactivate the WebBrowser.
Throws Exceptions DisableVectorCoercion | The conditions under which to disable vector-output coercion.
DoMarkup | Whether HTML pages are marked up before conversion to PDF.
FireShield | The FireShield™ security settings to be applied to the ABCChrome engine.
FontEmbed | Whether fonts should be embedded rather than referenced.
FontProtection | Whether fonts should be protected.
FontSubset | Whether embedded fonts should be subsetted or not.
FontSubstitute | Whether font substitution should be used to reduce file size.
HideBackground | Whether to hide the background color of a page.
HostWebBrowser | Whether to host a WebBrowser control.
HtmlCallback | The multicast delegate to be called while HTML rendering is taking place.
HtmlEmbedCallback | The multicast delegate to be called when embedding an object while HTML rendering is taking place.
HttpAdditionalHeaders | Additional HTTP headers to send in the request.
IgnoreCertificateErrors | Whether to ignore certificate-related errors.
ImageQuality | The quality of compression acceptable for continuous tone images such as JPEGs.
ImprovePageBreakAvoid | Whether to improve the support for page-break-inside of avoid.
ImprovePageBreakInTable | Whether to improve the support for page break in table to prevent missing rows.
InitialWidth | The minimum width to be used for auto-sized pages.
LogonName | A user name to be used for authentication.
LogonPassword | A password to be used for authentication.
MakeFieldNamesUnique | Whether field names should be changed to make them unique.
MaxAtomicImageSize | The maximum size at which an image may be regarded as unbreakable.
Media | The CSS media type to use.
NoCookie | Whether to disable automatic cookies.
NoDefaultBackground | Whether to disable the default background color.
NoSnapRounding | Whether to disable the snap rounding of coordinates and lengths.
NoTheme | Whether themes should be disabled.
OnLoadScript | A script to be run after the page is loaded.
PageCacheEnabled | Whether the page cache should be searched before rendering the page.
PageCacheExpiry | The length of time that pages can be held in the cache (ms).
PageCacheSize | The number of pages that can be held in the cache.
Paged | Whether content should be rendered in multipaged format.
PageLoadMethod | The method for loading URI/HTML.
ProcessOptions | The options for new worker processes.
ReloadPage | Whether to reload page.
RepaintDelay | Minimum time to wait for the page to finish animation (ms).
RepaintTimeout | Maximum time to wait for the page to finish animation (ms).
RequestMethod | The request method for URL.
RetryCount | The number of times a page should be retried if unavailable or invalid.
TargetLinks | Whether hyperlinks should be allowed to open new windows.
Timeout | The maximum amount of time allowed for obtaining a page (ms).
TransferModule | The module for obtaining URI/HTML data.
UseActiveX | Whether to enable ActiveX.
UseJava | Whether to enable Java.
UseNoCache | Whether any proxy servers should re-request items of content.
UserAgent | The user-agent string.
UseResync | Whether to resynchronize pages.
UseProxyServer | Whether to use a proxy server.
UseScript | Whether to enable JavaScript and VBScript.
UseTheme | Whether to use themes.
UseVideo | Whether to enable Video.


XHtmlOptions EndTasks Function. Ends any HTML Engine worker threads or processes. ABCpdf .NET PDF Library.

EndTasks Method

Ends any HTML Engine worker threads or processes.

Syntax

[C#]
int EndTasks(TaskState condition)

[Visual Basic]
Function EndTasks(condition As TaskState) As Integer

Params
Name | Description
condition

The way in which to select threads or processes that should be ended. The TaskState enumeration may take the following values:

  • None — no thread or process is selected.
  • Idle — idle threads or processes are selected.
  • AllWhenBecomeIdle — all threads or processes are selected, and to busy threads or processes, the operation is applied only when they become idle.
  • All — all threads or processes are selected.
return | The number of selected threads or processes.

Notes

Use this method to end worker threads or processes for the HTML Engine. HTML Engine may be executed in separate threads or processes for isolation.

If condition specifies All, busy threads or processes will be ended immediately, and this may cause unexpected behavior in other threads of your application that depend on the busy threads or processes.


XHtmlOptions GetHttpStatusCode Function. Retrieves the HTTP status code. ABCpdf .NET PDF Library.

GetHttpStatusCode Method

Retrieves the HTTP status code.

Syntax

[C#]
int GetHttpStatusCode(int id)

[Visual Basic]
Function GetHttpStatusCode(id As Integer) As Integer

Params
Name | Description
id | The Object ID of the web page to be accessed.
return | The HTTP status code or zero if not available.

Notes

Use this method to retrieve the HTTP status code if the URL uses the HTTP protocol.

The ID should be obtained from a call to Doc.AddImageUrl.

If the PageLoadMethod property is WebBrowserNavigate, only error status codes are available. Non-error status codes, such as 200, are not available.


XHtmlOptions GetScriptReturn Function. Retrieves the client side onload script return value. ABCpdf .NET PDF Library.

GetScriptReturn Method

Retrieves the client side onload script return value.

Syntax

[C#]
string GetScriptReturn(int id)

[Visual Basic]
Function GetScriptReturn(id As Integer) As String

Params
Name | Description
id | The Object ID of the web page to be accessed.
return | The return value.

Notes

Use this method to retrieve the client side onload script return value.

The ID should be obtained from a call to Doc.AddImageUrl or Doc.AddImageHtml.

See the OnLoadScript property for further details.

Example

See the UseScript property.


XHtmlOptions GetTagIDs Function. Gets an array of the HTML IDs of tagged visible items. ABCpdf .NET PDF Library.

GetTagIDs Function

Gets an array of the HTML IDs of tagged visible items.

Syntax

[C#]
string[] GetTagIDs(int id)

[Visual Basic]
Function GetTagIDs(id As Integer) As String()

Params
Name | Description
id | The Object ID of the object.
return | The IDs of tagged visible HTML objects.

Notes

Use this method to retrieve the HTML IDs of tagged visible items.

To use this method you need to enable the tagging functionality. See the AddTags property for details.

This function takes an ID obtained from a call to Doc.AddImageUrl, Doc.AddImageHtml or Doc.AddImageToChain and returns the IDs of any items which are visible on the PDF page as a result of that call.

For example the ID associated with the following paragraph is "p1".

<p id="p1" style="abcpdf-tag-visible: true">Gallia est omnis divisa in partes tres.<p>

The IDs may be repeated if the objects are split over more than one area.

The IDs match up directly on a one-to-one basis with the XRects returned by the GetTagRects or the GetTagUntransformedRects function.

Example

See the GetTagRects method.


XHtmlOptions GetTagRects Function. Gets an array of the locations of tagged visible items. ABCpdf .NET PDF Library.

GetTagRects Function

Gets an array of the locations of tagged visible items.

Syntax

[C#]
XRect[] GetTagRects(int id)

[Visual Basic]
Function GetTagRects(id As Integer) As XRect()

Params
Name | Description
id | The Object ID of the object.
return | The location of tagged visible HTML objects.

Notes

Use this method to retrieve the locations of tagged visible items. The locations are to be used with Doc.Transform being identity.

To use this method you need to enable the tagging functionality. See the AddTags property for details.

This function takes an ID obtained from a call to Doc.AddImageUrl, Doc.AddImageHtml or Doc.AddImageToChain and returns the locations of any items which are visible on the PDF page as a result of that call.

The locations match up directly on a one-to-one basis with the IDs returned by the GetTagIDs function.

Example

The following example shows the effect that this parameter has on HTML rendering.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Inset(100, 100);
  doc.Rect.Top = 700;
  doc.HtmlOptions.Engine = EngineType.Chrome86;
  doc.HtmlOptions.AddTags = true;
  // The ABCGecko and MSHTML tagging format uses styles.
  string html1 = "<!DOCTYPE html><html><head>" +
    "<style type='text/css'>" +
    ".tag-visible { abcpdf-tag-visible:true; outline: 1px solid transparent; font-size: 72pt; }" +
    "</style>" +
    "</head><body>" +
    "<p id='p1' class='tag-visible'>Gallia est omnis divisa in partes tres.</p>" +
    "</body></html>";
  // The ABCChrome tagging format uses attributes.
  string html2 = "<!DOCTYPE html><html><head>" +
    "<style type='text/css'>" +
    "p { font-size: 72pt; }" +
    "</style>" +
    "</head><body>" +
    "<p id='p1' abcpdf-tag-visible>Gallia est omnis divisa in partes tres.</p>" +
    "</body></html>";
  string html = doc.HtmlOptions.Engine != EngineType.Chrome86 ? html1 : html2;
  int id = doc.AddImageHtml(html);
  // Frame location of the tagged element
  XRect[] tagRects = doc.HtmlOptions.GetTagRects(id);
  foreach (XRect theRect in tagRects) {
    doc.Rect.String = theRect.ToString();
    doc.FrameRect();
  }
  // Output tag ID
  string[] tagIds = doc.HtmlOptions.GetTagIDs(id);
  doc.Rect.String = doc.MediaBox.String;
  doc.Rect.Inset(20, 20);
  doc.FontSize = 64;
  doc.Color.String = "255 0 0";
  doc.AddText($"Tag ID \"{tagIds[0]}\":");
  // Save the document
  doc.Save(Server.MapPath("HtmlOptionsGetTagRects.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Inset(100, 100)
  doc.Rect.Top = 700
  doc.HtmlOptions.Engine = EngineType.Chrome86
  doc.HtmlOptions.AddTags = True
  ' The ABCGecko and MSHTML tagging format uses styles.
  Dim html1 As String = "<!DOCTYPE html><html><head>" + "<style type='text/css'>" + ".tag-visible { abcpdf-tag-visible:true; outline: 1px solid transparent; font-size: 72pt; }" + "</style>" + "</head><body>" + "<p id='p1' class='tag-visible'>Gallia est omnis divisa in partes tres.</p>" + "</body></html>"
  ' The ABCChrome tagging format uses attributes.
  Dim html2 As String = "<!DOCTYPE html><html><head>" + "<style type='text/css'>" + "p { font-size: 72pt; }" + "</style>" + "</head><body>" + "<p id='p1' abcpdf-tag-visible>Gallia est omnis divisa in partes tres.</p>" + "</body></html>"
  Dim html As String = If(doc.HtmlOptions.Engine <> EngineType.Chrome86, html1, html2)
  Dim id As Integer = doc.AddImageHtml(html)
  ' Frame location of the tagged element
  Dim tagRects As XRect() = doc.HtmlOptions.GetTagRects(id)
  For Each theRect As XRect In tagRects
    doc.Rect.String = theRect.ToString()
    doc.FrameRect()
  Next
  ' Output tag ID
  Dim tagIds As String() = doc.HtmlOptions.GetTagIDs(id)
  doc.Rect.String = doc.MediaBox.[String]
  doc.Rect.Inset(20, 20)
  doc.FontSize = 64
  doc.Color.String = "255 0 0"
  doc.AddText($"Tag ID ""{tagIds[0]}"":")
  ' Save the document
  doc.Save(Server.MapPath("HtmlOptionsGetTagRects.pdf"))
End Using

HtmlOptionsGetTagRects.pdf


XHtmlOptions GetTagUntransformedRects Function. Gets an array of the locations of tagged visible items before Doc.Transform is applied. ABCpdf .NET PDF Library.

GetTagUntransformedRects Function

Gets an array of the locations of tagged visible items before Doc.Transform is applied.

Syntax

[C#]
XRect[] GetTagUntransformedRects(int id)

[Visual Basic]
Function GetTagUntransformedRects(id As Integer) As XRect()

Params
Name | Description
id | The Object ID of the object.
return | The location (before Doc.Transform is applied) of tagged visible HTML objects.

Notes

Use this method to retrieve the locations of tagged visible items. The locations are to be used with the value of Doc.Transform the same as when the ID is obtained.

To use this method you need to enable the tagging functionality. See the AddTags property for details.

This function takes an ID obtained from a call to Doc.AddImageUrl, Doc.AddImageHtml or Doc.AddImageToChain and returns the locations of any items which are visible on the PDF page as a result of that call.

The locations match up directly on a one-to-one basis with the IDs returned by the GetTagIDs function.

Example

See the GetTagRects method.


XHtmlOptions LinkDestinations Function. Convert a restricted selection of external links to internal links. ABCpdf .NET PDF Library.

LinkDestinations Method

Convert a restricted selection of external links to internal links.

Syntax

[C#]
int LinkDestinations(IEnumerable<int> ids)
int LinkDestinations(IEnumerable<int> linkIDs, IEnumerable<int> destIDs, bool linkPages)
[Visual Basic]
Sub LinkDestinations(ids As IEnumerable(Of Integer))
Sub LinkDestinations(linkIDs As IEnumerable(Of Integer), destIDs As IEnumerable(Of Integer), linkPages As Boolean)

Params
Name | Description
ids | Specifies both linkIDs and destIDs.
linkIDs | The list of IDs of view objects containing links (anchor tags with href attributes).
destIDs | The list of IDs of view objects containing destinations (anchor tags with name attributes).
linkPages | Whether links pointing to the URLs of HTML pages (URLs without fragments) are converted to internal links. The default value is false.
return | The number of links converted.

Notes

This method scans the view objects specified in linkIDs converting external links to internal links where the destinations are found in the view objects specified in destIDs. It is similar to the LinkPages method but allows you to restrict the conversion to lists of view objects.

By default, links in rendered HTML are preserved as is. This means that links in a web page link to external URLs. When you click on them, a browser window will be launched and the original target of the link displayed.

In some situations, you may wish to resolve links within the document so that they take you between pages in the PDF rather than launching an external browser window.

For example, you might add a number of web pages which contain links to each other. Rather than linking to the pages on the original web site, you might like to resolve the links so that they point at the pages as they now appear in the PDF.

Similarly, if you use named destinations (HTML fragments) with links within the document, you will may wish to use this method to convert them from external links to internal ones.

Example

This example shows how to import an HTML page which uses named destinations.

We first create a Doc object and inset the edges a little so that the HTML will appear in the middle of the page. We assign the appropriate HTML options so that links will be rendered live.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Inset(18, 18);
  doc.HtmlOptions.AddLinks = true;

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Inset(18, 18)
  doc.HtmlOptions.AddLinks = True

We add the pages to the document.

[C#]

  List<int> theList = new List<int>();
  int theID = doc.AddImageUrl("http://www.websupergoo.com/support.htm");
  while (true) {
    theList.Add(theID);
    if (!doc.Chainable(theID))
      break;
    doc.Page = doc.AddPage();
    theID = doc.AddImageToChain(theID);
  }

[Visual Basic]
  Dim theList As New List(Of Integer)()
  Dim theID As Integer = doc.AddImageUrl("http://www.websupergoo.com/support.htm")
  While True
    theList.Add(theID)
    If Not doc.Chainable(theID) Then
      Exit While
    End If
    doc.Page = doc.AddPage()
    theID = doc.AddImageToChain(theID)
  End While

The URL we've referenced makes extensive use of named destinations. We want these named destination links to take us between pages on the PDF rather than taking us to the original URL.

After adding the pages, we can flatten them. We can't do this until after the pages have been added because flattening will invalidate our previous ID and break the chain.

[C#]

  doc.HtmlOptions.LinkDestinations(theList);
  for (int i = 1; i <= doc.PageCount; i++) {
    doc.PageNumber = i;
    doc.Flatten();
  }

[Visual Basic]
  doc.HtmlOptions.LinkDestinations(theList)
  Dim i As Integer = 1
  While i <= doc.PageCount
    doc.PageNumber = i
    doc.Flatten()
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While

Finally, we save.

[C#]

  doc.Save(Server.MapPath("linkpages.pdf"));
}

[Visual Basic]
  doc.Save(Server.MapPath("linkpages.pdf"))
End Using

We get the following output. The links work within the PDF.

linkpages.pdf [Page 1]
linkpages.pdf [Page 2]


XHtmlOptions LinkPages Function. Convert external links to internal links wherever possible. ABCpdf .NET PDF Library.

LinkPages Method

Convert external links to internal links wherever possible.

Syntax

[C#]
void LinkPages()
void LinkPages(bool inPageNavigation)

[Visual Basic]
Sub LinkPages()
Sub LinkPages(inPageNavigation as Boolean)

Params
Name | Description
inPageNavigation | If true then links will target particular locations on the destination page, if false then they will target just the page. Default false.
return | n/a.

Notes

This method scans the entire document converting external links to internal links wherever possible. As an alternative you can restrict the scope of the conversion by using the LinkDestinations method.

By default, links in rendered HTML are preserved as is. This means that links in a web page link to external URLs. When you click on them, a browser window will be launched and the original target of the link displayed.

In some situations, you may wish to resolve links within the document so that they take you between pages in the PDF rather than launching an external browser window.

For example, you might add a number of web pages which contain links to each other. Rather than linking to the pages on the original web site, you might like to resolve the links so that they point at the pages as they now appear in the PDF.

Similarly, if you use named destinations (HTML fragments) with links within the document, you will may wish to use this method to convert them from external links to internal ones. If you do this you will probably want to set the AddIDs and AddNames properties to true to ensure that this type of fragment destination is tracked.

Example

This example shows how to import an HTML page which uses named destinations.

We first create a Doc object and inset the edges a little so that the HTML will appear in the middle of the page. We assign the appropriate HTML options so that links will be rendered live.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Inset(18, 18);
  doc.HtmlOptions.AddLinks = true;

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Inset(18, 18)
  doc.HtmlOptions.AddLinks = True

We add the pages to the document.

[C#]

  int theID = doc.AddImageUrl("http://www.websupergoo.com/support.htm");
  while (true) {
    if (!doc.Chainable(theID))
      break;
    doc.Page = doc.AddPage();
    theID = doc.AddImageToChain(theID);
  }

[Visual Basic]
  Dim theID As Integer = doc.AddImageUrl("http://www.websupergoo.com/support.htm")
  While True
    If Not doc.Chainable(theID) Then
      Exit While
    End If
    doc.Page = doc.AddPage()
    theID = doc.AddImageToChain(theID)
  End While

The URL we've referenced makes extensive use of named destinations. We want these named destination links to take us between pages on the PDF rather than taking us to the original URL.

After adding the pages, we can flatten them. We can't do this until after the pages have been added because flattening will invalidate our previous ID and break the chain.

[C#]

  doc.HtmlOptions.LinkPages();
  for (int i = 1; i <= doc.PageCount; i++) {
    doc.PageNumber = i;
    doc.Flatten();
  }

[Visual Basic]
  doc.HtmlOptions.LinkPages()
  Dim i As Integer = 1
  While i <= doc.PageCount
    doc.PageNumber = i
    doc.Flatten()
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While

Finally, we save.

[C#]

  doc.Save(Server.MapPath("linkpages.pdf"));
}

[Visual Basic]
  doc.Save(Server.MapPath("linkpages.pdf"))
End Using

We get the following output. The links work – where possible – within the PDF.

linkpages.pdf [Page 1]
linkpages.pdf [Page 2]


XHtmlOptions PageCacheClear Function. Clears the HTML page cache. ABCpdf .NET PDF Library.

PageCacheClear Method

Clears the HTML page cache.

Syntax

[C#]
void PageCacheClear()

[Visual Basic]
Sub PageCacheClear()

Params
Name | Description
return | n/a.

Notes

ABCpdf holds a cache of recently requested URLs and it's only after five minutes or so that these pages expire from the cache.

This results in a considerable degree of optimization for many common operations.

You can clear the cache of all pages by calling this method.


XHtmlOptions PageCachePurge Function. Purges the HTML page cache. ABCpdf .NET PDF Library.

PageCachePurge Method

Purges the HTML page cache.

Syntax

[C#]
void PageCachePurge()

[Visual Basic]
Sub PageCachePurge()

Params
Name | Description
return | n/a.

Notes

ABCpdf holds a cache of recently requested URLs and it's only after five minutes or so that these pages expire from the cache.

This results in a considerable degree of optimization for many common operations.

You can clear the cache of all expired pages by calling this method.


XHtmlOptions SetTheme Function. Specify whether to use Windows themes or not. ABCpdf .NET PDF Library.

SetTheme Function

Specify whether to use Windows themes or not.

Syntax

[C#]
void SetTheme(bool useTheme)
void SetTheme(bool useTheme, bool noTheme)

[Visual Basic]
Sub SetTheme(useTheme As Boolean)
Sub SetTheme(useTheme As Boolean, noTheme As Boolean)

Params
Name | Description
useTheme | Whether to use the current theme.
noTheme | Whether not to use the current theme. The default value is the negation of useTheme.

Notes

Sets the values of UseTheme and NoTheme. You will generally want to use the function which accepts only one parameter.

The theme is only relevant if you are using the MSHTML engine for IE9 or earlier. As such it is likely that this function will be deprecated in future releases of ABCpdf.

The theme is the user interface design for text boxes, buttons, combo boxes and other interactive features which may be found on web pages. Different versions of Windows have different themes. If you do not use the current theme (typically Windows XP/Aero Glass) you will get the default Windows 95 appearances.

The fact that you can set two different values is a reflection of the fact that these two inputs correspond to the Windows flags DOCHOSTUIFLAG_THEME and DOCHOSTUIFLAG_NOTHEME respectively. While there seems little point in setting both to the same boolean value, the fact that Windows allow it is why it is reflected in this function call. If UseTheme and NoTheme are the same no theme is applied.


XHtmlOptions Engine Property. The engine to use for HTML import operations. ABCpdf .NET PDF Library.

Engine Property

Type | Default Value | Read Only | Description
[C#] EngineType [Visual Basic] EngineType | Chrome86 | No | The engine to use for HTML import operations.

Notes

This property specifies the HTML engine to use when importing HTML pages.

The EngineType enumeration can take any of the following values:

  • Chrome86
  • Chrome65 (available in the MSI installer and as a separate NuGet package)
  • Gecko (available in the MSI installer and as a separate NuGet package)
  • WebKit (available in the MSI installer and as a separate NuGet package)
  • MSHtml (part of the Windows OS)

Each HTML engine supports a different subset of HtmlOptions methods and properties. You can use one of the filter objects: ForChrome, ForGecko, ForWebKit and ForMSHtml to filter the supported options in your IDE.

Characteristics of the ABCChrome Engines:

  • It requires Windows 2008 R2 / Windows 7 or later. It runs only on x64 systems.
  • The engine is an independent component. It will not be affected even if you upgrade your Internet Explorer or local Chrome installation.
  • It is generally faster than the other engines, producing smaller PDFs.
  • It supports a wide range of the HTML5 and CSS3 standards.
  • It supports the majority of the SVG Full profile.
  • It supports web fonts, Font Awesome and similar dynamic font technologies.
  • Fonts are always embedded and are never substituted.
  • It supports dynamic and AJAX pages including content like animated graphs and maps.
  • It supports increased security via a variety of technologies including FireShield.
  • It is better at handling very large web pages or chunks of HTML.
  • You can specify print or screen style sheets through the use of the Media property.
  • In large tables that span across pages, table headers and footers are repeated across pages. The ABCGecko engine handles complex nested headers and footers better, but most pages are not that complex.
  • The rendered HTML will always fill the entire current rectangle. After the initial call to Doc.AddImageUrl or Doc.AddImageHtml, the page height will be fixed at that point. Subsequent pages rendered using Doc.AddImageToChain will be automatically scaled (instead of having the contents reflowed) to fit in the current rectangle.
  • ActiveX components are not supported.
  • The Paged property is always assumed to be true.
  • It doesn't check for blank pages and doesn't throw blank page exceptions.
  • It doesn't support Flash movies.

The default ABCChrome representation involves an overhead of about 120 bytes per page. In most situations this is irrelevant but for documents with large numbers of pages, you may wish to eliminate it by calling Page.StampFormXObjects(true) for each page in the document.

Similarly, while font embedding is generally a good idea, it does slightly increase the size of the output. A typical overhead is in the region of 50KB per document, so in most cases this is a tiny part of a much bigger whole. However if you are dealing with very small documents of only a few KB in size, it can become significant. If this is the case you can use the ReduceSizeOperation or FontUnembedment project to remove fonts which have been embedded.

ABCpdf Version 11.0 shipped with ABCChrome 59. Version 11.2 ships with ABCChrome 65. Version 12.0 ships with ABCChrome 86. The core improvements in 65 relates to better handling of repeated headers and footers in tables using the thead and tfoot tags. The way that transparent images are displayed is much improved. There have been minor improvements in text kerning and layout - you should note that these can lead to subtly different line breaking. JavaScript redirects between local files (ie 'file://' protocol URLs) on your machine have been disabled for security reasons. ABCChrome 86 introduces a raft of security measures designed to make your development more secure.

Characteristics of the ABCGecko Engine:

  • The ABCGecko engine is a component independent of other parts of the Operating System. It will not be affected even if you upgrade your Internet Explorer or another local Firefox installation.
  • It supports a wide range of the HTML5 and CSS3 standards.
  • It supports the majority of the SVG Full profile. SVG graphics embedded inside Web pages convert natively to PDF primitives. Alternatively, you can specify the a SVG file's location in Doc.AddImageUrl or provide a string of SVG contents to Doc.AddImageHtml to have it converted to PDF using the Gecko engine.
  • It supports XML pages with XSLT and MathML.
  • You can specify which set of style sheets to use (Print/Screen) through the use of the Media property.
  • In large tables that span across pages, thead and tfoot elements are repeated across different pages properly.
  • The rendered HTML will always fill the entire current rectangle. After the initial call to Doc.AddImageUrl or Doc.AddImageHtml, the page height will be fixed at that point. Subsequent pages rendered using Doc.AddImageToChain will be automatically scaled (instead of having the contents reflowed) to fit in the current rectangle as much as possible.
  • ActiveX components are not supported.
  • The Paged property is always assumed to be true.
  • The Gecko engine does not use Page caching. This means that your rendered PDF is never stored in a memory cache.
  • On the other hand, Web caching is used to store contents downloaded over the Internet and is configurable using with the UseNoCache property.
  • JavaScript in OnLoadScript cannot directly modify the document object. For example, document.write("hello world"); would not work. Most of the time, you can work around to get your desired effect by indirectly modifying elements on the page, such as document.body.innerHTML = "hello world";
  • The use of OnLoadScript does not require UseScript. You are free to use JavaScript to customize the page without allowing JavaScript execution in the HTML.

Gecko configuration...

The ABCGecko engine contains a number of preferences that can be configured. There are a set of .js files in the "XULRunner??_?\defaults\pref" folder that are loaded in alphabetical order when it starts. Each file contains a set of preferences. So by adding your own .js file to this folder, you can add in your own settings.

If you are not familiar with the format of these files, you may find it easier to copy a configuration file from Firefox:

  • View the URI "about:config" in Firefox.
  • Modify the configuration as usual.
  • Close Firefox. The configuration is saved to the file only when Firefox is completely closed.
  • See the Path value in %APPDATA\Mozilla\Firefox\profile.ini. For example, the value may be Profiles/sx4fgjw2.default.
  • Copy prefs.js in the folder pointed to by the Path value (relative to the path of profile.ini) to:
    • XULRunner??_?\defaults\pref. The preferences are considered to be set by the software developer. For example, copy C:\Users\<user>\AppData\Roaming\Mozilla\Firefox\Profiles\sx4fgjw2.default\prefs.js to XULRunner??_?\defaults\pref.
    • some place outside of XULRunner??_? and set the file path (including the file name) to the GeckoPrefFile registry value. The preferences are considered to be set by the end user. See below for the differences between preferences set by the end user and those set by the software developer.
  • Do not delete or change the first line in prefs.js. You need only the lines relevant for your configuration change. You can delete other irrelevant lines.

Preferences set by the end user are in the JavaScript file whose path is assigned to the GeckoPrefFile registry value. (Registry values can alternatively be specified in web.config or app.config.) The file is loaded after all JavaScript files in "XULRunner??_?\defaults\pref", so user-set preferences take precedence. Some preferences are in effect only when set by the end user. Here is an incomplete list of such preferences:

Preference in effect only if it is set by the end user | Default Value | Description
intl.accept_languages | "en-US, en" | The order of languages of the fonts to search when the specified font does not support a character. The Gecko engine appends to the list the ones that are missing in the following in order ja, ko, zh-CN, zh-HK, zh-TW. For example, without specifying this preference, a piece of simplified Chinese text (in a Latin font) may be imported in multiple fonts because some characters are supported by Japanese fonts and some are not.

Additional supported settings:

Preference | Default Value
print.print_shrink_to_fit | true
print.print_scaling | "1"

Characteristics of the ABCWebKit Engine

Important Note. The ABCWebKit engine should only be used in very special situations. Read carefully and enable this engine at your own risk.

The LGPL under which this module is released requires that you be able to swap different versions in and out and that means that we cannot necessarily ensure that the module you have is even the one you think it is. We sign the engine and check the signature but if you disable this feature to allow use of a different version then you also disable large amounts of security.

For example we have added FireShield™ security to the default ABCWebKit engine. It is strongly recommended that you set the FireShield policy to Deny or Mask and add minimal allowable paths to the FireShield rules. Without FireShield, ABCWebKit is outside the sandbox so any malicious code it might contain is contained within the security environment for the spawned process - but no more than that. FireShield is only loaded if the Policy is not None and if there are rules to apply.

The ABCWebKit engine is based on technology from 2012. It does not support modern HTML correctly and it contains known security flaws. It is only really suitable for use if you have complete control over the inputs you provide to it. Under no circumstances should you allow untrusted URLs or HTML to be provided to this engine. While FireShield provides a good level of defense relating to file access, innovative attackers can find ways to use your machines even if they do not have access to the file system.

You can read more about this here: https://wkhtmltopdf.org/

The ABCWebKit engine, first shipped with ABCpdf 12.1, is by no means as full featured or secure as the other engines. However it is much less dependent on the OS and as a result it can often operate on stripped down systems such as those used in Azure. The characteristics are

  • It will run as an App Service on Azure (it is 64-bit so B1 and higher).
  • Security is low to non-existent so you must have complete control over your input HTML or URLs.
  • It is based on Qt 4 which ended support in 2015. WebKit itself was last updated in 2012.
  • HTML support is fragile in the face of real world or modern HTML.
  • Technologies outside of HTML - web fonts, charts, maps etc - are unlikely to work.
  • Screen and print media types work only for simple queries.
  • Repeated headers and footers in tables work only for simple structures.
  • Errors are often manifested as blank output rather than exceptions.

This engine is based on WkHtmlToPdf which in turn is based on QtWebKit API. So if you do get unexpected output you may wish to check how the HTML renders in the Qt Web Browser.

If you should wish to use your own custom wkhtmltopdf engine with ABCpdf you will need to change the value for ABCWebKitDisableFileCheck.

For unusual fonts you can often use an SVG version of the font instead. However because these are SVG rather than a "real" fonts it is not possible to search or copy and paste. You can make SVG fonts on sites like https://transfonter.org/.

While ABCWebKit will work on Azure, you should note that Azure provides a rather stripped down OS notably light on resources like fonts. Security may be locked down tightly which may stop you using features like FireShield. For these reasons, the behavior and output you get on your local machine may be different from that you get on your Azure platform.

Characteristics of the MSHtml Engine

Important Note. The MSHtml engine is only supported for backwards compatibility. Read carefully before enabling this engine.

There is no sandboxing and little security for this engine because it runs in-process. Behavior is reasonably safe because the core technologies are installed on your machine by Microsoft. However because they are installed by Microsoft they may vary between machines.

The engine is based on Internet Explorer components that come with Windows. The lifecycle policy from Microsoft is that these form part of the OS and thus if your OS is supported then your IE installation is supported. You need IE 9 at minimum.

However the last version of IE was released in 2012 and the Microsoft policy is to move forward with Microsoft Edge rather than Internet Explorer. So you need to be realistic about how much effort Microsoft is going to put into these components.
  • The Screen style sheets are used during the rendering process.
  • Page heights can vary across different pages. Segments of the HTML document are composed dynamically to fit the target rectangle as accurately as possible during each call to Doc.AddImageToChain. This means the target rectangle will be filled with more contents for larger target rectangles instead of scaled to fit.
  • For definite control of HTTP requests, you should set TransferModule to a non-default value.
  • The Doc.Rect can be zero width or height to allow the page to auto-size.

Internet Explorer configuration...

The Fusion Log Viewer is known to interfere with the initialization of the MSHtml engine. If any problem arises, try disabling it or specify a local custom log path.

Currently, there are some limitations when using the MSHtml engine hosted out-of-process (See MSHtmlBootstrap):

  • The HtmlCallback property is not supported.
  • The HtmlEmbedCallback property is not supported.


XHtmlOptions ForChrome Property. An object that provides access to only the HTML options supported by the ABCChrome engine. ABCpdf .NET PDF Library.

ForChrome Property

Type | Default Value | Read Only | Description
[C#] IHtmlChromeOptions [Visual Basic] IHtmlChromeOptions | n/a | Yes | An object that provides access to only the HTML options supported by the ABCChrome engine.

Notes

The HTML options supported by the ABCChrome engine.

Supported methods

  • EndTasks
  • GetHttpStatusCode
  • GetScriptReturn
  • GetTagIDs
  • GetTagRects
  • GetTagUntransformedRects
  • LinkPages

Supported properties

  • AddForms
  • AddLinks
  • AddTags
  • AddIDs
  • AddNames
  • BaseURI
  • BrowserWidth
  • FireShield
  • HideBackground
  • InitialWidth
  • IgnoreCertificateErrors
  • Media
  • OnLoadScript
  • ProcessOptions
  • RepaintDelay
  • RepaintTimeout
  • RetryCount
  • Timeout
  • UseScript
  • UseProxyServer

Example

[C#]

using (Doc doc = new Doc()) {
  doc.HtmlOptions.Engine = EngineType.Chrome86;
  doc.HtmlOptions.ForChrome.AddLinks = true;

  // You can store a reference to the filter to reduce code repetition
  IHtmlChromeOptions options = doc.HtmlOptions.ForChrome;

  options.UseScript = false;
  options.AddTags = true;

  doc.AddImageUrl("http://www.websupergoo.com");
  doc.Save(Server.MapPath("wsg.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.HtmlOptions.Engine = EngineType.Chrome86
  doc.HtmlOptions.ForChrome.AddLinks = True

  ' You can store a reference to the filter to reduce code repetition
  Dim options As IHtmlChromeOptions = doc.HtmlOptions.ForChrome

  options.UseScript = False
  options.AddTags = True

  doc.AddImageUrl("http://www.websupergoo.com")
  doc.Save(Server.MapPath("wsg.pdf"))
End Using


XHtmlOptions ForMSHtml Property. An object that provides access to only the HTML options supported by the MSHTML engine. ABCpdf .NET PDF Library.

ForMSHtml Property

Type | Default Value | Read Only | Description
[C#] IHtmlMSHtmlOptions [Visual Basic] IHtmlMSHtmlOptions | n/a | Yes | An object that provides access to only the HTML options supported by the MSHTML engine.

Notes

The HTML options supported by the MSHTML engine.

Supported methods

  • GetHttpStatusCode
  • GetScriptReturn
  • GetTagIDs
  • GetTagRects
  • GetTagUntransformedRects
  • LinkDestinations
  • LinkPages
  • PageCacheClear
  • PageCachePurge
  • SetTheme

Supported properties

  • AddForms
  • AddLinks
  • AddMovies
  • AddTags
  • AdjustLayout
  • AutoTruncate
  • BreakMethod
  • BreakZoneSize
  • BrowserWidth
  • CoerceVector
  • ContentCount
  • DeactivateWebBrowser
  • DisableVectorCoercion
  • DoMarkup
  • FontEmbed
  • FontProtection
  • FontSubset
  • FontSubstitute
  • HideBackground
  • HostWebBrowser
  • HtmlCallback
  • HtmlEmbedCallback
  • HttpAdditionalHeaders
  • ImageQuality
  • InitialWidth
  • LogonName
  • LogonPassword
  • MakeFieldNamesUnique
  • MaxAtomicImageSize
  • NoCookie
  • NoTheme
  • OnLoadScript
  • PageCacheEnabled
  • PageCacheExpiry
  • PageCacheSize
  • Paged
  • PageLoadMethod
  • ProcessOptions (See MSHtmlBootstrap)
  • ReloadPage
  • RequestMethod
  • RetryCount
  • TargetLinks
  • Timeout
  • TransferModule
  • UseActiveX
  • UseJava
  • UseNoCache
  • UserAgent
  • UseResync
  • UseScript
  • UseTheme
  • UseVideo

Example

[C#]

using (Doc doc = new Doc()) {
  doc.HtmlOptions.Engine = EngineType.MSHtml;
  doc.HtmlOptions.ForMSHtml.AddLinks = true;

  // You can store a reference to the filter to reduce code repetition
  IHtmlMSHtmlOptions options = doc.HtmlOptions.ForMSHtml;

  options.UseActiveX = true;
  options.AutoTruncate = true;

  doc.AddImageUrl("http://www.websupergoo.com");
  doc.Save(Server.MapPath("wsg.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.HtmlOptions.Engine = EngineType.MSHtml
  doc.HtmlOptions.ForMSHtml.AddLinks = True

  ' You can store a reference to the filter to reduce code repetition
  Dim options As IHtmlMSHtmlOptions = doc.HtmlOptions.ForMSHtml

  options.UseActiveX = True
  options.AutoTruncate = True

  doc.AddImageUrl("http://www.websupergoo.com")
  doc.Save(Server.MapPath("wsg.pdf"))
End Using


XHtmlOptions ForGecko Property. An object that provides access to only the HTML options supported by the Gecko HTML engine. ABCpdf .NET PDF Library.

ForGecko Property

Type | Default Value | Read Only | Description
[C#] IHtmlGeckoOptions [Visual Basic] IHtmlGeckoOptions | n/a | Yes | An object that provides access to only the HTML options supported by the Gecko HTML engine.

Notes

The HTML options supported by the ABCGecko HTML engine.

Supported methods

  • GetGeckoVersion — also initializes the Gecko engine.
  • EndTasks
  • GetHttpStatusCode
  • GetScriptReturn
  • GetTagIDs
  • GetTagRects
  • GetTagUntransformedRects
  • LinkDestinations
  • LinkPages

Supported properties

  • AddForms
  • AddLinks
  • AddMovies (Flash only)
  • AddTags
  • BrowserWidth
  • ContentCount
  • FontEmbed
  • FontSubset
  • FontSubstitute
  • FontProtection
  • HideBackground
  • ImageQuality
  • ImprovePageBreakAvoid
  • ImprovePageBreakInTable
  • InitialWidth
  • LogonName
  • LogonPassword
  • MakeFieldNamesUnique
  • Media
  • NoDefaultBackground
  • NoSnapRounding
  • OnLoadScript
  • ProcessOptions
  • RequestMethod
  • RetryCount
  • Timeout
  • UseNoCache
  • UseScript

The HttpAdditionalHeaders property is supported under some circumstances but because these are unusual it is not included in this interface. For details see the documentation for this property.

Example

[C#]

using (Doc doc = new Doc()) {
  doc.HtmlOptions.Engine = EngineType.Gecko;
  doc.HtmlOptions.ForGecko.AddLinks = true;

  // You can store a reference to the filter to reduce code repetition
  IHtmlGeckoOptions options = doc.HtmlOptions.ForGecko;

  options.AddLinks = true;

  doc.AddImageUrl("http://www.websupergoo.com");
  doc.Save(Server.MapPath("wsg.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.HtmlOptions.Engine = EngineType.Gecko
  doc.HtmlOptions.ForGecko.AddLinks = True

  ' You can store a reference to the filter to reduce code repetition
  Dim options As IHtmlGeckoOptions = doc.HtmlOptions.ForGecko

  options.AddLinks = True

  doc.AddImageUrl("http://www.websupergoo.com")
  doc.Save(Server.MapPath("wsg.pdf"))
End Using


XHtmlOptions ForWebKit Property. An object that provides access to only the HTML options supported by the ABCWebKit engine. ABCpdf .NET PDF Library.

ForWebKit Property

Type | Default Value | Read Only | Description
[C#] IHtmlWebKitOptions [Visual Basic] IHtmlWebKitOptions | n/a | Yes | An object that provides access to only the HTML options supported by the ABCWebKit engine.

Notes

The HTML options supported by the ABCWebKit engine.

Supported methods

  • EndTasks

Supported properties

  • AddLinks
  • BrowserWidth
  • FireShield
  • HideBackground
  • Media
  • OnLoadScript
  • ProcessOptions
  • RepaintTimeout [but not RepaintDelay]
  • RetryCount
  • Timeout
  • UseScript

Example

[C#]

using (Doc doc = new Doc()) {
  doc.HtmlOptions.Engine = EngineType.WebKit;
  doc.HtmlOptions.ForWebKit.AddLinks = true;

  // You can store a reference to the filter to reduce code repetition
  IHtmlWebKitOptions options = doc.HtmlOptions.ForWebKit;

  options.UseScript = false;

  doc.AddImageUrl("http://www.websupergoo.com");
  doc.Save(Server.MapPath("wsg.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.HtmlOptions.Engine = EngineType.WebKit
  doc.HtmlOptions.ForWebKit.AddLinks = True

  ' You can store a reference to the filter to reduce code repetition
  Dim options As IHtmlWebKitOptions = doc.HtmlOptions.ForWebKit

  options.UseScript = False

  doc.AddImageUrl("http://www.websupergoo.com")
  doc.Save(Server.MapPath("wsg.pdf"))
End Using


XHtmlOptions AddForms Property. Whether form fields should be live. ABCpdf .NET PDF Library.

AddForms Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether form fields should be live.

Notes

This property determines whether form fields in HTML are reproduced as form fields in the final PDF output.

Form fields in PDF do not work exactly the same as form fields in HTML so while the results will be similar they may not be identical.

The ABCChrome engine relies on JavaScript for this feature, so if you set the UseScript property to false, it will cease to operate.

Example

The following example shows the effect that this parameter has on HTML rendering.

[C#]

using (Doc doc = new Doc()) {
  // Covert html form fields to the pdf form fields in the output file
  doc.HtmlOptions.AddForms = true;
  int id = doc.AddImageUrl("https://www.websupergoo.com/thank-you-for-downloading.aspx");
  // Save the document
  doc.Save(Server.MapPath("HtmlOptionsAddForms.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  ' Covert html form fields to the pdf form fields in the output file
  doc.HtmlOptions.AddForms = True
  Dim id As Integer = doc.AddImageUrl("https://www.websupergoo.com/thank-you-for-downloading.aspx")
  ' Save the document
  doc.Save(Server.MapPath("HtmlOptionsAddForms.pdf"))
End Using

HtmlOptionsAddForms.pdf


XHtmlOptions AddIDs Property. Whether HTML ID attributes should be tracked. ABCpdf .NET PDF Library.

AddIDs Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Whether HTML ID attributes should be tracked.

Notes

Whether HTML ID attributes should be tracked.

The benefit of tracking these attributes is that they allow internal links to be resolved when calling LinkPages.

The disadvantage of tracking is that there may be many such attributes and this can represent a processing overhead.

The default value of null allows the effective value to be determined by the HTML engine.

Currently only the ABCChrome85 engine supports this property.


XHtmlOptions AddLinks Property. Whether hyperlinks should be live. ABCpdf .NET PDF Library.

AddLinks Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether hyperlinks should be live.

Notes

This property determines whether links in HTML are reproduced as links in the final PDF output.

Links which are not live look exactly like links but do not link through to a destination when you click on them.

Live links are reproduced exactly as specified on the page and link through to the web pages specified. These web pages will open in a new browser window.

To change external links to internal PDF links see the Doc.LinkPages method.

Example

See the Doc.LinkPages method.


XHtmlOptions AddMovies Property. Whether active content such as movies should be added. ABCpdf .NET PDF Library.

AddMovies Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether active content such as movies should be added.

Notes

Enables the embedding of active content such as Flash (SWF), AVI, MPEG and WMV.

Flash / SWF Previews. ABCpdf will automatically create a still preview of Flash (SWF) movies.

The preview is what you will see if you do not have Flash installed. It is what is used when printing PDFs. In general it is what you will see if you open your PDF using a viewer other than Acrobat.

The preview needs to be created at a certain resolution and using content from a particular point in the movie. By default the values are taken from the FlashPreviewTime and FlashPreviewDPI Registry Keys. However you can specify ABCpdf_PreviewTime and ABCpdf_PreviewDPI attributes within your EMBED tag to override these defaults.

Some movies take time to draw themselves because they use script to determine how they should appear. You can use the ABCpdf_PreviewWaitTime attribute to determine the time (in milliseconds) that the movie will be given to initialize itself before the preview is made.

For example to take a preview 2000 ms into the movie at 300 dpi you might use the following HTML.

<EMBED src="frogger.swf"
WIDTH="700" HEIGHT="500"
ABCpdf_PreviewWaitTime="2000"
ABCpdf_PreviewDPI="300"></EMBED>

These attributes are useful if your settings are dependent on the content within the movie rather than on the PDF.


XHtmlOptions AddNames Property. Whether HTML name attributes should be tracked. ABCpdf .NET PDF Library.

AddNames Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Whether HTML name attributes should be tracked.

Notes

Whether HTML name attributes should be tracked.

The benefit of tracking these attributes is that they allow internal links to be resolved when calling LinkPages.

The disadvantage of tracking is that there may be many such attributes and this can represent a processing overhead.

The default value of null allows the effective value to be determined by the HTML engine.

Currently only the ABCChrome85 engine supports this property.


XHtmlOptions AddTags Property. Whether location of certain tags should be noted. ABCpdf .NET PDF Library.

AddTags Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether location of certain tags should be noted.

Notes

This property determines whether selected elements in the HTML are noted so that their location can be determined at a later date.

After adding your web pages you can retrieve information about the items on the PDF page using the GetTagIDs and the GetTagRects methods.

Only HTML elements which have a visual representation can be tagged. If you are unsure if your item has a visual representation, put a border style on the element. If you can see the border then you can tag it.

Using the ABCChrome engine you specify tags using attributes. Using the Gecko and MSHTML engines you specify tags using styles. The change from styles to attributes was made as the originals styles based method became standards non-compliant.

The ABCChrome engine relies on JavaScript for this feature, so if you set the UseScript property to false, it will cease to operate.

For the ABCChrome engine, elements with an attribute 'abcpdf-tag-visible' will be tagged. For example:

<p id="p1" abcpdf-tag-visible="">Gallia est omnis divisa in partes tres.<p>

For the Gecko and MSHTML engines, elements of style 'abcpdf-tag-visible: true' will be tagged. For example:

<p id="p1" style="abcpdf-tag-visible: true">Gallia est omnis divisa in partes tres.<p>

However for the Gecko engine it is generally also a good idea to apply a border to ensure that the item is taggable. For example:

<p id="p1" style="abcpdf-tag-visible: true; outline: 1px solid transparent;">Gallia est omnis divisa in partes tres.<p>

Example

See the GetTagRects and the GetTagUntransformedRects methods.


XHtmlOptions AdjustLayout Property. Whether HTML layout is checked and adjusted for optimal output to PDF. ABCpdf .NET PDF Library.

AdjustLayout Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether HTML layout is checked and adjusted for optimal output to PDF.

Notes

This property determines whether HTML layout is checked and adjusted for optimal output to PDF.

HTML layout is optimized for screen based output on a scrolling display. Certain types of percentage based sizing can give rise to situations in which the proportions of the different elements do not add up to 100%. On screen this type of confused layout is less noticable than it is on a paged medium like PDF.

When set the document is scanned for typical layout based errors and these are fixed.

However if you are not using these features then skipping the adjustment stage can save time with no noticable change in output quality.


XHtmlOptions AutoTruncate Property. Whether to automatically clip redundant content at the end of the page. ABCpdf .NET PDF Library.

AutoTruncate Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to automatically clip redundant content at the end of the page.

Notes

This property determines whether redundant content at the end of an HTML page is shown or not.

Redundancy is determined using a number of heuristics. However most commonly it covers repeating background images which do not need to be shown.


XHtmlOptions BaseURI Property. The base URL to use for all relative URLs in the page. ABCpdf .NET PDF Library.

BaseURI Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "" | No | The base URL to use for all relative URLs in the page.

Notes

The base URL to use for all relative URLs in the page.

This property is most commonly used in conjunction with AddImageHtml. Because HTML has no location relative URLs will not work. By specifying a base URI - equivalent to the HTML BASE element - these can be easily resolved.

The BaseURI property is only available for the ABCChrome Chrome86 HTML rendering engine.


XHtmlOptions BreakMethod Property. The page break logic for HTML. ABCpdf .NET PDF Library.

BreakMethod Property

Type | Default Value | Read Only | Description
[C#] HtmlBreakMethodType [Visual Basic] HtmlBreakMethodType | CumulativeCohesion or GlobalOptimum | No | The page break logic for HTML.

Notes

This property specifies the page breaking algorithm.

The HtmlBreakMethodType enumeration can take any of the following values:

  • CumulativeCohesion - uses the cumulative cohesion of all objects occupying each horizontal line/vertical position.
  • MaximumCohesion - uses the maximum cohesion among objects occupying each horizontal line/vertical position.

in combination with any of the following values:

  • GlobalOptimum - optimizes the break position globally around a candidate position.
  • LocalOptimum - optimizes the break position locally around a candidate position.
  • NoOptimization - no optimization.

Each rendered objects in an HTML page has associated cohesion. Text, images, and form controls converted to form fields have high cohesion whereas simple lines and shapes have low cohesion.

Page breaks are selected at positions with low cohesion.

Use MaximumCohesion when you want to break at positions where there are a lot of low-cohesion objects and no high-cohesion objects.

The break position can be optimized according to the cohesion. If it is optimized locally, the cohesion values of positions between the final position and the candidate position is a monotone function.


XHtmlOptions BreakZoneSize Property. The percentage of the current drawing area in which HTML breaks can occur. ABCpdf .NET PDF Library.

BreakZoneSize Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 75 | No | The percentage of the current drawing area in which HTML breaks can occur.

Notes

The size of drawing area in which page breaks are allowed.

When HTML is added to a PDF page, it is placed within the current Doc.Rect.

In general, you do not want page breaks to occur too high up in this area. So ABCpdf only scans for good break locations towards the bottom.

This property determines how far up (in terms of a percentage) from the bottom that ABCpdf will scan for a good break location.


XHtmlOptions BrowserWidth Property. The width of the virtual browser in pixels. ABCpdf .NET PDF Library.

BrowserWidth Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | The width of the virtual browser in pixels.

Notes

For ABCChrome, MSHtml and ABCWebKit engines

This property determines or reflects the virtual browser width when rendering HTML.

HTML documents do not have a predefined width and height. The width of an HTML document varies as the client resizes the browser. How far the content flows down the page is dependent on the width of the browser.

The Width parameter is used to control this aspect of HTML rendering. It is exactly as if you were displaying your HTML in a browser window the same width as the supplied value. Typical values might be 800 or 1024.

If the Width is zero then the web page view will default to a size which shows all the available content without needing to scroll from left to right. You can use this default to ensure that all your HTML content is visible.

When the Width is zero the InitialWidth property is used as a minimum sensible width. The page may get wider to ensure that content is not clipped, however it will not get smaller than this value.

The ABCChrome engine relies on JavaScript to determine an appropriate with, so if you set the UseScript property to false, it will fall back to the InitialWidth value.

For Gecko engine

This value determines the paper width, in pixels, to use while doing layout in Gecko.

Since the Gecko engine always renders in a paginated context and never needs to scroll, contents that horizontally exceed this value will often be reflown vertically.

For example, a sidebar using the CSS float property may appear below the "main content area" if the paper is not wide enough to accommodate both items.

If the value is zero then the paper width will be determined using the dimensions of the current Doc.Rect.

Example

The following example shows the effect that this parameter has on PDF rendering.

[C#]

using (Doc doc = new Doc()) {
  string theURL = "https://photojournal.jpl.nasa.gov/catalog/PIA24312";
  // Render html page with default browser width
  doc.AddImageUrl(theURL);
  // Save the document
  doc.Save(Server.MapPath("HtmlOptionsBrowserWidth0.pdf"));
  doc.Clear();
  // Render html page with browser width = 300
  doc.HtmlOptions.BrowserWidth = 300;
  doc.AddImageUrl(theURL);
  // Save the document
  doc.Save(Server.MapPath("HtmlOptionsBrowserWidth300.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theURL As String = "https://photojournal.jpl.nasa.gov/catalog/PIA24312"
  ' Render html page with default browser width
  doc.AddImageUrl(theURL)
  ' Save the document
  doc.Save(Server.MapPath("HtmlOptionsBrowserWidth0.pdf"))
  doc.Clear()
  ' Render html page with browser width = 300
  doc.HtmlOptions.BrowserWidth = 300
  doc.AddImageUrl(theURL)
  ' Save the document
  doc.Save(Server.MapPath("HtmlOptionsBrowserWidth300.pdf"))
End Using

HtmlOptionsBrowserWidth0.pdf

HtmlOptionsBrowserWidth300.pdf


XHtmlOptions CoerceVector Property. The conditions under which to coerce a vector output. ABCpdf .NET PDF Library.

CoerceVector Property

Type | Default Value | Read Only | Description
[C#] HtmlRenderConditions [Visual Basic] HtmlRenderConditions | Default | No | The conditions under which to coerce a vector output.

Notes

The HtmlRenderConditions enumeration can take a combination of the following values:

  • Never – never coerce a vector output.
  • Always – always coerce a vector output.
  • Default – coerce a vector output under the default conditions. It currently behaves the same as OnFiltersDisabled.
  • OnFiltersDisabled – coerce a vector output when some DirectX filter is disabled.
  • OnPartialContent – ignored.
  • OnVectorCoercionFailed – ignored.

This property determines when to coerce vector outputs if this is not disabled by DisableVectorCoercion. This requires the Microsoft XPS Document Writer printer and hosting a WebBrowser. When the printer is not available or HostWebBrowser is false, this property is ignored and assumed Never.

When certain constructs, such as DirectX filters or ActiveX controls, are used in the HTML page, the output may become rasterized. When vector-output coercion is activated, a vector output is produced, but the objects that cause the rasterization of the output may not appear in the vector output.

When vector-output coercion is activated, DeactivateWebBrowser is ignored and assumed false.


XHtmlOptions ContentCount Property. The minimum number of content items required for a page to be valid. ABCpdf .NET PDF Library.

ContentCount Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 50 | No | The minimum number of content items required for a page to be valid.

Notes

The minimum number of items a page of HTML should contain.

If the number for the MSHTML engine is less than this value, then the page will be assumed to be invalid

For the Gecko engine the content may include non drawing operations such as transforms and state saves and restores. It is only if all items are non-drawing and the total content count is below this value that the page is assumed to be invalid. Typically this will only occur if the system is running low on free memory.

Depending on the RetryCount setting (for MSHTML) or the ProcessOptions.RetryCount setting (for Gecko), the page may be re-requested or an error may be returned.

Example

See the RetryCount property.


XHtmlOptions DeactivateWebBrowser Property. Whether to deactivate the WebBrowser. ABCpdf .NET PDF Library.

DeactivateWebBrowser Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to deactivate the WebBrowser.

Notes

This property determines whether the WebBrowser is deactivated before rendering.

By default, if vector-output coercion is not activated, the WebBrowser is deactivated because an active WebBrowser may produce a rasterized output.

In some cases, you may want to set this to false and possibly disable vector-output coercion in order to render pages, such as Google Maps, that require the WebBrowser to be active.


XHtmlOptions DisableVectorCoercion Property. The conditions under which to disable vector-output coercion. ABCpdf .NET PDF Library.

DisableVectorCoercion Property

Type | Default Value | Read Only | Description
[C#] HtmlRenderConditions [Visual Basic] HtmlRenderConditions | Default | No | The conditions under which to disable vector-output coercion.

Throws Exceptions may throw Exception()

Notes

The HtmlRenderConditions enumeration can take a combination of the following values:

  • Never – never disable vector-output coercion.
  • Always – always disable vector-output coercion.
  • Default – disable vector-output coercion under the default conditions. It currently behaves the same as OnPartialContent Or OnVectorCoercionFailed.
  • OnFiltersDisabled – disable vector-output coercion when some DirectX filter is disabled.
  • OnPartialContent – disable vector-output coercion when the HTML page size is bigger than the size supported by vector-output coercion.
  • OnVectorCoercionFailed – continue rendering without vector-output coercion when vector-output coercion has failed.

This property determines when to disable vector-output coercion if the coercion is otherwise activated as specified by CoerceVector. There is a size limit to the coerced vector output. If the HTML page size is bigger than the limit, the vector output is clipped so the default behavior is to disable the coercion in this case.

Sometimes, vector coercion fails with unexpected errors. If OnVectorCoercionFailed is specified, the page is rendered without vector coercion. Otherwise, an exception is thrown. If the output becomes rasterized, you may want to try rendering the page with HostWebBrowser false.


XHtmlOptions DoMarkup Property. Whether HTML pages are marked up before conversion to PDF. ABCpdf .NET PDF Library.

DoMarkup Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether HTML pages are marked up before conversion to PDF.

Notes

This property determines whether HTML pages are marked up before conversion to PDF.

Markup allows common HTML problems to be fixed automatically. It is also necessary for enabling page break CSS tags, for adding fields and for tagged content to be identified.

However if you are not using these features then skipping markup can save time for some documents.


XHtmlOptions XHtmlFireShield Property. The FireShield&trade; security settings to be applied to the ABCChrome engine. ABCpdf .NET PDF Library.

XHtmlFireShield Property

Type | Default Value | Read Only | Description
[C#] XHtmlFireShield [Visual Basic] XHtmlFireShield | null | No | The FireShield™ security settings to be applied to the ABCChrome engine.

Notes

This proprerty determines the security settings which should be applied to HTML conversion using the ABCChrome engine.

The problem with most sandboxes is they are not sufficiently dynamic. You may want to allow access to a specific file or set of files for one request, while prohibiting acces to those same files for another.

FireSheld allows you to configure per-request permissions using an easy to understand rule based system. It reports permission issues in an obvious way so that if you need to troubleshoot access problems, it is trivial to work out what is going wrong.

Example

The following code snippet illustrates how one might add a rule to allow access to an audio driver or similar.

[C#]

using (Doc doc = new Doc()) {
  doc.HtmlOptions.Engine = EngineType.Chrome86;
  doc.HtmlOptions.FireShield.Rules.Add(new XHtmlFireShieldRule(@"C:\Windows\", "*.drv", XHtmlFireShieldRule.AccessType.Allow));
  int id = doc.AddImageUrl("https://www.google.com/");
  // ...
}

[Visual Basic]

Using doc As New Doc()
  doc.HtmlOptions.Engine = EngineType.Chrome86
  doc.HtmlOptions.FireShield.Rules.Add(New XHtmlFireShieldRule("C:\Windows\", "*.drv", XHtmlFireShieldRule.AccessType.Allow))
    ' ...
  Dim id As Integer = doc.AddImageUrl("https://www.google.com/")
End Using


XHtmlOptions FontEmbed Property. Whether fonts should be embedded rather than referenced. ABCpdf .NET PDF Library.

FontEmbed Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether fonts should be embedded rather than referenced.

Notes

This property determines whether fonts are embedded.

HTML rendering may require that fonts are added to the PDF document.

By default these fonts are - where possible - referenced. You can use this setting to ensure that fonts are embedded. This will increase output fidelity at a cost of processing time and output file size.


XHtmlOptions FontProtection Property. Whether fonts should be protected. ABCpdf .NET PDF Library.

FontProtection Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether fonts should be protected.

Notes

This property determines whether fonts are protected.

HTML rendering may require that fonts are embedded into the PDF document.

Fonts often contain licensing information. By default ABCpdf will prevent you from embedding fonts which indicate that embedding is not permitted.

You can disable this protection by changing the default for this value.


XHtmlOptions FontSubset Property. Whether embedded fonts should be subsetted or not. ABCpdf .NET PDF Library.

FontSubset Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether embedded fonts should be subsetted or not.

Notes

This property determines whether embedded fonts are subset.

HTML rendering may require that fonts are added to the PDF document.

By default these fonts are - where possible - referenced. You can use FontEmbed to ensure that fonts are embedded. When FontEmbed is set to true, you can then use this property to specify if fonts should be subset (only required glyphs are embedded) or not (entire font is embedded). This will considerably increase output size and processing time.


XHtmlOptions FontSubstitute Property. Whether font substitution should be used to reduce file size. ABCpdf .NET PDF Library.

FontSubstitute Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether font substitution should be used to reduce file size.

Notes

This property determines whether font substitution is enabled.

In many situations default built-in fonts can be substituted in place of the specified fonts.

This can result in a substantial increase in speed and a considerable reduction in file size with little or no loss in output quality.


XHtmlOptions HideBackground Property. Whether to hide the background color of a page. ABCpdf .NET PDF Library.

HideBackground Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to hide the background color of a page.

Notes

Whether to to hide the background color of an HTML page.

This can be useful for making HTML pages with transparent backgrounds.

Note that the background color is not the same as a background image or tiled image. This property operates on background colors only.

Example

The following example shows the effect that this parameter has on HTML rendering.

[C#]

using (Doc doc = new Doc()) {
  // Please note that the URL below is included for demonstration purposes only.
  // In your code you should use your own URL. The site at the URL below
  // may include other opaque elements which may obscure our blue rectangle.
  string theURL = "https://www.websupergoo.com/";
  // Add some content
  doc.Color.String = "0 255 255"; // light blue
  doc.FillRect(200, 200);
  // Hide the background of the HTML page so content shows through
  doc.HtmlOptions.HideBackground = true;
  doc.AddImageUrl(theURL);
  // Save the document
  doc.Save(Server.MapPath("HtmlOptionsHideBackground.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  ' Please note that the URL below is included for demonstration purposes only.
  ' In your code you should use your own URL. The site at the URL below
  ' may include other opaque elements which may obscure our blue rectangle.
  Dim theURL As String = "https://www.websupergoo.com/"
  ' Add some content
  doc.Color.String = "0 255 255"
  ' light blue
  doc.FillRect(200, 200)
  ' Hide the background of the HTML page so content shows through
  doc.HtmlOptions.HideBackground = True
  doc.AddImageUrl(theURL)
  ' Save the document
  doc.Save(Server.MapPath("HtmlOptionsHideBackground.pdf"))
End Using

HtmlOptionsHideBackground.pdf


XHtmlOptions HostWebBrowser Property. Whether to host a WebBrowser control. ABCpdf .NET PDF Library.

HostWebBrowser Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true (overridable by registry value) | No | Whether to host a WebBrowser control.

Notes

This property determines whether a WebBrowser control is hosted.

By default, a WebBrowser control is hosted. Script-accessible properties (left, top, width, height, offsetLeft, offsetTop, offsetWidth, offsetHeight, clientLeft, clientTop, clientWidth, clientHeight, pixelLeft, pixelTop, pixelWidth, pixelHeight, posLeft, posTop, posWidth, and posHeight) hold their proper values. The source document can be in any format as long as it is HTML-compatible. For example, XML (with or without XSL applied) can be used because the WebBrowser control transforms it to HTML.

When no WebBrowser control is hosted, script-accessible dynamic, geometric properties are always zero.

This property affects the CoerceVector property.


XHtmlOptions HtmlCallback Property. The multicast delegate to be called while HTML rendering is taking place. ABCpdf .NET PDF Library.

HtmlCallback Property

Type | Default Value | Read Only | Description
[C#] HtmlCallback [Visual Basic] HtmlCallback | null | No | The multicast delegate to be called while HTML rendering is taking place.

Notes

This delegate is called during HTML rendering.

During the time that HTML rendering is taking place delegates are called periodically. This gives a mechanism for tracking progress and for intercepting and modifying or querying pages on the fly.

If the page is obtained from the cache then the delegate will not be called.

Note that the amount of work done during a callback should be kept to a minimum.

The definition of the HtmlCallback multicast delegate is as follows.

[C#]

delegate void HtmlCallback(string stage, object page);

[Visual Basic]
Delegate Sub HtmlCallback(stage As String, page As Object);

Current values for the stage variable are 'get width', 'get height' and 'render'. The first occurs prior to finding the natural width of the HTML (the width it can occupy without scrolling). The second occurs prior to finding the natural height. The third occurs prior to translation into PDF format.

The page is provided via a mshtml.HTMLDocumentClass object - see Microsoft documentation for details. However note that while the interface is standard the behavior may not be identical. For example element positions may not be available.

Example

The following example shows the effect that this parameter has on HTML rendering.

[C#]

using (Doc doc = new Doc()) {
  string theURL = "https://photojournal.jpl.nasa.gov/catalog/PIA24312";
  // Set up the callback
  StringBuilder theLog = new StringBuilder();
  doc.HtmlOptions.HtmlCallback = (string stage, object page) => theLog.AppendLine(stage);
  // Render html page
  doc.AddImageUrl(theURL);
  // Add log over the top of the content
  doc.Rect.Inset(100, 100);
  doc.Color.String = "255 0 0";
  doc.FontSize = 96;
  doc.AddText(theLog.ToString());
  // Save the document
  doc.Save(Server.MapPath("HtmlOptionsCallback.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theURL As String = "https://photojournal.jpl.nasa.gov/catalog/PIA24312"
  ' Set up the callback
  Dim theLog As New StringBuilder()
  doc.HtmlOptions.HtmlCallback = Function(stage As String, page As Object) theLog.AppendLine(stage)
  ' Render html page
  doc.AddImageUrl(theURL)
  ' Add log over the top of the content
  doc.Rect.Inset(100, 100)
  doc.Color.String = "255 0 0"
  doc.FontSize = 96
  doc.AddText(theLog.ToString())
  ' Save the document
  doc.Save(Server.MapPath("HtmlOptionsCallback.pdf"))
End Using

HtmlOptionsCallback.pdf


XHtmlOptions HtmlEmbedCallback Property. The multicast delegate to be called when embedding an object while HTML rendering is taking place. ABCpdf .NET PDF Library.

HtmlEmbedCallback Property

Type | Default Value | Read Only | Description
[C#] HtmlEmbedCallback [Visual Basic] HtmlEmbedCallback | null | No | The multicast delegate to be called when embedding an object while HTML rendering is taking place.

Notes

This delegate is called when embedding an object.

Objects embedded in HTML, such as those with the embed HTML tags, will trigger the callback if they are of certain content types. This callback provides a way to change the parameters of the embedded objects.

The definition of the HtmlEmbedCallback multicast delegate is as follows.

[C#]

delegate void HtmlEmbedCallback(Doc doc, HtmlEmbedInfo info);

[Visual Basic]
Delegate Sub HtmlEmbedCallback(doc As Doc, info As HtmlEmbedInfo);

doc is the target Doc for the added HTML. The properties of HtmlEmbedInfo are as follows:

Property of HtmlEmbedInfo Type Default Value Read Only Description
Url [C#]
string

[Visual Basic]
String
n/a Yes The URL of the embedded object.
BaseUrl [C#]
string

[Visual Basic]
String
n/a Yes The base URL for resolving relative URLs. This could be the URL of the HTML or the URL from the base tag.
EmbedType
HtmlEmbedType
See description. Yes The content type of the embedded object. See the table below for the possible values.
ParameterNamesAreCaseSensitive [C#]
bool

[Visual Basic]
Boolean
n/a Yes Indicates whether parameter names are case-sensitive.
Parameters
HtmlParameterDictionary
n/a Yes The parameters for the embedded object. It depends on the value of EmbedType. The public API of HtmlParameterDictionary closely resembles that of System.Collections.Generic.Dictionary. It behaves like a dictionary with string keys and HtmlParameter values.

Parameters depends on EmbedType as follows:

EmbedType | EmbedType Description | ParameterNamesAreCaseSensitive | Parameters
None | No content. This value is not used. |  |
Swf | SWF files | true if the version of the SWF file is 7 or above. | Parameters contains those in the FlashVars parameter and the parameters in the URL of the SWF file.

The values in HtmlParameterDictionary are of type HtmlParameter.

Property of HtmlParameter Type Default Value Read Only Description
Value [C#]
string

[Visual Basic]
String
n/a No The parameter value.
Conversion
HtmlParameterConversionType
None No The conversion for the value.
HtmlParameterConversionType | Description
None | No conversion.
UrlToTextFileContent | Sets the value to the text content of the file pointed to by Value as a URL.

Example

The following example shows the effect that this parameter has on HTML rendering.

[C#]

using (Doc doc = new Doc()) {
  string theURL = "https://www.websupergoo.com/";
  // Set up the callback
  doc.HtmlOptions.HtmlEmbedCallback = (Doc d, HtmlEmbedInfo info) => {
    if (info.EmbedType == HtmlEmbedType.Swf) {
      HtmlParameter param;
      if (info.Parameters.TryGetValue("dataURL", out param)) {
        info.Parameters.Remove("dataURL");
        param.Conversion = HtmlParameterConversionType.UrlToTextFileContent;
        info.Parameters["dataXML"] = param;
      }
    }
  };
  // Render html page
  doc.AddImageUrl(theURL);
  // Save the document
  doc.Save(Server.MapPath("HtmlOptionsEmbedCallback.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theURL As String = "https://www.websupergoo.com/"
  ' Set up the callback
  doc.HtmlOptions.HtmlEmbedCallback = Function(d As Doc, info As HtmlEmbedInfo)
  If info.EmbedType = HtmlEmbedType.Swf Then
    Dim param As HtmlParameter
    If info.Parameters.TryGetValue("dataURL", param) Then
      info.Parameters.Remove("dataURL")
      param.Conversion = HtmlParameterConversionType.UrlToTextFileContent
      info.Parameters("dataXML") = param
    End If
  End If

  End Function
  ' Render html page
  doc.AddImageUrl(theURL)
  ' Save the document
  doc.Save(Server.MapPath("HtmlOptionsEmbedCallback.pdf"))
End Using


XHtmlOptions HttpAdditionalHeaders Property. Additional HTTP headers to send in the request. ABCpdf .NET PDF Library.

HttpAdditionalHeaders Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "" | No | Additional HTTP headers to send in the request.

Notes

This property specifies HTTP headers added to the default headers. It must follow the syntax of HTTP headers, typically delimited using a cr+lf combination.

For example, you may add the cookies from a response to a request under some authentication (e.g. ASP.NET Forms) where a session ID is returned for subsequent requests so re-authentication is not needed. See the NoCookie property for further information if you specify cookies in the HTTP headers.

The headers are sent only in the request for the URL; they are not sent in the requests for the linked resources (e.g. CSS and images) in the obtained HTML page.

The additional headers are always used by the MSHTML Engine. Under Gecko, these headers are only sent if you are using the Screen Media or if you are using the POST RequestMethod. When this occurs, ABCpdf needs to obtain and store a local copy of the web page before invoking the engine. This property is not valid under ABCChrome.

Example

The following example shows how this property may be used.

[C#]

using (Doc doc = new Doc()) {
  string url = "https://www.websupergoo.com/"; // assign appropriate URL
  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  request.CookieContainer = new CookieContainer(); // required for HttpWebResponse.Cookies
  request.Credentials = null; // assign appropriate credentials
  using (WebResponse resp = request.GetResponse()) {
    // cookieless Forms Authentication adds authentication ticket to the URL
    url = resp.ResponseUri.AbsoluteUri;
    HttpWebResponse response = (HttpWebResponse)resp;
    if (response.Cookies.Count > 0) { // includes ASP.NET_SessionId
      bool needsCookie2 = false;
      StringBuilder builder = new StringBuilder("Cookie: ");
      for (int i = 0; i < response.Cookies.Count; ++i) {
        Cookie cookie = response.Cookies[i];
        if (!needsCookie2 && cookie.Version != 1)
          needsCookie2 = true;
        if (i > 0)
          builder.Append("; ");
        builder.Append(cookie.ToString());
      }
      builder.Append(!needsCookie2 ? "\r\n" : "\r\nCookie2: $Version=1\r\n");
      doc.HtmlOptions.HttpAdditionalHeaders = builder.ToString();
    }
  }
  doc.HtmlOptions.Engine = EngineType.MSHtml;
  doc.HtmlOptions.NoCookie = true;
  doc.HtmlOptions.PageLoadMethod = PageLoadMethodType.MonikerForHtml;
  int id = doc.AddImageUrl(url);
  doc.Save(Server.MapPath("HttpHeaders.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim url As String = "https://www.websupergoo.com/"
  ' assign appropriate URL
  Dim request As HttpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)
  request.CookieContainer = New CookieContainer()
  ' required for HttpWebResponse.Cookies
  request.Credentials = Nothing
  ' assign appropriate credentials
  Using resp As WebResponse = request.GetResponse()
    ' cookieless Forms Authentication adds authentication ticket to the URL
    url = resp.ResponseUri.AbsoluteUri
    Dim response As HttpWebResponse = DirectCast(resp, HttpWebResponse)
    If response.Cookies.Count > 0 Then
      ' includes ASP.NET_SessionId
      Dim needsCookie2 As Boolean = False
      Dim builder As New StringBuilder("Cookie: ")
      Dim i As Integer = 0
      While i < response.Cookies.Count
        Dim cookie As Cookie = response.Cookies(i)
        If Not needsCookie2 AndAlso cookie.Version <> 1 Then
          needsCookie2 = True
        End If
        If i > 0 Then
          builder.Append("; ")
        End If
        builder.Append(cookie.ToString())
        System.Threading.Interlocked.Increment(i)
      End While
      builder.Append(If(Not needsCookie2, vbCr & vbLf, vbCr & vbLf & "Cookie2: $Version=1" & vbCr & vbLf))
      doc.HtmlOptions.HttpAdditionalHeaders = builder.ToString()
    End If
  End Using
  doc.HtmlOptions.Engine = EngineType.MSHtml
  doc.HtmlOptions.NoCookie = True
  doc.HtmlOptions.PageLoadMethod = PageLoadMethodType.MonikerForHtml
  Dim id As Integer = doc.AddImageUrl(url)
  doc.Save(Server.MapPath("HttpHeaders.pdf"))
End Using

ASP.NET_SessionId. If your application runs in ASP.NET, you cannot use the cookie from the application's originating request as it identifies the session. If the site containing the target HTML page is different from your site, the session ID is invalid. If it is the same, this will cause a re-entrance in the same session, and ASP.NET may not allow re-entrance for the same session.


XHtmlOptions IgnoreCertificateErrors Property. Whether to ignore certificate-related errors. ABCpdf .NET PDF Library.

IgnoreCertificateErrors Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to ignore certificate-related errors.

Notes

This property determines whether certificate-related errors are ignored or not.

When retrieving pages via https URLs, ABCpdf will check that the SSL certificate is valid and trusted. If it is not you may not wish to proceed with the HTML render and instead throw an exception.

Using this property you can control whether error will be ignored or reported.


XHtmlOptions ImageQuality Property. The quality of compression acceptable for continuous tone images such as JPEGs. ABCpdf .NET PDF Library.

ImageQuality Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 101 | No | The quality of compression acceptable for continuous tone images such as JPEGs.

Notes

This property determines the image quality acceptable when rendering HTML.

ABCpdf uses a high quality lossless compression method for image compression when rendering HTML.

Using this setting you can indicate the quality of compression which is acceptable for continuous tone images such as JPEGs.

This can result in a considerable reduction in file size with little or no loss in output quality.

Note that the MSHTML engine contains optimizations to allow data to be passed directly from the web through to the PDF without recompression. However it can only do this if you do not indicate that you need this data recompressed. As such you may find it more effective in terms of output size and ouput quality, to leave the default setting in place.

Qualities should range between 0 and 100 (75 is a reasonable value). Values higher than 100 will result in lossless compression being used in all situations.

Example

The following example shows the effect that this parameter has on PDF rendering.

[C#]

using (Doc doc = new Doc()) {
  string theURL = "http://www.nasa.gov/multimedia/imagegallery/image_feature_313.html";
  // Set low image quality for HTML rendering
  doc.HtmlOptions.ImageQuality = 5;
  doc.AddImageUrl(theURL);
  // Save the document
  doc.Save(Server.MapPath("HtmlOptionsImageQuality5.pdf"));
  doc.Clear();
  // Set lossless image quality for HTML rendering
  doc.HtmlOptions.ImageQuality = 101;
  doc.AddImageUrl(theURL);
  // Save the document
  doc.Save(Server.MapPath("HtmlOptionsImageQuality101.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theURL As String = "http://www.nasa.gov/multimedia/imagegallery/image_feature_313.html"
  ' Set low image quality for HTML rendering
  doc.HtmlOptions.ImageQuality = 5
  doc.AddImageUrl(theURL)
  ' Save the document
  doc.Save(Server.MapPath("HtmlOptionsImageQuality5.pdf"))
  doc.Clear()
  ' Set lossless image quality for HTML rendering
  doc.HtmlOptions.ImageQuality = 101
  doc.AddImageUrl(theURL)
  ' Save the document
  doc.Save(Server.MapPath("HtmlOptionsImageQuality101.pdf"))
End Using

HtmlOptionsImageQuality5.pdf [file size 42 KB]

HtmlOptionsImageQuality101.pdf [file size 444 KB]


XHtmlOptions ImprovePageBreakAvoid Property. Whether to improve the support for page-break-inside of avoid. ABCpdf .NET PDF Library.

ImprovePageBreakAvoid Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to improve the support for page-break-inside of avoid.

Notes

The Gecko engine does not support some complex uses of CSS style "page-break-inside:avoid".

In particular, it does not work well when this style is applied inside table elements.

Set this property to true to improve the layout of elements using this style.


XHtmlOptions ImprovePageBreakInTable Property. Whether to improve the support for page break in table to prevent missing rows. ABCpdf .NET PDF Library.

ImprovePageBreakInTable Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to improve the support for page break in table to prevent missing rows.

Notes

The Gecko engine may truncate a table at the point that the last row on the page aligns exactly with the bottom of the page.

Set this property to true to resolve the problem.


XHtmlOptions InitialWidth Property. The minimum width to be used for auto-sized pages. ABCpdf .NET PDF Library.

InitialWidth Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 800 | No | The minimum width to be used for auto-sized pages.

Notes

When the BrowserWidth is zero ABCpdf will attempt to automatically determine an appropriate size for the page.

To do this it determines the scroll width and scroll height for the page. These are the dimensions which would need to be applied to the page to ensure that all content was displayed without the need to scroll.

Before these measurements are taken the page needs to be set to a default size. This value determines the width that is used.

This effectively means that the output will always be a minimum of this initial width. If you are working with narrow pages you may wish to reduce this value.


XHtmlOptions LogonName Property. A user name to be used for authentication. ABCpdf .NET PDF Library.

LogonName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "" | No | A user name to be used for authentication.

Notes

This property determines the authentication user name to be used when accessing secured web sites.

For example you might set this property to "MyServer\Steve" to authenticate as Steve when accessing a particular web site.

This property needs to be used in conjunction with the LogonPassword property.

ABCpdf is a user like any other user. When it is logged in it stays logged in until the session times out or until you explicitly log it out. So if you wish ABCpdf to log on as a different user you must ensure that it is logged out first.

ASP.NET Forms Authentication. The LogonName and LogonPassword properties are related to authentication methods built into HTTP. Methods like Basic (forms) Authentication and Windows Integrated Authentication.

Something like ASP.NET forms based authentication requires a different kind of method because it is under your programmatic control. Because it is under your programmatic control - ABCpdf cannot authenticate itself. Because Authentication is under your programmatic control - you have to Authenticate ABCpdf.

You will need to allow ABCpdf to pass in a user name and password to your page (probably in encoded form via the URL) and then have that page call the FormsAuthentication.Authenticate code using that username and password.

Some of our clients have encoded this information via a time expiring certificate or token to add extra security to the process.

As an alternative you can obtain the HTML of the current page using the HttpResponse.Filter property or by overriding the Render method of the page. You can then present this HTML to ABCpdf using AddImageHtml. If your HTML references resources using relative references you may wish to insert a <BASE> tag into the HTML before presentation to ABCpdf. Of course any resources you reference would need to be available outside your Authentication scheme.

Example

The following example shows this property may be used.

[C#]

using (Doc doc = new Doc()) {
  string theURL = "https://www.websupergoo.com/";
  // Assign name and password
  doc.HtmlOptions.LogonName = "Steve";
  doc.HtmlOptions.LogonPassword = "stevepassword";
  // Add HTML page
  doc.AddImageUrl(theURL);
  // Save the document
  doc.Save(Server.MapPath("HtmlOptionsLogon.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theURL As String = "https://www.websupergoo.com/"
  ' Assign name and password
  doc.HtmlOptions.LogonName = "Steve"
  doc.HtmlOptions.LogonPassword = "stevepassword"
  ' Add HTML page
  doc.AddImageUrl(theURL)
  ' Save the document
  doc.Save(Server.MapPath("HtmlOptionsLogon.pdf"))
End Using


XHtmlOptions LogonPassword Property. A password to be used for authentication. ABCpdf .NET PDF Library.

LogonPassword Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "" | No | A password to be used for authentication.

Notes

This property determines the authentication password to be used when accessing secured web sites.

For example you might set this property to "stevespassword" to authenticate as Steve when accessing a particular web site.

This property needs to be used in conjunction with the LogonName property.

Example

See the LogonName property.


XHtmlOptions MakeFieldNamesUnique Property. Whether field names should be changed to make them unique. ABCpdf .NET PDF Library.

MakeFieldNamesUnique Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether field names should be changed to make them unique.

Notes

HTML forms can contain fields with the same name.

If the names of two fields in a PDF are the same, then the fields take the same value.

So if multiple HTML fields with the same name are added to a PDF, these fields will all appear to contain the same content. This is true even if the original HTML fields contained different content.

Setting this property will result in duplicate fields being renamed to allow the content to be different.

The ABCChrome engine does not support this property but it is not a difficult matter to emulate it using code of the following form.

[C#]

HashSet<string> names = new HashSet<string>();
List<Field> fields = new List<Field>();
foreach (Field field in theDoc.Form.Fields) {
  fields.Add(field);
  foreach (Field kid in field.GetKids(1000))
    fields.Add(kid);
}
foreach (Field field in fields) {
  for (int i = 1; names.Contains(field.Name); i++)
    Atom.SetItem(field.Atom, "T", new StringAtom(field.PartialName + "_" + i.ToString()));
  names.Add(field.Name);
}
theDoc.Form.Refresh();

[Visual Basic]
Dim names As HashSet(Of String) = New HashSet(Of String)
Dim fields As List(Of Field) = New List(Of Field)
For Each field As Field In theDoc.Form.Fields
  fields.Add(field)
  For Each kid As Field In field.GetKids(1000)
    fields.Add(kid)
  Next
Next
For Each field As Field In fields
  Dim i As Integer = 1
  Do While names.Contains(field.Name)
    Atom.SetItem(field.Atom, "T", New StringAtom((field.PartialName + ("_" + i.ToString))))
    i = (i + 1)
  Loop
  names.Add(field.Name)
Next
theDoc.Form.Refresh


XHtmlOptions MaxAtomicImageSize Property. The maximum size at which an image may be regarded as unbreakable. ABCpdf .NET PDF Library.

MaxAtomicImageSize Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 480 | No | The maximum size at which an image may be regarded as unbreakable.

Notes

ABCpdf generally regards images as atomic - unbreakable over more than one page.

However when an image reaches a certain size it's impossible to stop the image being broken. To try do so would result in unacceptable gaps in the content. So the assumption that the image is atomic has to be disregarded.

This property reflects the height (in pixels) at which images will be redefined as non-atomic.


XHtmlOptions Media Property. The CSS media type to use. ABCpdf .NET PDF Library.

Media Property

Type Default Value Read Only Description
[C#]
MediaType

[Visual Basic]
MediaType
         Print No The CSS media type to use.

Notes

The MediaType enumeration can take any of the following values:

  • Print
  • Screen

For the Gecko engine, the Screen media must be used with UseScript true. An invalid combination (i.e. Screen with UseScript false) yields an exception when you call AddImageUrl or AddImageHtml.

The same HTML document can achieve different visual representations when rendered on different media by specifying several sets of CSS styles for each medium type. The Gecko engine supports the rendering of Web pages using the print stylesheets and the screen stylesheets.

When the Screen media is used in conjunction with the Gecko engine, ABCpdf obtains and stores the web page locally before invoking the engine. Since ABCpdf does not obtain additional headers from the Gecko engine, they are not sent in the request. The kind of headers that may not be sent include Accept, Accept-Language, Accept-Encoding, Keep-Alive, and Accept-Charset. The User-Agent may be different. In most situations, this is unimportant, but if you are relying on these headers, you can use the HtmlOptions.HttpAdditionalHeaders property to add your own headers to the request.


XHtmlOptions NoCookie Property. Whether to disable automatic cookies. ABCpdf .NET PDF Library.

NoCookie Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to disable automatic cookies.

Notes

This property determines whether automatic cookies are disabled. If it is true, PageLoadMethod must be effectively MonikerForHtml.

The HTML engine manages cookies as it receives HTTP/HTTPS responses and sends HTTP/HTTPS requests. If this property is set to true, cookies stored in the local cookie database will not be sent in requests, and cookies received in responses will not be stored in the local cookie database.

Cookies specified in HttpAdditionalHeaders are not sent in requests if automatic cookies are enabled. Set this property to true if cookies are specified in HttpAdditionalHeaders.

Example

See the HttpAdditionalHeaders property.


XHtmlOptions NoDefaultBackground Property. Whether to disable the default background color. ABCpdf .NET PDF Library.

NoDefaultBackground Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to disable the default background color.

Notes

When the HTML page does not specify a background color, the Gecko engine applies the default background color specified by preference browser.display.background_color or overridden by preference browser.display.use_system_colors. This default color is always opaque.

Because the default preference specifies white, you get a white background (which you likely do not notice unless there is already some objects on the PDF page) if this property is set to false.


XHtmlOptions NoSnapRounding Property. Whether to disable the snap rounding of coordinates and lengths. ABCpdf .NET PDF Library.

NoSnapRounding Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to disable the snap rounding of coordinates and lengths.

Notes

The Gecko engine snap-rounds measurements at the output resolution. This does not make sense when the output format, such as PDF, has no inherent resolution. The units of measurement of PDF is points, which is too coarse for vector graphics.

Set this property to true to use the source measurements without snap rounding.


XHtmlOptions NoTheme Property. Whether themes should be disabled. ABCpdf .NET PDF Library.

NoTheme Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | Yes | Whether themes should be disabled.

Notes

This property determines whether UI theme is not applied to controls.

The theme is only relevant if you are using the MSHTML engine for IE9 or earlier. As such it is likely that this function will be deprecated in future releases of ABCpdf.

To change the value, use SetTheme.


XHtmlOptions OnLoadScript Property. A script to be run after the page is loaded. ABCpdf .NET PDF Library.

OnLoadScript Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "" | No | A script to be run after the page is loaded.

Notes

A client side JavaScript to be applied to a web page before the page is rendered to PDF.

This kind of script can be used for a variety of purposes. For example you might wish to hide background images or get pre-render information from the document.

You can provide a return value by setting an "abcpdf" property in the documentElement. For example:

[C#]

document.documentElement.abcpdf = "my return value";

[Visual Basic]
document.documentElement.abcpdf = "my return value"

The return value can be accessed using the GetScriptReturn method with the ID returned from Doc.AddImageUrl or Doc.AddImageHtml.

For the MSHtml engine, you must have the UseScript key set to true or you will get an "access denied" error; the return value can only be set inside OnLoadScript. The Gecko engine does not have these restrictions.

For the MSHtml engine, the script in this property is executed after the page load is complete, so it may be executed before or after any script in the web page that is executed after the completion of page load.

For the Gecko engine, the script in this property may be executed before or after any event-triggered script in the web page. For example, if you set window.ABCpdf_go to false in OnLoadScript, but the event listener that sets window.ABCpdf_go to true is in the script in the web page, you should check the value of window.ABCpdf_go (initially undefined) before setting it to false in OnLoadScript.

[C#]

doc.HtmlOptions.OnLoadScript = "if(!window.ABCpdf_go) window.ABCpdf_go = false;";

[Visual Basic]
doc.HtmlOptions.OnLoadScript = "if(!window.ABCpdf_go) window.ABCpdf_go = false;"

For the ABCChrome engine, the script is run at the point that the page and all resources that are referred to by the page, are loaded.

Example

See the UseScript property.


XHtmlOptions PageCacheEnabled Property. Whether the page cache should be searched before rendering the page. ABCpdf .NET PDF Library.

PageCacheEnabled Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether the page cache should be searched before rendering the page.

Notes

ABCpdf holds a cache of recently requested URLs, and it's only after five minutes or so that these pages expire from the cache.

Searching the page cache before rendering a URL results in a considerable degree of optimization for many common operations.

However, if you wish to bypass the cache, you can do so by setting this property to false. When the cache is disabled, the registry value MakeURLsUnique takes effect, and the actual URL may be modified.


XHtmlOptions PageCacheExpiry Property. The length of time that pages can be held in the cache (ms). ABCpdf .NET PDF Library.

PageCacheExpiry Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 300,000 | No | The length of time that pages can be held in the cache (ms).

Notes

ABCpdf holds a cache of recently requested URLs and it's only after five minutes or so that these pages expire from the cache.

This results in a considerable degree of optimization for many common operations.

You can modify the length of time that pages are held in the cache using this parameter. This value cannot be reduced to zero.

This value is measured in milliseconds.


XHtmlOptions PageCacheSize Property. The number of pages that can be held in the cache. ABCpdf .NET PDF Library.

PageCacheSize Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 100 | No | The number of pages that can be held in the cache.

Notes

ABCpdf holds a cache of recently requested URLs and it's only after five minutes or so that these pages expire from the cache.

This results in a considerable degree of optimization for many common operations.

You can modify the number of items which can be held in the URL cache using this parameter. This value cannot be reduced to zero.


XHtmlOptions Paged Property. Whether content should be rendered in multipaged format. ABCpdf .NET PDF Library.

Paged Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether content should be rendered in multipaged format.

Notes

This property determines whether HTML should be prepared in a way that allows it to be paged over multiple PDF pages.

If paged mode is used then only the first page of the document is drawn. Subsequent pages can be drawn using the Doc.AddImageToChain method.

There are subtle differences between paged and non-paged HTML. In general you will want to set this parameter to true even if you only wish to draw one page.


XHtmlOptions PageLoadMethod Property. The method for loading URI/HTML. ABCpdf .NET PDF Library.

PageLoadMethod Property

Type | Default Value | Read Only | Description
[C#] PageLoadMethodType [Visual Basic] PageLoadMethodType | Default | No | The method for loading URI/HTML.

Notes

This property specifies the method to load the URI/HTML page.

The PageLoadMethodType enumeration can take any of the following values:

  • Default — this is currently the same as MonikerForHtml.
  • MonikerForHtml — Moniker is used to load the page.
  • WebBrowserNavigate — IWebBrowser2::Navigate is used to load the page. HostWebBrowser must be true to use this value.

This property affects the NoCookie property and the GetHttpStatusCode method.

Example

See the HttpAdditionalHeaders property.


XHtmlOptions ProcessOptions Property. The options for new worker processes. ABCpdf .NET PDF Library.

ProcessOptions Property

Type | Default Value | Read Only | Description
[C#] XHtmlProcessOptions [Visual Basic] XHtmlProcessOptions | The default XHtmlProcessOptions | Yes | The options for new worker processes.

Notes

For each HTML engine that uses worker processes, you can set the properties in the XHtmlProcessOptions object to specify the options for new worker processes.

The worker processes are in a process pool for each HTML engine, which is shared by different instances of Doc. However, the options used are not reflected back to the (writable) XHtmlProcessOptions properties for different instances of Doc.

The options are used only at the start of the process pool and must not be disposed of before the process pool is stopped. If the process pool has started, the options are ignored.

If the process pool has started, to use a different set of options for subsequent HTML rendering, you will have to stop the process pool by calling EndTasks so that all worker processes are terminated. XHtmlProcessOptions.PoolHasStarted is false when the process pool is stopped.


XHtmlOptions ReloadPage Property. Whether to reload page. ABCpdf .NET PDF Library.

ReloadPage Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to reload page.

Notes

This property determines whether the page is reloaded from the server. If it is true, PageLoadMethod must be effectively MonikerForHtml.

When a page is to be reloaded, all proxy servers will request the page anew, the page cache is not searched, and if the page cache is enabled, the reloaded page is stored in the page cache.

Setting this property to true sets INTERNET_FLAG_RELOAD. WinINET will bypass the cache (redownloading all entries), (will not send an If-Modified-Since or If-None-Match request header on these requests (Unconditional request; server cannot return a HTTP/304),) and will add a request header, as UseNoCache does, to help ensure that an intermediary/proxy does not return a previously cached result.


XHtmlOptions RepaintDelay Property. Minimum time to wait for the page to finish animation (ms). ABCpdf .NET PDF Library.

RepaintDelay Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | Minimum time to wait for the page to finish animation (ms).

Notes

This feature allows you to cope with web pages that animate.

Most web pages simply load and complete. However some web pages may not complete in a simple manner. For example graphs may draw themselves, maps may update, images may move. These are all features associated with more dynamic modern HTML and AJAX based pages.

To cope with this we introduce the concept of a RepaintDelay and a RepaintTimeout.

When the page has finished loading we wait to see what drawing occurs and/or observing changes in the DOM. Each time the page updates - drawing occurs or the DOM changes - we set a timer back to zero.

If the timer reaches the RepaintDelay limit then we assume that the page has reached a ready state. At that point we convert it to PDF.

If the total time exceeds the RepaintTimeout we assume that the page is never going to reach a ready state. At that point we convert whatever we have to PDF.

This value is measured in milliseconds.

DOM observation is the most accurate measure of detecting changes in the page but requires HtmlOptions.UseScript to be set to its default value of true.

Example

See the RepaintTimeout property.


XHtmlOptions RepaintTimeout Property. Maximum time to wait for the page to finish animation (ms). ABCpdf .NET PDF Library.

RepaintTimeout Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 5000 | No | Maximum time to wait for the page to finish animation (ms).

Notes

This feature allows you to cope with web pages that animate.

Most web pages simply load and complete. However some web pages may not complete in a simple manner. For example graphs may draw themselves, maps may update, images may move. These are all features associated with more dynamic modern HTML and AJAX based pages.

To cope with this we introduce the concept of a RepaintDelay and a RepaintTimeout.

When the page has finished loading we wait to see what drawing occurs. Each time the page updates - drawing occurs - we set a timer back to zero.

If the timer reaches the RepaintDelay limit then we assume that the page has reached a ready state. At that point we convert it to PDF.

If the total time exceeds the RepaintTimeout we assume that the page is never going to reach a ready state. At that point we convert whatever we have to PDF.

This value is measured in milliseconds.

Example

See the RepaintDelay property.


XHtmlOptions RequestMethod Property. The request method for URL. ABCpdf .NET PDF Library.

RequestMethod Property

Type | Default Value | Read Only | Description
[C#] UrlRequestMethodType [Visual Basic] UrlRequestMethodType | Get | No | The request method for URL.

Notes

The UrlRequestMethodType enumeration can take any of the following values:

  • Get
  • Post

This property specifies which method Doc.AddImageUrl uses to get the HTML page. Normally, Get is the preferred method when requesting the page is an idempotent operation. However, the Get method supports at most 2,048 characters in the URL. If the URL is longer than 2,048 characters and contains parameters, it is necessary to use the Post method. However, the URL minus the parameters (and the question mark) is still limited to 2,048 characters.

The Post method is used only when the the URL contains a question mark (and this property is set to Post). If the URL does not contain any parameter, the Post method can still be used by appending a question mark to the URL.

When the Post method is used in conjunction with the Gecko engine, ABCpdf obtains and stores the web page locally before invoking the engine. Since ABCpdf does not obtain additional headers from the Gecko engine, they are not sent in the request. The kind of headers that may not be sent include Accept, Accept-Language, Accept-Encoding, Keep-Alive, and Accept-Charset. The User-Agent may be different. In most situations, this is unimportant, but if you are relying on these headers, you can use the HtmlOptions.HttpAdditionalHeaders property to add your own headers to the request.


XHtmlOptions RetryCount Property. The number of times a page should be retried if unavailable or invalid. ABCpdf .NET PDF Library.

RetryCount Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 5 | No | The number of times a page should be retried if unavailable or invalid.

Notes

This property controls how many times ABCpdf will attempt to obtain a page.

HTML rendering may fail one time but succeed the next. This is often for reasons outside the control of ABCpdf.

So ABCpdf may attempt to re-request a page if it is not immediately available. This is analogous to clicking on the refresh button of a web browser if the page is failing to load.

See the ContentCount and the Timeout properties for how ABCpdf determines if a page is unavailable or invalid.

Example

The following example shows the effect that this parameter has on HTML rendering.

[C#]

using (Doc doc = new Doc()) {
  string theURL = "https://photojournal.jpl.nasa.gov/catalog/PIA24312";
  // Set minimum number of items a page of HTML should contain.
  // Otherwise the page will be assumed to be invalid.
  doc.HtmlOptions.ContentCount = 20;
  // Try to obtain html page up to 11 times
  doc.HtmlOptions.RetryCount = 10;
  // The page must be obtained in less then 10 seconds
  doc.HtmlOptions.Timeout = 10000;
  try {
    doc.AddImageUrl(theURL);
  }
  catch {
    // Page couldn't be loaded
  }
  // Save the document
  doc.Save(Server.MapPath("HtmlOptionsRetryCount.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theURL As String = "https://photojournal.jpl.nasa.gov/catalog/PIA24312"
  ' Set minimum number of items a page of HTML should contain.
  ' Otherwise the page will be assumed to be invalid.
  doc.HtmlOptions.ContentCount = 20
  ' Try to obtain html page up to 11 times
  doc.HtmlOptions.RetryCount = 10
  ' The page must be obtained in less then 10 seconds
  doc.HtmlOptions.Timeout = 10000
  Try
    doc.AddImageUrl(theURL)
      ' Page couldn't be loaded
  Catch
  End Try
  ' Save the document
  doc.Save(Server.MapPath("HtmlOptionsRetryCount.pdf"))
End Using

HtmlOptionsRetryCount.pdf


XHtmlOptions TargetLinks Property. Whether hyperlinks should be allowed to open new windows. ABCpdf .NET PDF Library.

TargetLinks Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether hyperlinks should be allowed to open new windows.

Notes

Whether hyperlinks with targets should be allowed to open in a new browser window.

In HTML, hyperlinks whose targets are neither empty, "_self", "_parent", nor "_top" will be opened in new browser window.

Setting this property to true allows you to mimic this behavior when the PDF document is viewed inside a browser.


XHtmlOptions Timeout Property. The maximum amount of time allowed for obtaining a page (ms). ABCpdf .NET PDF Library.

Timeout Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 20,000 | No | The maximum amount of time allowed for obtaining a page (ms).

Notes

HTML rendering can take some time.

If the time taken exceeds the Timeout then the page is assumed to be unavailable. Depending on the RetryCount settings the page may be re-requested or an error may be returned.

This value is measured in milliseconds.

Example

See the RetryCount property.


XHtmlOptions TransferModule Property. The module for obtaining URI/HTML data. ABCpdf .NET PDF Library.

TransferModule Property

Type | Default Value | Read Only | Description
[C#] TransferModuleType [Visual Basic] TransferModuleType | Default | No | The module for obtaining URI/HTML data.

Notes

This property specifies the module to obtain URI/HTML data.

The TransferModuleType enumeration can take any of the following values:

  • Default — this is currently the same as RetryNetWebRequestOnEngineAccessDenied.
  • EngineTransfer — the engine (i.e. MSHTML/WinINet) obtains the page.
  • NetWebRequest — System.Net.WebRequest is used to obtain the page.
  • RetryNetWebRequestOnEngineAccessDenied — the engine obtains the page. If the engine is denied access to local storage, System.Net.WebRequest is used to obtain the page. (Possibly more than one request sent.)

RetryNetWebRequestOnEngineAccessDenied is useful in restricted environment. When MSHTML downloads web pages, it needs to access the following shell folders (specified in "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" in the registry):

  • History — the default value is %LOCALAPPDATA%\Microsoft\Windows\History
  • Cache — the default value is "%LOCALAPPDATA%\Microsoft\Windows\Temporary Internet Files"
  • Cookies — the default value is %APPDATA%\Microsoft\Windows\Cookies

If the folders are not accessible, the fallback folders History, "Temporary Internet Files", and Cookies in %TEMP% are used. (I.e. %TEMP%\History, "%TEMP%\Temporary Internet Files", and %TEMP%\Cookies.)

For example, your application uses the "ASP.NET v4.0" application pool and the identity is ApplicationPoolIdentity, you need to grant "IIS APPPOOL\ASP.NET v4.0" access to the folders with %LOCALAPPDATA% = %SystemRoot%\System32\config\systemprofile\AppData\Local and %APPDATA% = %SystemRoot%\System32\config\systemprofile\AppData\Roaming or to the fallback folders with %TEMP% = %SystemRoot%\Temp. (E.g., the user group for the DefaultAppPool application pool with identity ApplicationPoolIdentity is "IIS APPPOOL\DefaultAppPool".) The folders' default values thus expand to:

  • History — %SystemRoot%\System32\config\systemprofile\AppData\Local\Microsoft\Windows\History
  • Cache — "%SystemRoot%\System32\config\systemprofile\AppData\Local\Microsoft\Windows\Temporary Internet Files"
  • Cookies — %SystemRoot%\System32\config\systemprofile\AppData\Roaming\Microsoft\Windows\Cookies

If MSHTML cannot access those folders (including the fallback folders), for specifying EngineTransfer, you may receive an exception containing something like "Unable to access URL. COM error 800c0008 in FACILITY_INTERNET. Not enough storage is available to process this command." ABCpdf with RetryNetWebRequestOnEngineAccessDenied specified will then, instead, obtain the HTML page using System.Net.WebRequest. In such a case, more than one request may be sent. Typically, this would manifest as three requests by ABCpdf for the same page.


XHtmlOptions UseActiveX Property. Whether to enable ActiveX. ABCpdf .NET PDF Library.

UseActiveX Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to enable ActiveX.

Notes

This property determines whether ActiveX is enabled.

By default ActiveX is disabled when rendering HTML documents.

This is done for good security reasons and we strongly recommend that you do not change this setting.

However if you are sure that your source documents do not pose a security risk you can enable ActiveX using this setting.

Compatibility. Not all ActiveX controls are compatible with ABCpdf. In particular some rely on being able to draw direct to screen which stops ABCpdf being able to use them.


XHtmlOptions UseJava Property. Whether to enable Java. ABCpdf .NET PDF Library.

UseJava Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to enable Java.

Notes

This property determines whether Java is enabled.

By default Java is disabled when rendering HTML documents.

This is done for good security reasons and we strongly recommend that you do not change this setting.

However if you are sure that your source documents do not pose a security risk you can enable Java using this setting.


XHtmlOptions UseNoCache Property. Whether any proxy servers should re-request items of content. ABCpdf .NET PDF Library.

UseNoCache Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether any proxy servers should re-request items of content.

Notes

This property determines whether no-cache is enabled.

Setting this property to true forces any intervening proxy server to re-request the page.

For the MSHTML engine, setting this property to true sets INTERNET_FLAG_PRAGMA_NOCACHE. WinINET will add request header Pragma: no-cache if going through a HTTP/1.0 proxy and request header Cache-Control: no-cache if going through a HTTP/1.1 proxy.

For the Gecko engine, setting this property to true sets the following flags.

  • LOAD_FLAGS_IS_REFRESH — the load should have the semantics of an HTML Meta-refresh tag (i.e., that the cache should be bypassed).
  • LOAD_FLAGS_BYPASS_HISTORY — history should not be updated.
  • LOAD_FLAGS_BYPASS_CACHE — the local web cache should be bypassed (but an intermediate proxy cache could still be used to satisfy the load).
  • LOAD_FLAGS_BYPASS_PROXY — any intermediate proxy caches should be bypassed (i.e., that the content should be loaded from the origin server).


XHtmlOptions UseProxyServer Property. Whether to use a proxy server. ABCpdf .NET PDF Library.

UseProxyServer Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to use a proxy server.

Notes

This property determines whether to use a proxy server.

The process of detecting and using a proxy server involves an overhead that is usually not necessary. For this reason, by default, we do not use proxy server settings.

Setting this property to true will mean that ABCpdf will detect and use proxy server settings.

Transitioning between proxy and non-proxy settings also involves an overhead. So it is best to keep this value constant for all calls to AddImageUrl or AddImageHtml.


XHtmlOptions UserAgent Property. The user-agent string. ABCpdf .NET PDF Library.

UserAgent Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "" | No | The user-agent string.

Notes

This property determines the user-agent string for the MSHTML engine. If it is empty, a default user-agent string for Internet Explorer (version 8 or below, depending on the version of Internet Explorer) is used.

This is used for downloading the web page as well as all linked resources, whereas User-Agent set in HttpAdditionalHeaders is used only for downloading the web page. If User-Agent is also set in HttpAdditionalHeaders, the HTTP header takes precedence (for downloading the web page).


XHtmlOptions UseResync Property. Whether to resynchronize pages. ABCpdf .NET PDF Library.

UseResync Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to resynchronize pages.

Notes

This property determines whether resync is enabled.

When a page is resynchronized, the server is requested to send the new version of the page on the condition that the page in the engine's cache is stale.

Setting this property to true sets INTERNET_FLAG_RESYNCHRONIZE. WinINET will send an If-Modified-Since or If-None-Match request header to allow a 304 response, and it may add a request header, as UseNoCache does, to help ensure that an intermediary (proxy) does not return a previously cached result.


XHtmlOptions UseScript Property. Whether to enable JavaScript and VBScript. ABCpdf .NET PDF Library.

UseScript Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to enable JavaScript and VBScript.

Notes

This property determines whether JavaScript and VBScript are enabled.

By default client-side script such as JavaScript is enabled when rendering HTML documents. You may wish to change this default setting for performance or security reasons.

The ABCChrome engine relies on JavaScript for HTML analysis. If you disable it the HtmlOptions.Media, HtmlOptions.AddForms, HtmlOptions.AddTags and HtmlOptions.OnLoadScript will cease to operate. In addition the HtmlOptions.BrowserWidth zero setting, which allows the page autosize behavior, will default to the HtmlOptions.InitialWidth setting.

If you have a server edition of Windows (e.g. Windows Server 2008) and are using the MSHTML engine, you may need to also disable Enhanced Security Configuration for user running the program/application pool to allow JavaScript execution.

Script-Accessible Functions and Properties. These are functions and properties that script inside HTML can access. The function signatures shown are in C#-like syntax. You'll need to pass in the correct number of arguments.

[C#]

bool ABCpdf_RenderWait();

[Visual Basic]
Private Function ABCpdf_RenderWait() As Boolean

MSHTML only window.external.ABCpdf_RenderWait – Delays ABCpdf's rendering of the HTML page.

Syntax

Params
Name | Description
return | True if ABCpdf waits (i.e. the function succeeds), otherwise false.

Notes 		When this function is called before the page load is considered complete, the page load is not considered complete until ABCpdf_RenderComplete is called. This function returns false if ABCpdf_RenderComplete has been called. This is useful if the page relies on timeout/asynchronous events (AJAX).

[C#]

bool ABCpdf_RenderComplete();
bool ABCpdf_RenderComplete(bool force);

[Visual Basic]
Private Function ABCpdf_RenderComplete() As Boolean
Private Function ABCpdf_RenderComplete(ByVal force As Boolean) As Boolean

MSHTML only window.external.ABCpdf_RenderComplete – Resumes ABCpdf's rendering of the HTML page.

Syntax

Params
Name | Description
force | Whether ABCpdf ignores normal indications of page load completion. The default value is false.
return | True if ABCpdf resumes rendering as requested (i.e. the function succeeds), otherwise false.

Notes 		This function can be called whether ABCpdf_RenderWait has/has not been called. If force is false, ABCpdf resumes normal rendering. If force is true, ABCpdf starts rendering immediately, ignoring all other indications of page load completion. This function returns false if force is false and the function has been previously called with force true. This is useful if the page relies on timeout/asynchronous events (AJAX).

Examples

[C#]

Doc doc = new Doc();
doc.HtmlOptions.Engine = EngineType.MSHtml;
doc.HtmlOptions.UseScript = true;

// Render after 3 seconds
doc.HtmlOptions.OnLoadScript = "(function(){"
  + " window.external.ABCpdf_RenderWait();"
  + " setTimeout(function(){ window.external.ABCpdf_RenderComplete(); }, 3000);"
  + "})();";

doc.AddImageUrl("http://www.websupergoo.com");
doc.Save(Server.MapPath("wsg.pdf"));

[Visual Basic]
Dim theDoc As Doc = New Doc()
theDoc.HtmlOptions.Engine = EngineType.MSHtml
theDoc.HtmlOptions.UseScript = True

' Render after 3 seconds
theDoc.HtmlOptions.OnLoadScript = "(function(){" _
  & " window.external.ABCpdf_RenderWait();" _
  & " setTimeout(function(){ window.external.ABCpdf_RenderComplete(); }, 3000);" _
  & "})();"

theDoc.AddImageUrl("http://www.websupergoo.com")
theDoc.Save(Server.MapPath("wsg.pdf"))

[C#]

bool ABCpdf_go;

[Visual Basic]
Dim ABCpdf_go As Boolean

Gecko only window.ABCpdf_go – Specifies whether ABCpdf proceeds to render the HTML page.

Syntax

Params
Value | Description
undefined (initial value), true | ABCpdf proceeds to render the HTML page.
false | ABCpdf waits.

Notes 		UseScript has to be true and OnLoadScript has to be non-empty for this property to be effectual. ABCpdf will wait for this property to be either undefined or true before rendering the HTML page. The whole HTML rendering operation is still subject to the Timeout property's value. Usually, this property is set to false in OnLoadScript and is also set to true in an event listener added in OnLoadScript. If assignments to this property are provided in both OnLoadScript and the script in the web page, please refer to the notes in OnLoadScript for the order of execution.

Examples

[C#]

Doc doc = new Doc();
doc.HtmlOptions.Engine = EngineType.Gecko;
doc.HtmlOptions.UseScript = true;

// Render after 3 seconds
doc.HtmlOptions.OnLoadScript = "(function(){"
  + " window.ABCpdf_go = false;"
  + " setTimeout(function(){ window.ABCpdf_go = true; }, 3000);"
  + "})();";

doc.AddImageUrl("http://www.websupergoo.com");
doc.Save(Server.MapPath("wsg.pdf"));

[Visual Basic]
Dim theDoc As Doc = New Doc()
theDoc.HtmlOptions.Engine = EngineType.Gecko
theDoc.HtmlOptions.UseScript = True

' Render after 3 seconds
theDoc.HtmlOptions.OnLoadScript = "(function(){" _
  & " window.ABCpdf_go = false;" _
  & " setTimeout(function(){ window.ABCpdf_go = true; }, 3000);" _
  & "})();"

theDoc.AddImageUrl("http://www.websupergoo.com")
theDoc.Save(Server.MapPath("wsg.pdf"))

ABCChrome only ABCChromeExt.Render() – Triggers immediate conversion of the HTML page.

Syntax

[C#]

void ABCChromeExt.Render();

[Visual Basic]
Private Sub Render()

Params
Value | Description
n/a | n/a

Notes

Calling the method ABCChromeExt.Render() in any JavaScript executed within an HTML page will force the immediate rendering of the page to PDF without delay.

This option cannot be used in HtmlOptions.OnLoadScript - no error will occur but processing will not be curtailed.

You will need to set a sensible value for HtmlOptions.RenderDelay to allow processing to continue past the OnLoad event.

Example

The following example shows one method of crawling and transferring an entire site to PDF. Here, we use JavaScript to determine the links present on the page. However, you could equally well use the HtmlCallback to do the same thing.

[C#]

using (Doc doc = new Doc()) {
  string theURL = "https://photojournal.jpl.nasa.gov/gallery/snt";
  // Set HTML options
  doc.HtmlOptions.AddLinks = true;
  doc.HtmlOptions.UseScript = true;
  doc.HtmlOptions.PageCacheEnabled = false;
  // JavaScript is used to extract all links from the page
  doc.HtmlOptions.OnLoadScript = "var hrefCollection = document.all ? document.all.tags(\"a\") : document.getElementsByTagName(\"a\");" +
    "var allLinks = \"\";" +
    "for(i = 0; i < hrefCollection.length; ++i) {" +
    "if (i > 0)" +
    "  allLinks += \",\";" +
    "allLinks += hrefCollection.item(i).href;" +
    "};" +
    "document.documentElement.abcpdf = allLinks;";
  // Array of links - start with base URL
  ArrayList links = new ArrayList();
  links.Add(theURL);
  for (int i = 0; i < links.Count; i++) {
    // Stop if we render more than 20 pages
    if (doc.PageCount > 20)
      break;
    // Add page
    doc.Page = doc.AddPage();
    int theID = doc.AddImageUrl(links[i] as string);
    // Links from the rendered page
    string allLinks = doc.HtmlOptions.GetScriptReturn(theID);
    string[] newLinks = allLinks.Split(new char[] { ',' });
    foreach (string link in newLinks) {
      // Check to see if we allready rendered this page
      if (links.BinarySearch(link) < 0) {
        // Skip links inside the page
        int pos = link.IndexOf("#");
        if (!(pos > 0 && links.BinarySearch(link.Substring(0, pos)) >= 0)) {
          if (link.StartsWith(theURL)) {
            links.Add(link);
          }
        }
      }
    }
    // Add other pages
    while (true) {
      doc.FrameRect();
      if (!doc.Chainable(theID))
        break;
      doc.Page = doc.AddPage();
      theID = doc.AddImageToChain(theID);
    }
  }
  // Link pages together
  doc.HtmlOptions.LinkPages();
  // Flatten all pages
  for (int i = 1; i <= doc.PageCount; i++) {
    doc.PageNumber = i;
    doc.Flatten();
  }
  // Save the document
  doc.Save(Server.MapPath("HtmlOptionsJavaScript.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theURL As String = "https://photojournal.jpl.nasa.gov/gallery/snt"
  ' Set HTML options
  doc.HtmlOptions.AddLinks = True
  doc.HtmlOptions.UseScript = True
  doc.HtmlOptions.PageCacheEnabled = False
  ' JavaScript is used to extract all links from the page
  doc.HtmlOptions.OnLoadScript = "var hrefCollection = document.all ? document.all.tags(""a"") : document.getElementsByTagName(""a"");" + "var allLinks = """";" + "for(i = 0; i < hrefCollection.length; ++i) {" + "if (i > 0)" + vbTab & "allLinks += "","";" + "allLinks += hrefCollection.item(i).href;" + "};" + "document.documentElement.abcpdf = allLinks;"
  ' Array of links - start with base URL
  Dim links As New ArrayList()
  links.Add(theURL)
  Dim i As Integer = 0
  While i < links.Count
    ' Stop if we render more than 20 pages
    If doc.PageCount > 20 Then
      Exit While
    End If
    ' Add page
    doc.Page = doc.AddPage()
    Dim theID As Integer = doc.AddImageUrl(TryCast(links(i), String))
    ' Links from the rendered page
    Dim allLinks As String = doc.HtmlOptions.GetScriptReturn(theID)
    Dim newLinks As String() = allLinks.Split(New Char() {","C})
    For Each link As String In newLinks
      ' Check to see if we allready rendered this page
      If links.BinarySearch(link) < 0 Then
        ' Skip links inside the page
        Dim pos As Integer = link.IndexOf("#")
        If Not (pos > 0 AndAlso links.BinarySearch(link.Substring(0, pos)) >= 0) Then
          If link.StartsWith(theURL) Then
            links.Add(link)
          End If
        End If
      End If
    Next
    ' Add other pages
    While True
      doc.FrameRect()
      If Not doc.Chainable(theID) Then
        Exit While
      End If
      doc.Page = doc.AddPage()
      theID = doc.AddImageToChain(theID)
    End While
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While
  ' Link pages together
  doc.HtmlOptions.LinkPages()
  ' Flatten all pages
  Dim i As Integer = 1
  While i <= doc.PageCount
    doc.PageNumber = i
    doc.Flatten()
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While
  ' Save the document
  doc.Save(Server.MapPath("HtmlOptionsJavaScript.pdf"))
End Using

HtmlOptionsJavaScript.pdf - [Page 1] | HtmlOptionsJavaScript.pdf - [Page 2]
HtmlOptionsJavaScript.pdf - [Page 3] | HtmlOptionsJavaScript.pdf - [Page 4]


XHtmlOptions UseTheme Property. Whether to use themes. ABCpdf .NET PDF Library.

UseTheme Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | Yes | Whether to use themes.

Notes

This property determines whether UI theme is applied to controls.

The theme is only relevant if you are using the MSHTML engine for IE9 or earlier. As such it is likely that this function will be deprecated in future releases of ABCpdf.

To change the value, use SetTheme.


XHtmlOptions UseVideo Property. Whether to enable Video. ABCpdf .NET PDF Library.

UseVideo Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to enable Video.

Notes

This property determines whether Video is enabled.

By default Video is disabled when rendering HTML documents.

This is done for good security reasons and we strongly recommend that you do not change this setting.

However if you are sure that your source documents do not pose a security risk you can enable Video using this setting.


XHtmlProcessOptions Class

Represents the options for new HTML worker processes.

System.Object
   WebSupergoo.ABCpdf12.XHtmlProcessOptions

Method | Description
SkipEngineDependencyCheck | Skip the check of engine-dependent options that are set since last HTML import.
StartPool | Start the process pool for the HTML Engine.

Property | Description
MaxProcesses | The maximum number of processes for the HTML Engine.
PoolHasStarted | Whether the process pool for the HTML Engine has started.
ProcessCount | The number of existing processes for the HTML Engine.
Domain | The domain or server containing the user.
IdleTimeout | The maximum time a process can be idle before being terminated (ms).
LoadUserProfile | Whether to load the user profile.
Password | The password for the user.
RetryCount | The number of times an operation should be retried if there is a problem with the process.
UserName | The user name.


XHtmlProcessOptions SkipEngineDependencyCheck Function. Skip the check of engine-dependent options that are set since last HTML import. ABCpdf .NET PDF Library.

SkipEngineDependencyCheck Method

Skip the check of engine-dependent options that are set since last HTML import.

Syntax

[C#]
void SkipEngineDependencyCheck()

[Visual Basic]
Sub SkipEngineDependencyCheck()

Params
Name | Description
none |

Notes

This skips the check of engine-dependent options to avoid an exception. The values of engine-dependent options should be set after Engine has been set because the value applies only to the selected engine. To make sure that the set engine-dependent options is applied to the engine that is used for HTML import or process pool operation (e.g. StartPool), the HTML import or process pool operation checks for the equality of the set values and the values for the newly specified engine.

MaxProcesses depends on the selected engine.


XHtmlProcessOptions StartPool Function. Start the process pool for the HTML Engine. ABCpdf .NET PDF Library.

StartPool Method

Start the process pool for the HTML Engine.

Syntax

[C#]
bool StartPool()

[Visual Basic]
Function StartPool() As Boolean

Params
Name | Description
return | Whether the process pool is started anew.

Notes

This starts the process pool for the HTML Engine (without rendering an HTML page).

This method returns false if the process pool has been started before the method is called.


XHtmlProcessOptions MaxProcesses Property. The maximum number of processes for the HTML Engine. ABCpdf .NET PDF Library.

MaxProcesses Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | 10 (from registry value HtmlProcessPoolSize) | No | The maximum number of processes for the HTML Engine.

Notes

This specifies the maximum number of processes for the HTML Engine, so the value depends on the selected engine. You can call SkipEngineDependencyCheck to avoid getting an exception for non-application of engine-dependent options.

The initial value comes from registry value HtmlProcessPoolSize if the engine supports a variable number of processes. Changes made to the property value affect only the specified engine and are not propagated to the registry.

For the MSHtml engine, the property value is always 1 because the out-of-process execution (see registry value MSHtmlBootstrap) only supports 1 process. Attempt to set this property for the MSHtml engine will cause an exception.

For the Gecko engine, the property value is fixed after the process pool has started. Attempt to change the property value for the Gecko engine while the process pool has started will cause an exception.

For the Chrome engine, the property value specifies the upper bound of the number of processes for creating worker processes. Decreasing the property value below ProcessCount does not terminate existing worker processes.


XHtmlProcessOptions PoolHasStarted Property. Whether the process pool for the HTML Engine has started. ABCpdf .NET PDF Library.

PoolHasStarted Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | n/a | Yes | Whether the process pool for the HTML Engine has started.

Notes

This gets whether the process pool for the HTML Engine has started.

The process options are used only at the start of the process pool. If the process pool has started, the options are ignored.

You can stop the process pool by calling XHtmlOptions.EndTasks so that all worker processes are terminated.


XHtmlProcessOptions ProcessCount Property. The number of existing processes for the HTML Engine. ABCpdf .NET PDF Library.

ProcessCount Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The number of existing processes for the HTML Engine.

Notes

This gets the number of existing processes for the HTML Engine.


XHtmlProcessOptions Domain Property. The domain or server containing the user. ABCpdf .NET PDF Library.

Domain Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | null | No | The domain or server containing the user.

Notes

This specifies the domain or server containing the user for new worker processes.


XHtmlProcessOptions IdleTimeout Property. The maximum time a process can be idle before being terminated (ms). ABCpdf .NET PDF Library.

IdleTimeout Property

Type | Default Value | Read Only | Description
[C#] long? [Visual Basic] Nullable(Of Long) | 600,000 (10 minutes) | No | The maximum time a process can be idle before being terminated (ms).

Notes

Set this property to null to specify infinity.

After a process has been idle continuously for the specified time, the process shall be terminated.


XHtmlProcessOptions LoadUserProfile Property. Whether to load the user profile. ABCpdf .NET PDF Library.

LoadUserProfile Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to load the user profile.

Notes

This specifies whether to load the user profile for new worker processes.


XHtmlProcessOptions Password Property. The password for the user. ABCpdf .NET PDF Library.

Password Property

Type | Default Value | Read Only | Description
[C#] SecureString [Visual Basic] SecureString | null | No | The password for the user.

Notes

This specifies the password for the user for new worker processes.

The SecureString must not be disposed of while the process pool is not stopped.


XHtmlProcessOptions RetryCount Property. The number of times an operation should be retried if there is a problem with the process. ABCpdf .NET PDF Library.

RetryCount Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 3 | No | The number of times an operation should be retried if there is a problem with the process.

Notes

The problems concerned are not related to a page's content.

The process pool manages the communication with the processes. If the communication is problematic or a process becomes unstable, the process is terminated and a retry may take place.


XHtmlProcessOptions UserName Property. The user name. ABCpdf .NET PDF Library.

UserName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | null | No | The user name.

Notes

This specifies the user name for new worker processes.

For applications running in a restricted environment, you may need to install TaskGardener to specify the user.


XHtmlFireShield

XHtmlFireShield Class

The FireShield settings that dynamically determine the file access that should be allowed for HTML conversion.

FireShield lets you dynamically assign file permissions at runtime, to ensure that your HTML engine only accesses the locations you want.

You can provide rules so that each request can be assigned custom rights and permissions, dependent on the type of conversion.

System.Object
   WebSupergoo.ABCpdf12.XHtmlFireShield

Method | Description
none |

Property | Description
Enabled | Whether FireShield is enabled.
Policy | File access enforcement for the worker process.
Rules | File access rules for the worker process.
Log | File access log for the worker process.


XHtmlFireShield Enabled Property. Whether FireShield is enabled. ABCpdf .NET PDF Library.

Enabled Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether FireShield is enabled.

Notes

Whether FireShield is enabled.

Even when the Policy is None FireShield is still loaded and enabled to allow rules to be changed without having to restart worker processes.

This property allows you to entirely disable FireShield. However in general you should prefer to simply set the Policy and leave FireShield enabled.


XHtmlFireShield Policy Property. File access enforcement for the worker process. ABCpdf .NET PDF Library.

Policy Property

Type | Default Value | Read Only | Description
[C#] Enforcement [Visual Basic] Enforcement | Enforcement.None | No | File access enforcement for the worker process

Notes

File access enforcement for the worker process.

This property allows you to specify the type of action that should be taken if the HTML engine attempts to access a resource to which it is not allowed.

You can choose from the following options:

  • None - No enforcement of the access rules.
  • Deny - Prohibit access if the rules do not specify that access should be allowed. Always report an error if this happens.
  • Mask - Prohibit access if the rules do not specify that access should be allowed. Attempt to continue the operation without error.
  • Log - If the rules do not specify that access should be allowed, allow it, but also log the file path via the Log property.


XHtmlFireShield Rules Property. File access rules for the worker process. ABCpdf .NET PDF Library.

Rules Property

Type | Default Value | Read Only | Description
[C#] IList<XHtmlFireShieldRule> [Visual Basic] IList<XHtmlFireShieldRule> | See below. | No | File access rules for the worker process

Notes

File access rules for the worker process.

To determine whether access is allowed to a specific path, the rules are evaluated in sequence.

A path may match with multiple rules and it is the final evaluated access type at the end of the sequence, which determines the access level. Rules are case insensitive.

At the start of processing the evaluated access type is Deny. This means that, by default, all file access is denied.

For each rule, if the file path starts with the rule path and the file name matches the pattern, then the rule access type is assigned to the evaluated access type.

In this way you can set up a rule sequence which matches on a general level but then denies on a specific level. For example you might allow access to all files in a folder but then deny access to .aspx files within that folder.

The default set of rules is reasonable for most situations. However you may wish to modify it dependent on your needs.


XHtmlFireShield Log Property. File access log for the worker process. ABCpdf .NET PDF Library.

Log Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | "" | No | File access log for the worker process.

Notes

File access log for the worker process.

In the event that the Policy is set to Log, files to which access should be denied, are reported via this property.


XHtmlFireShieldRule

XHtmlFireShieldRule Class

The options for new worker processes.

System.Object
   WebSupergoo.ABCpdf12.XHtmlFireShieldRule

Method | Description
XHtmlFireShieldRule | Access rule constructor.

Property | Description
Path | The path to the resource which should be controlled.
Pattern | A selected file type within the path, that that should be the target of control.
Access | The type of control to exercise over the resource.


XHtmlFireShieldRule XHtmlFireShieldRule Function. Access rule constructor. ABCpdf .NET PDF Library.

XHtmlFireShieldRule Function

Access rule constructor

Syntax

[C#]
XHtmlFireShieldRule()
XHtmlFireShieldRule(string path, string pattern, AccessType access)

[Visual Basic]
XHtmlFireShieldRule()
XHtmlFireShieldRule(string path, string pattern, AccessType access)

Params
Name | Description
none |

Notes

Access rule constructor.


XHtmlFireShieldRule Path Property. The path to the resource which should be controlled. ABCpdf .NET PDF Library.

Path Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | Yes | The path to the resource which should be controlled

Notes

The path to the resource which should be controlled.


XHtmlFireShieldRule Pattern Property. A selected file type within the path, that that should be the target of control. ABCpdf .NET PDF Library.

Pattern Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | Yes | A selected file type within the path, that that should be the target of control

Notes

A selected file type within the path, that that should be the target of control.

Such file types are described using standard DOS format. For example to match on DLLs you might specify "*.dll".


XHtmlFireShieldRule Access Property. The type of control to exercise over the resource. ABCpdf .NET PDF Library.

Access Property

Type | Default Value | Read Only | Description
[C#] AccessType [Visual Basic] AccessType | null | Yes | The type of control to exercise over the resource

Notes

The type of control to exercise over the resource.

You can choose from the following options:

  • Alllow - Allow full access to the resource.
  • Deny - Do not allow any access to the resource.


XImage Class

Allows access to images stored in files or in data. XImages can be added to a document using the Doc.AddImageObject method.

System.Object
   WebSupergoo.ABCpdf12.XImage

Implements: IDisposable

Method | Description
S» Throws Exceptions FromFile | Creates an XImage from a file path.
S» Throws Exceptions FromData | Creates an XImage from an array of bytes.
S» Throws Exceptions FromStream | Creates an XImage from a Stream.
Dispose | Dispose of the object.
Clear | Clears the image.
Throws Exceptions SetData | Load an image from data.
Throws Exceptions SetFile | Load an image from a file.
Throws Exceptions SetMask | Assign a soft mask to the image.
Throws Exceptions SetStream | Load an image from stream.

Property | Description
Throws Exceptions AppliedOrientation | The orientation transform that should be applied to the image.
BoundingBox | The physical bounds of the image in points.
Frame | The currently selected frame.
FrameCount | The number of frames in the image.
FrameRate | The default frame rate for a moving image.
HasRealRes | Whether the image specifies the resolution.
Height | The height of the current frame (pixels).
HRes | The horizontal resolution of the current frame (DPI).
Indirect | Whether the image will be added using indirect mode.
NeedsFile | Whether the file needs to exist.
NeedsStream | Whether the stream needs be kept open.
Orientation | The orientation of the current frame.
Selection | The current selection rectangle.
Type | The type of image.
VRes | The vertical resolution of the current frame (DPI).
Width | The width of the current frame (pixels).


XImage FromFile Function. Creates an XImage from a file path. ABCpdf .NET PDF Library.

FromFile Function

Creates an XImage from a file path.

Syntax

[C#]
static XImage FromFile(string path, XReadOptions options)

[Visual Basic]
Shared Function FromFile(path As String, options As XReadOptions) As XImage

Throws Exceptions may throw Exception()

Params
Name | Description
path | The path to the graphic file.
options | The settings for the read. The XImage takes ownership of this parameter. This may be null.
return | The resulting IndirectObject.

Notes

The file will typically be one of the following types: JPEG, GIF, TIFF, BMP, PNG, PSD, PDB, EXIF, WMF, EMF, EPS, PS or SWF (Flash).

For details of additional formats which are supported and the way they are imported, see the ReadModule property and the the Doc.Read method.

The advantage of this method over SetFile, is that you can specify the ReadModule you would like to use. This allows precise control over the way that your graphics are imported.

In addition you can also control the way that transparency is treated using the PreserveTransparency property.

The object takes the ownership of the XReadOptions, which is disposed of when the object is disposed of. You can make the object release the ownership without disposing of the XReadOptions using the parameterized overloads of Dispose and Clear. The XReadOptions must not be modified as long as the object has the ownership.

If the returned XImage has the NeedsFile property set to true, you must ensure that the specified file will remain present and unmodified until the XImage object is cleared, disposed of, or garbage-collected.


XImage FromData Function. Creates an XImage from an array of bytes. ABCpdf .NET PDF Library.

FromData Function

Creates an XImage from an array of bytes.

Syntax

[C#]
static XImage FromData(byte[] data, XReadOptions options)

[Visual Basic]
Shared Function FromData(data() As Byte, options As XReadOptions) As XImage

Throws Exceptions may throw Exception()

Params
Name | Description
data | The data containing the graphic.
options | The settings for the read. The XImage takes ownership of this parameter. This may be null.
return | The resulting IndirectObject.

Notes

The data will typically be one of the following types: JPEG, GIF, TIFF, BMP, PNG, PSD, PDB, EXIF, WMF, EMF, EPS, PS or SWF (Flash).

For details of additional formats which are supported and the way they are imported, see the ReadModule property and the the Doc.Read method.

The advantage of this method over SetFile, is that you can specify the ReadModule you would like to use. This allows precise control over the way that your graphics are imported.

In addition you can also control the way that transparency is treated using the PreserveTransparency property.

The object takes the ownership of the XReadOptions, which is disposed of when the object is disposed of. You can make the object release the ownership without disposing of the XReadOptions using the parameterized overloads of Dispose and Clear. The XReadOptions must not be modified as long as the object has the ownership.

The array of bytes should not be modified until the XImage object is cleared, disposed of, or garbage-collected.


XImage FromStream Function. Creates an XImage from a Stream. ABCpdf .NET PDF Library.

FromStream Function

Creates an XImage from a Stream.

Syntax

[C#]
static XImage FromStream(Stream stream, XReadOptions options)

[Visual Basic]
Shared Function FromStream(stream As Stream, options As XReadOptions) As XImage

Throws Exceptions may throw Exception()

Params
Name | Description
stream | The stream containing the graphic.
options | The settings for the read. The XImage takes ownership of this parameter. This may be null.
return | The resulting IndirectObject.

Notes

The stream will typically be one of the following types: JPEG, GIF, TIFF, BMP, PNG, PSD, PDB, EXIF, WMF, EMF, EPS, PS or SWF (Flash).

For details of additional formats which are supported and the way they are imported, see the ReadModule property and the the Doc.Read method.

The advantage of this method over SetStream, is that you can specify the ReadModule you would like to use. This allows precise control over the way that your graphics are imported.

In addition you can also control the way that transparency is treated using the PreserveTransparency property.

The object takes the ownership of the XReadOptions, which is disposed of when the object is disposed of. You can make the object release the ownership without disposing of the XReadOptions using the parameterized overloads of Dispose and Clear. The XReadOptions must not be modified as long as the object has the ownership.

If the returned XImage has the NeedsStream property set to true, you must ensure that the specified stream will remain present and unmodified until the XImage object is cleared, disposed of, or garbage-collected. When this happens the XImage takes ownership of the Stream, which is disposed of when the object is disposed of. You can make the object release the ownership, without disposing of the Stream using the parameterized overloads of Dispose and Clear.


XImage Dispose Function. Dispose of the object. ABCpdf .NET PDF Library.

Dispose Function

Dispose of the object.

Syntax

[C#]
void Dispose()
void Dispose(out XReadOptions outOptions, out Stream outStream)
protected void Dispose(bool disposing)

[Visual Basic]
Sub Dispose()
Sub Dispose(<Out> ByRef outOption As XReadOptions, <Out> ByRef outStream As Stream)
Protected Sub Dispose(disposing As Boolean)

Params
Name | Description
outOptions | The XReadOptions used to create the object.
outStream | The Stream used to create the object if NeedsStream is true.

Notes

You can call this function to explicitly dispose of an object and reduce the garbage collection overhead.

The overload without parameters disposes of the XReadOptions and of the Stream.

The overload with output parameters returns the XReadOptions and the Stream. The returned objects have not been disposed of.

This method follows the standard design pattern for objects implementing the IDisposable interface. The protected Dispose method can be overridden for sub-classes wishing to dispose of additional objects.

Do not attempt to use an object after calling Dispose.


XImage Clear Function. Clears the image. ABCpdf .NET PDF Library.

Clear Function

Clears the image.

Syntax

[C#]
void Clear()
void Clear(out XReadOptions outOptions, out Stream outStream)[Visual Basic]
Sub Clear()
Sub Clear(<Out> ByRef outOption As XReadOptions, <Out> ByRef outStream As Stream)

Params
Name | Description
outOptions | The XReadOptions used to create the object.
outStream | The Stream used to create the object if NeedsStream is true.

Notes

Use this method to release resources and return the image to a just-created state.

The overload without parameters disposes of the XReadOptions and of the Stream.

The overload with output parameters returns the XReadOptions and the Stream. The returned objects have not been disposed of.


XImage SetData Function. Load an image from data. ABCpdf .NET PDF Library.

SetData Function

Load an image from data.

Syntax

[C#]
void SetData(byte[] data)

[Visual Basic]
Sub SetData(data() As Byte)

Throws Exceptions may throw Exception()

Params
Name | Description
data | The data containing the graphic.

Notes

Load an image from data. The data is expected to be provided as an array of bytes.

The data can be any of the following types: JPEG, GIF, TIFF, BMP, PNG, PSD, PDB, EXIF, WMF, EMF, EPS, PS or SWF (Flash).

Ultimately each import goes through a ReadModule so for details of additional formats supported and the way they are imported, see the ReadModule property.

Different images within the file can be accessed using the Frame property. Different portions of the image can be selected using the Selection property.

Example

Here we read a TIFF file and present the data to the XImage object. We then add the image to our document and then save the PDF.

[C#]

XImage theImg = new XImage();
Doc doc = new Doc();
// read the data from a file
string thePath = Server.MapPath("../mypics/mypic.jpg");
FileStream theStream = File.OpenRead(thePath);
byte[] theData = new byte[theStream.Length];
theStream.Read(theData, 0, (int)theStream.Length);
theStream.Close();
// place the data into the image
theImg.SetData(theData);
doc.Rect.Inset(20, 20);
doc.AddImageObject(theImg, false);
theImg.Clear();
doc.Save(Server.MapPath("imagesetdata.pdf"));
doc.Clear();

[Visual Basic]
Dim theImg As New XImage()
Dim doc As New Doc()
' read the data from a file
Dim thePath As String = Server.MapPath("../mypics/mypic.jpg")
Dim theStream As FileStream = File.OpenRead(thePath)
Dim theData As Byte() = New Byte(theStream.Length - 1) {}
theStream.Read(theData, 0, DirectCast(theStream.Length, Integer))
theStream.Close()
' place the data into the image
theImg.SetData(theData)
doc.Rect.Inset(20, 20)
doc.AddImageObject(theImg, False)
theImg.Clear()
doc.Save(Server.MapPath("imagesetdata.pdf"))
doc.Clear()

imagesetdata.pdf


XImage SetFile Function. Load an image from a file. ABCpdf .NET PDF Library.

SetFile Function

Load an image from a file.

Syntax

[C#]
void SetFile(string path)

[Visual Basic]
Sub SetFile(path As String)

Throws Exceptions may throw Exception()

Params
Name | Description
path | The path to the graphic file.

Notes

Load an image from file.

The file can be any of the following types: JPEG, GIF, TIFF, BMP, PNG, PSD, PDB, EXIF, WMF, EMF, EPS, PS or SWF (Flash).

Ultimately each import goes through a ReadModule so for details of additional formats supported and the way they are imported, see the ReadModule property.

Different images within the file can be accessed using the Frame property. Different portions of the image can be selected using the Selection property.

Example

Here we open a TIFF file using the XImage object. After we've opened the file we add the image to our document and then save the PDF.

[C#]

XImage theImg = new XImage();
Doc doc = new Doc();
theImg.SetFile(Server.MapPath("../mypics/mypic.jpg"));
doc.Rect.Inset(20, 20);
doc.AddImageObject(theImg, false);
theImg.Clear();
doc.Save(Server.MapPath("imagesetfile.pdf"));
doc.Clear();

[Visual Basic]
Dim theImg As New XImage()
Dim doc As New Doc()
theImg.SetFile(Server.MapPath("../mypics/mypic.jpg"))
doc.Rect.Inset(20, 20)
doc.AddImageObject(theImg, False)
theImg.Clear()
doc.Save(Server.MapPath("imagesetfile.pdf"))
doc.Clear()

imagesetfile.pdf


XImage SetMask Function. Assign a soft mask to the image. ABCpdf .NET PDF Library.

SetMask Function

Assign a soft mask to the image.

Syntax

[C#]
void SetMask(XImage mask, bool invert)

[Visual Basic]
Sub SetMask(mask As XImage, invert As Boolean)

Throws Exceptions may throw Exception()

Params
Name | Description
mask | The image containing the soft mask.
invert | Whether to invert the mask.

Notes

Assign a soft mask or alpha channel. Soft masks are used to assign levels of transparency to an image.

The mask provided will be converted to a grayscale intensity map and may be scaled to ensure that the dimensions of the mask match those of the image. The assigned mask applies to all frames of the current image.

If the Invert parameter is set then the mask will be inverted - making transparent areas opaque and opaque areas transparent.

Different images within the mask can be accessed using the Frame property. Different portions of the mask can be selected using the Selection property.

Note that transparency is only applied to an Image if the Indirect property is true (which is generally the case).

Example

Here we read a TIFF file and present the data to the Image object. We then read a mask image and assign that to our Image. Finally we add the image to our document and then save the PDF.

[C#]

using (Doc doc = new Doc()) {
  XImage theImg = new XImage();
  XImage theMsk = new XImage();
  theImg.SetFile(Server.MapPath("../mypics/mypic.jpg"));
  theMsk.SetFile(Server.MapPath("../mypics/mymask.jpg"));
  theImg.SetMask(theMsk, true);
  theMsk.Clear();
  doc.Color.String = "0 0 0";
  doc.FillRect();
  doc.Rect.Inset(20, 20);
  doc.AddImageObject(theImg, true);
  theImg.Clear();
  doc.Save(Server.MapPath("imagesetmask.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theImg As New XImage()
  Dim theMsk As New XImage()
  theImg.SetFile(Server.MapPath("../mypics/mypic.jpg"))
  theMsk.SetFile(Server.MapPath("../mypics/mymask.jpg"))
  theImg.SetMask(theMsk, True)
  theMsk.Clear()
  doc.Color.String = "0 0 0"
  doc.FillRect()
  doc.Rect.Inset(20, 20)
  doc.AddImageObject(theImg, True)
  theImg.Clear()
  doc.Save(Server.MapPath("imagesetmask.pdf"))
End Using

Given the following input images.

mypic.jpg
mymask.jpg

This is the kind of output you might expect.

imagesetmask.pdf


XImage SetStream Function. Load an image from stream. ABCpdf .NET PDF Library.

SetStream Function

Load an image from stream.

Syntax

[C#]
void SetStream(Stream stream)

[Visual Basic]
Sub SetStream(stream As Stream)

Throws Exceptions may throw Exception()

Params
Name | Description
Stream | The stream containing the graphic.

Notes

Load an image from stream.

The stream can contain any of the following types: JPEG, GIF, TIFF, BMP, PNG, PSD, PDB, EXIF, WMF, EMF, EPS, PS or SWF (Flash).

Ultimately each import goes through a ReadModule so for details of additional formats supported and the way they are imported, see the ReadModule property.

Different images within the file can be accessed using the Frame property. Different portions of the image can be selected using the Selection property.

Example

Here we read a TIFF file and present the data to the XImage object. We then add the image to our document and then save the PDF.

[C#]

XImage theImg = new XImage();
string thePath;
thePath = Server.MapPath("../mypics/mypic.jpg");
Stream theStream;
theStream = File.OpenRead(thePath);
theImg.SetStream(theStream);
theStream.Close();
Doc doc = new Doc();
doc.Rect.Inset(20, 20);
doc.AddImageObject(theImg, false);
theImg.Clear();
doc.Save(Server.MapPath("imagesetstream.pdf"));
doc.Clear();

[Visual Basic]
Dim theImg As New XImage()
Dim thePath As String
thePath = Server.MapPath("../mypics/mypic.jpg")
Dim theStream As Stream
theStream = File.OpenRead(thePath)
theImg.SetStream(theStream)
theStream.Close()
Dim doc As New Doc()
doc.Rect.Inset(20, 20)
doc.AddImageObject(theImg, False)
theImg.Clear()
doc.Save(Server.MapPath("imagesetstream.pdf"))
doc.Clear()

imagesetstream.pdf


XImage AppliedOrientation Property. The orientation transform that should be applied to the image. ABCpdf .NET PDF Library.

AppliedOrientation Property

Type Default Read Only Description
[C#]
int

[Visual Basic]
Integer
The value of Orientation. No The orientation transform that should be applied to the image.

  Throws Exceptions  may throw Exception()

Notes

TIFF and JPEG files can contain an Orientation setting describing how the image would be most naturally viewed.

The AppliedOrientation property specifies a transform which will be applied to the image for presentation. The values here parallel the Orientation values and are designed to undo the reflections and rotations that each of those Orientation values represent.

As such the default value value for this property is the value of Orientation which means that the image will always be transformed to present as it was intended.

The negative sign of each transform represents an initial swap of the x and the y coordinates while the absolute value represents the angle of a final clockwise rotation. The rotation is clockwise because, by default, scan lines go from top to bottom.

The following transforms are legal.

  • 0 — identity.
  • -90 — reflect across the vertical mid-line, i.e. flips x.
  • 180 — rotate 180°.
  • -270 — reflect across the horizontal mid-line, i.e. flips y.
  • -360 — reflect across the major diagonal, i.e. swaps x and y.
  • 90 — rotate 90° clockwise.
  • -180 — reflect across the minor diagonal.
  • 270 — rotate 270° clockwise.

When this property is changed, both Selection and BoundingBox are re-oriented. If the orientation and transform combine to produce a 90 or 270 degree rotation, axis-specific values like Width / Height and HRes / VRes will be swapped.

Changing the value of this property may result in an exception being thrown if the file format or XReadOptions.ReadModule does not support orientation (e.g. SWF, PostScript, etc.).


XImage BoundingBox Property. The physical bounds of the image in points. ABCpdf .NET PDF Library.

BoundingBox Property

Type | Default | Read Only | Description
[C#] XRect [Visual Basic] XRect | The bounds of the current frame. | Yes | The physical bounds of the image in points.

Notes

This property reflects the physical bounds of the image.

It is more relevant for EPS and PS files which operate in terms of physical dimensions rather than pixels.

Note that EPS and PS files may have bounds which are not anchored at the origin.


XImage Frame Property. The currently selected frame. ABCpdf .NET PDF Library.

Frame Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 1 | No | The currently selected frame.

Notes

Some file formats can contain more than one image. The FrameCount property reflects the number of images.

You can change the currently selected image using the Frame property. As you change the frame the Width, Height, HRes and VRes properties will change to reflect the dimensions and resolution of the currently selected image. When you add an Image using the Doc.AddImageObject method the currently selected frame is added.

Flash (SWF) movies contain a number of frames. You can set the current frame using this property. If you set this property to a negative number it indicates the number of milliseconds (rather than frames) into the movie.

Example
Here we open a TIFF file using the XImage object. We then scan through each of the images within the file and insert them into a new page of our PDF document.

[C#]

XImage theImg = new XImage();
Doc doc = new Doc();
theImg.SetFile(Server.MapPath("../mypics/multipage.tif"));
for (int i = 1; i <= theImg.FrameCount; i++) {
  theImg.Frame = i;
  doc.Page = doc.AddPage();
  doc.AddImageObject(theImg, false);
}
theImg.Clear();
doc.Save(Server.MapPath("imageframe.pdf"));
doc.Clear();

[Visual Basic]
Dim theImg As New XImage()
Dim doc As New Doc()
theImg.SetFile(Server.MapPath("../mypics/multipage.tif"))
Dim i As Integer = 1
While i <= theImg.FrameCount
  theImg.Frame = i
  doc.Page = doc.AddPage()
  doc.AddImageObject(theImg, False)
  System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
End While
theImg.Clear()
doc.Save(Server.MapPath("imageframe.pdf"))
doc.Clear()

imageframe.pdf - [Page 1]

imageframe.pdf - [Page 2]


XImage FrameCount Property. The number of frames in the image. ABCpdf .NET PDF Library.

FrameCount Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | See description. | Yes | The number of frames in the image.

Notes

TIFF and GIF files may contain more than one image. The FrameCount property reflects the number of images found in the file. You can select different images using the Frame property.

Multi-frame TIFF images are generally used for one of two purposes. Sometimes multiple copies of the same image are embedded at different sizes to allow previews to be obtained quickly and easily. This type of multi-frame image is generally created for print purposes. Sometimes multiple pages of a document may be embedded in a TIFF. This type of multi-frame image is generally created by document scanning software or fax software.

Multi-frame GIF images are often called animated GIFs. Each image represents a frame of the animation. Similarly Flash / SWF movies are frame based and this property allows you to access the total number of frames in the movie.

PostScript is a programming language. So a PostScript program may output a different number of pages each time it is run. For this reason it is not possible to reliably determine the number of pages in a PostScript file until it is actually displayed. As a result EPS and PS files always have a FrameCount of one no matter how many pages they may display. However it is reasonably safe to assume that EPS files only ever contain one page of content.

Example

See the Frame property.


XImage FrameRate Property. The default frame rate for a moving image. ABCpdf .NET PDF Library.

FrameRate Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | See description. | Yes | The default frame rate for a moving image.

Notes

Some formats like Flash consist of a sequence of frames to be played one after the other.

This property tells you the number of frames per second that should be played. Note that this is an indicative property - it indicates a desired value. If movies are complicated then some devices on which they are played may not be able to achieve the desired frame rates.

Example

See the Frame property.


XImage HasRealRes Property. Whether the image specifies the resolution. ABCpdf .NET PDF Library.

HasRealRes Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | See description. | Yes | Whether the image specifies the resolution.

Notes

This property indicates whether HRes and VRes are obtained from the image. HRes and VRes contain default values if they are not obtained from the image.


XImage Height Property. The height of the current frame (pixels). ABCpdf .NET PDF Library.

Height Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | See description. | Yes | The height of the current frame (pixels).

Notes

This property reflects the height of the current frame. It is measured in pixels.


XImage HRes Property. The horizontal resolution of the current frame (DPI). ABCpdf .NET PDF Library.

HRes Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | See description. | Yes | The horizontal resolution of the current frame (DPI).

Notes

This property reflects the horizontal resolution of the current frame. It is measured in dots per inch (DPI).


XImage Indirect Property. Whether the image will be added using indirect mode. ABCpdf .NET PDF Library.

Indirect Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | See description. | Yes | Whether the image will be added using indirect mode.

Notes

This property tells you whether the image will be added using indirect mode.

The name of this property is related to how the XImage object used to work and so it is no longer very meaningful.

So, ignoring the name, the core function of this property is is to tell you whether you can use the Selection property and SetMask method.

This property is false for EPS and PS image types. It is false for EMF or WMF files imported using the EmfVector ReadModule. In all other cases it is true.


XImage NeedsFile Property. Whether the file needs to exist. ABCpdf .NET PDF Library.

NeedsFile Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | See description. | Yes | Whether the file needs to exist.

Notes

This property is true if the object has been created with an XReadOptions with ReadModule that uses an Operation (whether Operation is actually null or not) and the file specified is required to exist as long as the object is not cleared, disposed of, or garbage-collected. The object does not delete the file when it is disposed of.


XImage NeedsStream Property. Whether the stream needs be kept open. ABCpdf .NET PDF Library.

NeedsStream Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | See description. | Yes | Whether the stream needs be kept open.

Notes

This property is true if the object has been created with an XReadOptions with ReadModule that uses an Operation (whether Operation is actually null or not) and the stream provided is required to be kept open and unmodified as long as the object is not cleared, disposed of, or garbage-collected. If it is true, the object has taken the ownership of the Stream, which is disposed of when the object is disposed of. You can make the object release the ownership without disposing of the Stream using the parameterized overloads of Dispose and Clear


XImage Orientation Property. The orientation of the current frame. ABCpdf .NET PDF Library.

Orientation Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | See description. | Yes | The orientation of the current frame.

Notes

TIFF and JPEG files may contain an orientation setting describing how the image would be most naturally viewed.

For example an image may be rotated by 90 degrees or flipped horizontally. These kinds of settings are most commonly used when images are scanned and orientation is only determined at a later date, perhaps via OCR.

This property may take any of the following values:

  • 0 — (a.k.a. ORIENTATION_TOPLEFT) scan lines go from top to bottom, and pixels in each scan line go from left to right.
  • -90 — (a.k.a. ORIENTATION_TOPRIGHT) scan lines go from top to bottom, and pixels in each scan lines go from right to left.
  • 180 — (a.k.a ORIENTATION_BOTRIGHT) scan lines go from bottom to top, and pixels in each scan lines go from right to left.
  • -270 — (a.k.a ORIENTATION_BOTLEFT) scan lines go from bottom to top, and pixels in each scan lines go from left to right.
  • -360 — (a.k.a ORIENTATION_LEFTTOP) scan lines go from left to right, and pixels in each scan lines go from top to bottom.
  • 90 — (a.k.a ORIENTATION_RIGHTTOP) scan lines go from right to left, and pixels in each scan lines go from top to bottom.
  • -180 — (a.k.a ORIENTATION_RIGHTBOT) scan lines go from right to left, and pixels in each scan lines go from bottom to top.
  • 270 — (a.k.a ORIENTATION_LEFTBOT) scan lines go from left to right, and pixels in each scan lines go from bottom to top.

By default the XImage will work with these settings to present the image the right way up. However you can select any presentation orientation by using the AppliedOrientation property to apply a transform of your choice.


XImage Selection Property. The current selection rectangle. ABCpdf .NET PDF Library.

Selection Property

Type | Default | Read Only | Description
[C#] XRect [Visual Basic] XRect | The dimensions of the current frame. | No | The current selection rectangle.

Notes

You may wish to add only a portion of an image. By changing the selection rectangle you can specify different areas to be added.

Note that this property only has an effect on an Image if the Indirect property is true (which is generally the case).

Example
Here we open a TIFF file using the XImage object. We add the entire image to the document and then just a portion of the image using the Selection property.

[C#]

XImage theImg = new XImage();
Doc doc = new Doc();
theImg.SetFile(Server.MapPath("../mypics/mypic.jpg"));
doc.Rect.String = theImg.Selection.String;
doc.Rect.Magnify(0.5, 0.5);
doc.Rect.Position(100, 30);
doc.AddImageObject(theImg, false);
theImg.Selection.Inset(100, 200);
doc.Rect.String = theImg.Selection.String;
doc.Rect.Position(170, 400);
doc.AddImageObject(theImg, false);
theImg.Clear();
doc.Save(Server.MapPath("imageselect.pdf"));
doc.Clear();

[Visual Basic]
Dim theImg As New XImage()
Dim doc As New Doc()
theImg.SetFile(Server.MapPath("../mypics/mypic.jpg"))
doc.Rect.String = theImg.Selection.[String]
doc.Rect.Magnify(0.5, 0.5)
doc.Rect.Position(100, 30)
doc.AddImageObject(theImg, False)
theImg.Selection.Inset(100, 200)
doc.Rect.String = theImg.Selection.[String]
doc.Rect.Position(170, 400)
doc.AddImageObject(theImg, False)
theImg.Clear()
doc.Save(Server.MapPath("imageselect.pdf"))
doc.Clear()

imageselect.pdf


XImage Type Property. The type of image. ABCpdf .NET PDF Library.

Type Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | See description. | Yes | The type of image.

Notes

The type property reflects the type of image that has been loaded using SetFile or SetData. It can take one of the following values.

  • ""
  • "BMP"
  • "EMF"
  • "EXIF"
  • "GIF"
  • "Icon"
  • "JPEG"
  • "MemoryBMP"
  • "PNG"
  • "TIFF"
  • "WMF"
  • "EPS"
  • "PS"
  • "SWF"


XImage VRes Property. The vertical resolution of the current frame (DPI). ABCpdf .NET PDF Library.

VRes Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | See description. | Yes | The vertical resolution of the current frame (DPI).

Notes

This property reflects the vertical resolution of the current frame. It is measured in dots per inch (DPI).


XImage Width Property. The width of the current frame (pixels). ABCpdf .NET PDF Library.

Width Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | See description. | Yes | The width of the current frame (pixels).

Notes

This property reflects the width of the current frame. It is measured in pixels.


XPoint Class

Represents a point in two-dimensional space. When first created the object defaults to the origin "0 0" which is at the bottom left of the space.

ABCpdf uses the standard Adobe PDF coordinate space. The origin of this space is at the bottom left of the document. Distances are measured up and right in points. Points are a traditional measure for print work and there are 72 points in an inch. For further details see the Coordinates section of the documentation.

System.Object
   WebSupergoo.ABCpdf12.XPoint

Implements: IDisposable, IEquatable<XPoint>, IComparable<XPoint>

Method | Description
XPoint | XPoint Constructor.
Copy | Copies a series of X and Y coordinates between arrays of doubles and arrays of XPoints.
Equals | Test whether the two points are effectvely the same.
GetHashCode | A hash code for the XPoint.
SetPoint | Sets the point.
ToString | Returns a string representation of the object.

Property | Description
Point | The System.Drawing.Point.
String | The point as a string.
X | The horizontal coordinate.
Y | The vertical coordinate.


XPoint XPoint Function. XPoint Constructor. ABCpdf .NET PDF Library.

XPoint Constructor

XPoint Constructor.

Syntax

[C#]
XPoint()
XPoint(string value)
XPoint(double x, double y)

[Visual Basic]
Sub New
Sub New(value As String)
Sub New(x As Double, y as Double)

Params
Name | Description
value | A string defining the initial point in the format "x y".
x | The x coordinate for the point.
y | The y coordinate for the point.

Notes

These methods construct an XPoint object.


XPoint Copy Function. Copies a series of X and Y coordinates between arrays of doubles and arrays of XPoints. ABCpdf .NET PDF Library.

Copy Function

Copies a series of X and Y coordinates between arrays of doubles and arrays of XPoints

Syntax

[C#]
void Copy(XPoint[] source, double[] destination, int length)
void Copy(XPoint[] source, int sourceIndex, double[] destination, int destinationIndex, int length)
void Copy(double[] source, XPoint[] destination, int length)
void Copy(double[] source, int sourceIndex, XPoint[] destination, int destinationIndex, int length)

[Visual Basic]
Sub Copy(source() As XPoint, destination() As Double, length As Integer)
Sub Copy(source() As XPoint, sourceIndex As Integer, destination() As Double, destinationIndex As Integer, length As Integer)
Sub Copy(source() As Double, destination() As XPoint, length As Integer)
Sub Copy(source() As Double, sourceIndex As Integer, destination() As XPoint, destinationIndex As Integer, length As Integer)

Params
Name | Description
source | An array of points to be copied from.
destination | An array of points to be copied to.
length | The number of points that should be copied.
sourceIndex | The index in the source array at which copying begins.
destinationIndex | The index in the destination array at which copying begins.

Notes

Copies a series of X and Y coordinates between arrays of doubles and arrays of XPoints.

The array of doubles is represented as a series of pairs of X and Y coordinates. So the double array should always be twice the length of the XPoint array. Indexes into the arrays are specfied in terms of items in the array. This means that indexes into a double array will be twice as large as those into an XPoint array. Lengths are always specified in terms of numbers of points rather than number of items in the array.

In the case of copying to an array of XPoints, each XPoint in the destination array will be newly created from the source array values overwriting any XPoint which may already be at that location in the array.


XPoint Equals Function. Test whether the two points are effectvely the same. ABCpdf .NET PDF Library.

Equals Function

Test whether the two points are effectvely the same

Syntax

[C#]
bool Equals(XPoint other, double epsilon)
bool Equals(XPoint other)
override bool Equals(object other)

[Visual Basic]
Function Equals(other As XPoint, epsilon As Double) As Boolean
Function Equals(other As XPoint) As Boolean
Overrides Function Equals(other As Object) As Boolean

Params
Name | Description
other | The point to test against.
epsilon | The largest difference in values which will still be defined as equal
return | Whether the two points are the same.

Notes

Test whether the two points are effectively the same.

Points are considered equal if they have the same x amd y coordinates. This represents value equality for the points in question.

The underlying components of an XPoint are represented as floating point numbers. Floating point numbers are subject to rounding errors, so there has to be a degree of latitude when comparing coordinate values. The degree of latitude is, by default, determined by the limitations defined in the PDF Specification. This is, broadly speaking, 5 decimal points so the default epsilon is typically 0.00001. However if you wish to rely on a specific epsilon value you should provide one.


XPoint GetHashCode Function. A hash code for the XPoint. ABCpdf .NET PDF Library.

GetHashCode Function

A hash code for the XPoint

Syntax

[C#]
override int GetHashCode()

[Visual Basic]
Overrides Function GetHashCode() As Integer

Params
Name | Description
return | The returned hash code.

Notes

Derives a hash code suitable for use in hashing algorithms and data structures like hash tables.


XPoint SetPoint Function. Sets the point. ABCpdf .NET PDF Library.

SetPoint Function

Sets the point.

Syntax

[C#]
void SetPoint(XPoint point)

[Visual Basic]
Sub SetPoint(point As XPoint)

Params
Name | Description
point | The source point.

Notes

This method copies the value from the parameter.


XPoint ToString Function. Returns a string representation of the object. ABCpdf .NET PDF Library.

ToString Function

Returns a string representation of the object.

Syntax

[C#]
override string ToString()

[Visual Basic]
Overrides Function ToString() As String

Params
Name | Description
return | The string representation of the object.

Notes

This method returns the string value of the object. This is equivalent to reading the String property of the object.


XPoint Point Property. The System.Drawing.Point. ABCpdf .NET PDF Library.

Point Property

Type | Default | Read Only | Description
[C#] Point [Visual Basic] Point | n/a | No | The System.Drawing.Point.

Notes

The point as a System.Drawing Point.

Windows coordinates are measured in distances from the top left of the drawing surface while PDF coordinates are measured from the bottom left.

So when you use this property the coordinates must be re-mapped. This needs to be done in the context of a containing object. Properties such as the Doc.Pos are interpreted in the context of the Doc.MediaBox. If there is no containing object then no re-mapping can be performed.

You may find it easier to work with .NET Points than PDF points. However remember that operations such as Transforms work on the underlying PDF coordinates and not on the abstracted Windows coordinates.

Example

The following code adds three words to a document. The positioning is done using standard .NET Points.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 96;
  Point pt = doc.Pos.Point;
  pt.Offset(100, 150);
  doc.Pos.Point = pt;
  doc.AddText("One");
  pt.Offset(100, 150);
  doc.Pos.Point = pt;
  doc.AddText("Two");
  pt.Offset(100, 150);
  doc.Pos.Point = pt;
  doc.AddText("Three");
  doc.Save(Server.MapPath("xptpt.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 96
  Dim pt As Point = doc.Pos.Point
  pt.Offset(100, 150)
  doc.Pos.Point = pt
  doc.AddText("One")
  pt.Offset(100, 150)
  doc.Pos.Point = pt
  doc.AddText("Two")
  pt.Offset(100, 150)
  doc.Pos.Point = pt
  doc.AddText("Three")
  doc.Save(Server.MapPath("xptpt.pdf"))
End Using

xptpt.pdf


XPoint String Property. The point as a string. ABCpdf .NET PDF Library.

String Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | "0 0" | No | The point as a string

Notes

Allows you to access to the point as a string.

The format of the string must be "x y".

Example

The following code.

[C#]

XPoint pt = new XPoint();
pt.String = "20 10";
Response.Write($"X = {pt.X}");
Response.Write("<br>");
Response.Write($"Y = {pt.Y}");

[Visual Basic]
Dim pt As New XPoint()
pt.String = "20 10"
Response.Write($"X = {pt.X}")
Response.Write("<br>")
Response.Write($"Y = {pt.Y}")

Produces the following output.

X = 20
Y = 10


XPoint X Property. The horizontal coordinate. ABCpdf .NET PDF Library.

X Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0 | No | The horizontal coordinate

Notes

Allows you access to the horizontal offset of the point.

Distances are measured from the left of the document.


XPoint Y Property. The vertical coordinate. ABCpdf .NET PDF Library.

Y Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0 | No | The vertical coordinate

Notes

Allows you access to the vertical offset of the point.

Distances are measured from the bottom of the document.


XReadOptions Object

Represents settings for read operations.

By creating a XReadOptions object and passing it in during a read operation you can take complete control of the way in which your content is imported. There can be different read modules which can import content in different ways. For example a Microsoft Word Document can be converted to PDF either using OpenOffice.org or by using Microsoft Word. A read options object allows you to precisely target one or more modules using particular settings.

System.Object
   WebSupergoo.ABCpdf12.XReadOptions

Implements: IDisposable, IEquatable<XReadOptions>

Method | Description
XReadOptions | XReadOptions Constructor.
ClearCache | Clear cached data and terminate worker threads and worker processes for a read module.
Dispose | Dispose of the object.
Equals | Test whether the two objects are effectvely the same.
GetHashCode | A hash code for the XReadOptions.

Property | Description
ReadModule | Gets or sets the module to use.
AddForms | Whether form fields should be live.
AddLinks | Whether links should be live.
Bookmarks | Bookmark creation strategy.
ContentItem | Gets or sets the content items to process.
DefaultFont | The font to use for text that does not specify a font.
DefaultRect | The default document size for documents that do not specify a size.
DotsPerInch | The default resolution to use for the import.
EnableMSOfficeMacros | Whether to enable macros when opening MS Office documents.
ErrorHandling | The error handling behavior.
Frame | The frame to be read from a multiple frame image such as a movie.
FileExtension | Gets or sets the file extension for data sources that do not have file names.
Log | The log for the read operation.
MakeFieldNamesUnique | Whether field names should be changed to make them unique.
MSOfficeParameters | MS Office PDF conversion control parameters.
OpenOfficeParameters | OpenOffice.org PDF conversion control parameters.
Operation | Gets or sets the Operation to use.
Password | Gets or sets the password needed to read the source.
PreserveTransparency | Gets or sets a value that indicates whether the transparency of raster images should be preserved.
Repair | Whether to apply extra processing to enable certain types of corrupt document to be read.
ShrinkToFit | Whether to try and determine the document size based on the size of the content.
Timeout | Gets or sets the timeout in milliseconds for external components.
SkipRevisions | Skip back a number of revisions when reading an incrementally saved PDF document.
OpenPortfolios | Whether to automatically open the default document inside a PDF portfolio rather than the portfolio itself.


XReadOptions XReadOptions Function. XReadOptions Constructor. ABCpdf .NET PDF Library.

XReadOptions Constructor

XReadOptions Constructor.

Syntax

[C#]
XReadOptions()

[Visual Basic]
Sub New()

Params
Name | Description
none |

Notes

Create an empty XReadOptions.


XReadOptions ClearCache Function. Clear cached data and terminate worker threads and worker processes for a read module. ABCpdf .NET PDF Library.

ClearCache Function

Clear cached data and terminate worker threads and worker processes for a read module.

Syntax

[C#]
bool ClearCache()

[Visual Basic]
Function ClearCache() As Boolean

Params
Name | Description
return | Whether it has taken an action.

Notes

This method returns true for the following value of ReadModule.

  • MSOffice — terminate MS Office application processes.


XReadOptions Dispose Function. Dispose of the object. ABCpdf .NET PDF Library.

Dispose Function

Dispose of the object.

Syntax

[C#]
void Dispose()

[Visual Basic]
Sub Dispose()

Params
Name | Description
none |

Notes

You can call this method to explicitly dispose of an object and reduce the garbage collection overhead.

This method disposes of the Operation.

Do not attempt to use an object after calling Dispose.


XReadOptions Equals Function. Test whether the two XReadOptions are effectvely the same. ABCpdf .NET PDF Library.

Equals Function

Test whether the two XReadOptions are effectvely the same.

Syntax

[C#]
bool Equals(XReadOptions other)
override bool Equals(object other)

[Visual Basic]
Function Equals(other As XReadOptions) As Boolean
Overrides Function Equals(other As Object) As Boolean

Params
Name | Description
other | The object to test against.
return | Whether the two XReadOptions are the same.

Notes

Test whether the two XReadOptions are the same.


XReadOptions GetHashCode Function. A hash code for the XReadOptions. ABCpdf .NET PDF Library.

GetHashCode Function

A hash code for the XReadOptions

Syntax

[C#]
override int GetHashCode()

[Visual Basic]
Overrides Function GetHashCode() As Integer

Params
Name | Description
return | The returned hash code.

Notes

Derives a hash code suitable for use in hashing algorithms and data structures like hash tables.


XReadOptions ReadModule Property. Gets or sets the module to use. ABCpdf .NET PDF Library.

ReadModule Property

Type | Default | Read Only | Description
[C#] ReadModuleType [Visual Basic] ReadModuleType | Default | No | Gets or sets the module to use.

Notes

The ReadModuleType enumeration may take the following values:

  • Default
  • Pdf
  • SwfVector
  • Xps
  • XpsAny
  • MSOffice
  • OpenOffice
  • Svg
  • Eps
  • BasicImage
  • Tiff
  • Photoshop
  • WordGlue
  • RichTextFormat
  • Jpeg2000
  • EmfVector
  • WebP

The Default module allows ABCpdf to delegate the read operation to what it considers to be an appropriate module or set of modules, depending on the content provided and the method called. In general it will identify the image and see if there is a specialist module available. If not then it will use the BasicImage module.

The Pdf module is the standard PDF import module. It takes advantage of the Password property.

The SwfVector module is a native Flash / SWF vector import module. It takes advantage of the Operation and Frame properties. The Operation must be either null or a SwfImportOperation.

The Xps module is a native XPS and OXPS (Open XPS) import module. It takes advantage of the Operation property, which must be either null or an XpsImportOperation.

The XpsAny module prints via the XPS printer driver and then imports the resultant document. It takes advantage of the Operation, FileExtension, and Timeout properties. The Operation provided must be either null or an XpsImportOperation.

The MSOffice module uses Microsoft Office for document conversion. This module is fast and produces high fidelity output, including native form fields and annotations conversion. It takes advantage of the AddForms, Boomarks, Password, EnableMSOfficeMacros, PreserveTransparency and Timeout properties.

The OpenOffice module uses OpenOffice.org for document conversion. It takes advantage of the OpenOfficeParameters and Timeout properties.

Office and XpsAny. What security options should you consider?

The MSOffice, OpenOffice.org and XpsAny modules make use of helper applications installed on your local machine. As such you need to consider any security implications fairly carefully.

Running ABCpdf in a reduced permission environment will provide a useful base level of security which will be inherited by your helper applications. However one layer of defense is not enough and you should consider the security of your helper applications as well.

MS Office and OpenOffice.org are mature and well supported software suites so in general they are secure. However they are also common attack vectors so you should ensure that your input documents are either trusted or are vetted prior to processing. Microsoft Defender Antivirus is easily scripted so that provides a minimum viable base when it comes to vetting.

XpsAny requires more thought as it uses the print shell verb to print a document via the XPS print driver. You need to consider what print verbs are on your system and the file extensions to which they are bound. Ensure that you only present file types which will use known applications and consider how secure these applications might be. Again you should only provide documents which are trusted or which have been vetted prior to processing.

The WordGlue module uses WordGlue .NET for DOC and DOCX conversion. WordGlue .NET is a fully managed and fully secure component for the conversion of semantic document formats. This requires WordGlue 2.0.0.1 or later to be installed. WordGlue can be downloaded from our web site.

The RichTextFormat module is a native RTF import module. It takes advantage of the DefaultRect and Timeout properties.

The Svg module is a native SVG (Scaleable Vector Graphics) import module. It takes advantage of the DefaultFont and DefaultRect properties.

The Eps module is a native EPS (Encapsulated PostScript) import module. It takes advantage of the ErrorHandling and Log properties.

The Tiff module is a native TIFF (Tagged Image File Format) import module. It takes advantage of the PreserveTransparency and Frame properties. TIFF images may be black and white, grayscale, RGB, CMYK, TIFF or Lab in 1, 8 , 16 and 32 bits per component color depth and with out without alpha. Because PDF does not support 32 bit High Dynamic Range (HDR) encodings, TIFFs in this format will be downsampled to 16 bits per component. TIFF images containing JPEG or CCITT compressed frames will be inserted direct into the document without a decompress-recompress cycle. This module is broadly similar in speed to System.Drawing for most images. For CMYK images and images with large embedded color profiles it is a bit slower simply because there is more data to compress. In out tests with large images in the order of about 500 MB it was about ten times faster. In our tests with TIFF images containing JPEG or CCITT frames it is typically about thirty times faster. TIFF orientation flags are automatically applied so that images that are tagged in this way automatically appear the right way up.

The Photoshop module supports the standard PSD and also the large image PDB file types. If the PreserveTransparency property is set any transparency will be preserved. It allows the direct import of bitmap, RGB, Grayscale, CMYK, Lab, Indexed, Duotone and Multichanel images in 1, 8 , 16 and 32 bits per component color depth, all with or without alpha. The PDF format does not support 32 bits per component HDR images so these are scaled down to 16 bits per component. The Frame property allows the extraction of individual layers from within the image.

The Jpeg2000 module supports the JPEG 2000 JP2 and JPX formats. It allows the direct import of RGB, Grayscale and CMYK images at 1, 8 , 16 and 32 bits per component color depth.

The EmfVector module allows direct vector import of Enhanced Metafile (EMF) and Windows Metafile (WMF) into a PDF document. However you should note that not all EMF or WMF files can be directly imported this way. If this is the case you should look at using AddImageObject with the default ReadModule, which is fast but will result in the image being rasterized. As another alternative, the XpsAny ReadModule will not be as fast but will preserve the vector nature of practically all such files.

The WebP module allows import of the WebP file format. WebP is a google format that provides lossy and lossless compression for images on the web. It claims size reductions of perhaps 25% over PNG and JPEG and highly optimized alpha channel support.

The BasicImage module allows you to read images such as JPEG (grayscale, RGB or CMYK) and multi-page TIFF directly into a PDF document. It supports, at minimum, JPEG,TIFF, BMP, PNG, GIF, WMP (Windows Media Photo) and ICO. It also allows the import of EMF and WMF though these will be rasterized on import. In general, color spaces and bit depth will be preserved, though not in the case of TIFF. For TIFF import you should prefer the specialist Tiff module detailed above.

Beyond the standard image formats listed above, the BasicImage module typically supports the following:

  • High Efficiency Image File Format (HEIF) - .heic, .heif, .avci, .heics, .heifs, .avcs, .avif, .avifs
  • WebP - .webp
  • Various Raw Formats - .3fr, .ari, .arw, .bay, .cap, .cr2, .cr3, .crw, .dcs, .dcr, .drf, .eip, .erf, .fff, .iiq, .k25, .kdc, .mef, .mos, .mrw, .nef, .nrw, .orf, .ori, .pef, .ptx, .pxn, .raf, .raw, .rw2, .rwl, .sr2, .srf, .srw, .x3f, .dng, .arw, .cr2, .crw, .erf, .kdc, .mrw, .nef, .nrw, .orf, .pef, .raf, .raw, .rw2, .rwl, .sr2, .srw, .dng
  • DirectDraw Surface - .dds

The BasicImage module takes advantage of the PreserveTransparency property.


XReadOptions AddForms Property. Whether form fields should be live. ABCpdf .NET PDF Library.

AddForms Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether form fields should be live.

Notes

This property determines whether form fields in source documents are converted into PDF form fields.


XReadOptions AddLinks Property. Whether links should be live. ABCpdf .NET PDF Library.

AddLinks Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether links should be live.

Notes

This property determines whether links in source documents are converted into PDF link annotations.

For XPS import, this is used to specify XpsImportOperation.AddAnnotations in the default operation if Operation is null.


XReadOptions Bookmarks Property. Bookmark creation strategy. ABCpdf .NET PDF Library.

Bookmarks Property

Type | Default | Read Only | Description
[C#] BookmarkType [Visual Basic] BookmarkType | DontCare | No | Bookmark creation strategy.

Notes

The BookmarkType enumeration may take any of the following values:

  • DontCare – specifies that module-specific default settings should be used.
  • None – specifies that no bookmarks should be imported from source documents.
  • Heading – specifies that bookmarks should be created using document headings. For example, styled headings in Microsoft Word might be used.

This property is currently used only when importing MS Word-supported documents using the MSOffice read module.


XReadOptions ContentItem Property. Gets or sets the content items to process. ABCpdf .NET PDF Library.

ContentItem Property

Type | Default | Read Only | Description
[C#] ContentItemType [Visual Basic] ContentItemType | Default | No | Gets or sets the content items to process.

Notes

The ContentItemType enumeration may take the following values:

  • Default – specifies that module-specific default settings should be used.
  • Content – specifies to import only main content.
  • WithMarkup – specifies to import main content and mark-up.

This property is currently used only when importing MS Word-supported documents using the MSOffice read module.


XReadOptions DefaultFont Property. The font to use for text that does not specify a font. ABCpdf .NET PDF Library.

DefaultFont Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | "Helvetica" | No | The font to use for text that does not specify a font.

Notes

The font to use for text that does not specify a font.


XReadOptions DefaultRect Property. The default document size for documents that do not specify a size. ABCpdf .NET PDF Library.

DefaultRect Property

Type | Default | Read Only | Description
[C#] XRect [Visual Basic] XRect | "Letter" | No | The default document size for documents that do not specify a size.

Notes

Some document types do not require a document size.

For example SVG and PostScript can both be constructed in such a way as to be simply a set of drawing instructions without any details of the size of the output device. Formats like RTF have no default bounding box so always require that one is supplied.

This property allows you to specify a default size for use if the document does not specify a size.


XReadOptions DotsPerInch Property. The default resolution to use for the import. ABCpdf .NET PDF Library.

DotsPerInch Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 96.0 | No | The default resolution to use for the import.

Notes

The default resolution to use for the import.

Some file formats allows you to specify pixel based measurements which can only be converted to physical measurements in the context of a resolution. However some formats do not require a resolution to be specified and so a default may need to be supplied.

This property is currently only used for the import of SVG documents.


XReadOptions EnableMSOfficeMacros Property. Whether to enable macros when opening MS Office documents. ABCpdf .NET PDF Library.

EnableMSOfficeMacros Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to enable macros when opening MS Office documents.

Notes

This property specifies whether to enable macros when opening MS Office documents. It is supported only for MS Word, Excel and PowerPoint. It is ignored in all other cases.

By default, macros are disabled.


XReadOptions ErrorHandling Property. The error handling behavior. ABCpdf .NET PDF Library.

ErrorHandling Property

Type | Default | Read Only | Description
[C#] ErrorHandlingType [Visual Basic] ErrorHandlingType | OutputUntilError | No | The error handling behavior.

Notes

The ErrorHandlingType enumeration may take the following values:

  • OutputUntilError
  • NoOutputOnError

The OutputUntilError directs ABCpdf to process the current file as far as possible even if it encounters an error. This can be useful for dealing with common forms of corruption. For example EPS files sometimes get truncated. As long as the truncation is small the output will be the same as the complete file despite the fact that from technical point of view these files are invalid.

However one cannot know exactly how small a truncation is. It might be that one needs to be absolutely sure that a file is valid; that it is better to throw an exception rather than risk an incomplete image. This behavior is achieved using NoOutputOnError.


XReadOptions Repair Property. Whether to apply extra processing to enable certain types of corrupt document to be read. ABCpdf .NET PDF Library.

Repair

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to apply extra processing to enable certain types of corrupt document to be read.

Notes

Some PDF files may not be fully compliant with PDF specification. In short they may be corrupt.

ABCpdf will work around minor forms of corruption in which the intent is obvious. However some more major forms of corruption require that the entire document is read and rebuilt. This will only occur if the Repair property is set to true.

Rebuilding a document is not ideal. Not only is it time consuming, but there may also be more than one way of performing the rebuild. Depending on the strategy used one may end up with two different results. Most often the results will, for all practical purposes, be identical. However on rare occasions they might be different. For this reason the default value of this property is false.

Many clients who need to process large quantities of PDF documents, from sources of varying quality, end up writing code of the following form.

[C#]

try {
  theDoc.Read(theFile);
}
catch {
  XReadOptions xr = new XReadOptions();
  xr.Repair = true;
  theDoc.Read(theFile, xr);
}

[Visual Basic]
Try
  theDoc.Read(theFile)
Catch
  Dim xr As New XReadOptions()
  xr.Repair = True
  theDoc.Read(theFile, xr)
End Try


XReadOptions Frame Property. The frame to be read from a multiple frame image such as a movie. ABCpdf .NET PDF Library.

Frame Property

Type | Default | Read Only | Description
[C#] long [Visual Basic] Long | 0 | No | The frame to be read from a multiple frame image such as a movie.

Notes

This property is used by read modules that support frames or sub-documents.

Frames are numbered from one upwards. The default of zero indicates that a default frame or frame set should be used.

The SwfVector module uses this property when the Operation is null. When this occurs a temporary SwfImportOperation is created and the ProcessingObjectEventArgs.Info.FrameNumber is set to the value of this property. The default behavior is to read frame one.

The MSOffice module uses this property to allow you to read individual worksheets from within an Excel spreadsheet. The default behavior is to read all the worksheets in order rather than simply select one of them.


XReadOptions FileExtension Property. Gets or sets the file extension for data sources that do not have file names. ABCpdf .NET PDF Library.

FileExtension Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | null | No | Gets or sets the file extension for data sources that do not have file names.

Notes

This property is used by modules that can take files with different file extensions when (and only when) the specification of the source does not provide a file extension, such as a Stream or an array of bytes.

For the Default modules, it is optional, but the modules may behave differently when it is specified. For the XpsAny and the OpenOffice modules, it is mandatory.


XReadOptions Log Property. The log for the read operation. ABCpdf .NET PDF Library.

Log Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | null | Yes | The log for the read operation.

Notes

During a read operation certain problems may be encountered. Problems that can be solved but perhaps only by making assumptions. Problems that might not justify an error but could be raised as a warning.

For example during the EPS import process an unavailable font might be encountered. ABCpdf might substitute another font to replace the missing one. The output would probably look very similar to the intended output but it might not be identical.

ABCpdf will log these types of events using this property.


XReadOptions MakeFieldNamesUnique Property. Whether field names should be changed to make them unique. ABCpdf .NET PDF Library.

MakeFieldNamesUnique Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether field names should be changed to make them unique.

Notes

Input document forms can contain fields with the same name, or no name at all.

If the names of two fields in a PDF are the same, then the fields take the same value.

So if multiple form fields with the same name are added to a PDF, these fields will all appear to contain the same content. This is true even if the form fields in the original document contained different content.

Setting this property will result in duplicate fields being renamed to allow the content to be different. Field without names will be added a placeholder name so they can be displayed properly in PDF.


XReadOptions OpenOfficeParameters Property. OpenOffice.org PDF conversion control parameters. ABCpdf .NET PDF Library.

OpenOfficeParameters Property

Type | Default | Read Only | Description
[C#] ListDictionary [Visual Basic] ListDictionary | false | No | OpenOffice.org PDF conversion control parameters.

Notes

This property is used by the OpenOffice.org import module. It is used to pass custom parameters to OpenOffice.org for precise control over the PDF conversion process.

The parameters are a set of named objects. The names and object types vary between versions of OpenOffice.org but ABCpdf defaults to a base set that is appropriate for most conversions.

Name | Description | Type | Value
UseLosslessCompression | Lossless compression of images. All pixels are preserved. | Boolean | false
Quality | Quality level for JPEG compression. | Int32 | 90
ReduceImageResolution | Resample or downsize the images to a lower number of pixels per inch. | Boolean | false
MaxImageResolution | Target resolution for the images. | Int32 | 72
UseTaggedPDF | Preserve semantic structures such as table of contents, hyperlinks, and controls. | Boolean | true
ExportNotes | Export notes of Writer and Calc documents as PDF notes. | Boolean | true
ExportNotesPages | Export pages notes. | Boolean | false
UseTransitionEffects | Export Impress slide transition effect to respective PDF effects. | Boolean | false
FormsType | Select the format of submitting forms from within the PDF file. For example... 0 - FDF, 1 - PDF, 2 - HTML, 3 - XML | Int32 | 0

More details and other options can be found on the OpenOffice.org web site.


XReadOptions Operation Property. Gets or sets the Operation to use. ABCpdf .NET PDF Library.

Operation Property

Type | Default | Read Only | Description
[C#] Operation [Visual Basic] Operation | null | No | Gets or sets the Operation to use.

Notes

This property is used by modules for which a suitable derived class of Operation exists. If it is null, those modules create a temporary Operation with default behaviours.

ReadModule | Operation | Description
SwfVector | SwfImportOperation | If this property is null, the temporary SwfImportOperation has its Timeout set to Timeout and sets ProcessingObjectEventArgs.Info.FrameNumber to Frame once.
Xps | XpsImportOperation | If this property is null, the temporary XpsImportOperation compresses the GraphicLayer's of the pages.
XpsAny | XpsImportOperation | If this property is null, the temporary XpsImportOperation compresses the GraphicLayer's of the pages.


XReadOptions Password Property. Gets or sets the password needed to read the source. ABCpdf .NET PDF Library.

Password Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | null | No | Gets or sets the password needed to read the source.

Notes

Specify with this property the password for accessing the source, for example, when reading a PDF document.

It is used for importing MS Word or MS Excel documents when using Microsoft Office via the XpsAny and MSOffice ReadModule. Note that for other Office applications, eg. MS PowerPoint, ABCpdf cannot import password protected documents. Currently, certain features such as form fields conversion may be disabled if the document is password protected, even if the correct password is supplied.


XReadOptions PreserveTransparency Property. Gets or sets a value that indicates whether the transparency of raster images should be preserved. ABCpdf .NET PDF Library.

PreserveTransparency Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Gets or sets a value that indicates whether the transparency of raster images should be preserved.

Notes

This property is used when the source is a raster image. If the method (e.g. Doc.AddImageObject) called has a parameter for specifying the same setting, the parameter overrides this property.


XReadOptions Timeout Property. Gets or sets the timeout in milliseconds for external components. ABCpdf .NET PDF Library.

Timeout Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 60000 | No | Gets or sets the timeout in milliseconds for external components.

Notes

Timeout is used for external components, such as the XPS printer driver for ReadModule of XpsAny.


XReadOptions SkipRevisions Property. Skip back a number of revisions when reading an incrementally saved PDF document. ABCpdf .NET PDF Library.

SkipRevisions Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | Skip back a number of revisions when reading an incrementally saved PDF document.

Notes

Skip back a number of revisions when reading an incrementally saved PDF document.

PDF documents can be incrementally updated so that changes are appended to the document rather than overwriting the original. This means that it is possible to revert back to a previous version of the document. Setting this value allows you to skip back a specified number of revisions.

See the IndirectObject.Revision property and the ObjectSoup.Revisions property for determining the number of revisions a document contains and the content which is associated with each revision.


XReadOptions MSOfficeParameters Property. MS Office PDF conversion control parameters. ABCpdf .NET PDF Library.

MSOfficeParameters Property

Type | Default | Read Only | Description
[C#] Dictionary<string, string> [Visual Basic] Dictionary (Of String, String) | n/a | No | MS Office PDF conversion control parameters.

Notes

This property is used by the MS Office import module. It is used to pass custom parameters to Microsoft Office for precise control over the PDF conversion process.

The parameters are a set of named strings. You can find details of the options you can use on the MS Word, Excel and Publisher web pages.


XReadOptions OpenPortfolios Property. Whether to automatically open the default document inside a PDF portfolio rather than the portfolio itself. ABCpdf .NET PDF Library.

OpenPortfolios Property

Type Default Value Read Only Description
[C#]
bool
[Visual Basic]
Boolean 		true No Whether to automatically open the default document inside a PDF portfolio rather than the portfolio itself

Notes

Whether to automatically open the default document inside a PDF portfolio rather than the portfolio itself.

If you wish to see the document the way a user would see it when it opens, them this parameter should be set to true. If you wish to operate upon the set of files embedded in the portfolio then it should be set to false.

Example

See the FileSpecification constructor for the creation of portfolios. See the Catalog.GetEmbeddedFiles function for how to extract files from a portfolio.


XReadOptions ShrinkToFit Property. Whether to try and determine the document size based on the size of the content. ABCpdf .NET PDF Library.

ShrinkToFit Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to try and determine the document size based on the size of the content.

Notes

Some formats such as SVG contain a viewport wrapper and then a viewbox containing content.

The size of the viewport can be specified - much the same as specifying the size of paper on which something should be printed.

However similarly you can specify the size of the content without specifying the size of the viewport - much the same as saying that the drawing is a certain size without dictating the size of the paper.

This is quite a common situation for web output where you want the content to be drawn in a browser window and you do not know what size the user will select for that window.

If this property is set to true, the page size will be set to be the same as the content viewbox. This effectively shrinks the page to fit the content avoiding excessive white space or clipping.

If this property is set to false, the page size is taken from the DefaultRect property and the content is centered on this page. The viewbox size is inserted as the page ArtBox for possible use at a later stage.


XRect Class

Represents a rectangular area in two-dimensional space. When first created the object defaults to an empty rectangle "0 0 0 0".

ABCpdf uses the standard Adobe PDF coordinate space. The origin of this space is at the bottom left of the document. Distances are measured up and right in points. Points are a traditional measure for print work and there are 72 points in an inch. For further details see the Coordinates section of the documentation.

You can change the coordinate system used by the Doc.Rect and the Doc.MediaBox using the Doc.Units and Doc.TopDown properties.

System.Object
   WebSupergoo.ABCpdf12.XRect

Implements: IDisposable, IEquatable<XRect>, IComparable<XRect>

Method | Description
S» FromLbwh | Creates an XRect from a bottom left corner, a width and a height.
S» FromLtwh | Creates an XRect from a top left corner, a width and a height.
S» FromSides | Creates an XRect from the coordinates of two diagonally opposite corners.
S» FromPoints | Create the smallest XRect that encloses all the points supplied.
S» FromAtom | Create an XRect from a standard PDF Rectangle ArrayAtom.
S» FromNums | Create an XRect from an array or list of four numbers.
XRect | XRect Constructor.
Contains | Determine if this rectangle contains a specified point or rectangle.
FitIn | Fits the rectangle as content inside another rectangle.
GetCorners | Get the four corners of the rectangle.
Inset | Insets the edges of the rectangle.
Intersect | Intersects this rectangle with another rectangle.
IntersectsWith | Determine if this rectangle intersects with another.
Magnify | Magnifies the rectangle.
Move | Translate the rectangle.
Position | Position the bottom left of the rectangle.
Resize | Resizes the rectangle.
Union | Union this rectangle with another rectangle.
SetRect | Sets the location and size of the rectangle.
SetSides | Sets the sides of the rectangle.
ToString | Returns a string representation of the object.
Equals | Test whether the two rectangles are effectively the same.
GetHashCode | A hash code for the XRect.

Property | Description
Bottom | The bottom coordinate.
Height | The height of the rectangle.
Left | The left coordinate.
Pin | The corner of the rectangle to pin.
Rectangle | The System.Drawing.Rectangle.
Right | The right coordinate.
String | The rect as a string.
Top | The top coordinate.
Width | The width of the rectangle.
HasArea | Whether the rectangle has area.


XRect FromLbwh Function. Creates an XRect from a bottom left corner, a width and a height. ABCpdf .NET PDF Library.

FromLbwh Function

Creates an XRect from a bottom left corner, a width and a height.

Syntax

[C#]
static XRect FromLbwh(double left, double bottom, double width, double height)

[Visual Basic]
Shared Function FromLbwh(left As Double, bottom As Double, width As Double, height As Double) As XRect

Params
Name | Description
left | The left coordinate.
bottom | The bottom coordinate.
width | The width of the rectangle.
height | The height of the rectangle.

Notes

This method constructs an XRect object from a bottom left corner, a width and a height.

It assumes that subsequent resizing and positioning operations on this object will also be based around the bottom left corner. As such the Pin property will remain at its default of Corner.BottomLeft.


XRect FromLtwh Function. Creates an XRect from a top left corner, a width and a height. ABCpdf .NET PDF Library.

FromLtwh Function

Creates an XRect from a top left corner, a width and a height.

Syntax

[C#]
static XRect FromLtwh(double left, double top, double width, double height)

[Visual Basic]
Shared Function FromLtwh(left As Double, top As Double, width As Double, height As Double) As XRect

Params
Name | Description
left | The left coordinate.
top | The top coordinate.
width | The width of the rectangle.
height | The height of the rectangle.

Notes

This method constructs an XRect object from a top left corner, a width and a height.

It assumes that subsequent resizing and positioning operations on this object will also be based around the top left corner. As such the Pin property will be set to Corner.TopLeft.


XRect FromSides Function. Creates an XRect from the coordinates of two diagonally opposite corners. ABCpdf .NET PDF Library.

FromSides Function

Creates an XRect from the coordinates of two diagonally opposite corners.

Syntax

[C#]
static XRect FromSides(double xMin, double yMin, double xMax, double yMax)

[Visual Basic]
Shared Function FromSides(xMin As Double, yMin As Double, xMax As Double, yMax As Double) As XRect

Params
Name | Description
xMin | The minimum x coordinate.
yMin | The minimum y coordinate.
xMax | The maximum x coordinate.
yMax | The maximum y coordinate.

Notes

This method constructs an XRect object from the coordinates of two diagonally opposite corners.

If the minimum x values are larger than the minimum x values then the XRect will have a negative width. Similarly if the minimum y values are larger than the maximum y values then the XRect will have a negative height.


XRect FromPoints Function. Create the smallest XRect that encloses all the points supplied. ABCpdf .NET PDF Library.

FromPoints Function

Create the smallest XRect that encloses all the points supplied.

Syntax

[C#]
static XRect FromPoints(XPoint points)

[Visual Basic]
Shared Function FromPoints(points As XPoint) As XRect

Params
Name | Description
points | The points that should be enclosed.

Notes

Create the smallest XRect that encloses all the points supplied.

If no points or null is supplied then the return value is null.


XRect FromAtom Function. Create an XRect from a standard PDF Rectangle ArrayAtom. ABCpdf .NET PDF Library.

FromAtom Function

Create an XRect from a standard PDF Rectangle ArrayAtom.

Syntax

[C#]
static XRect FromAtom(IndirectObject io, ArrayAtom array)

[Visual Basic]
Shared Function FromAtom(io As IndirectObject, array As ArrayAtom) As XRect

Params
Name | Description
io | Any IndirectObject from the document.
array | An ArrayAtom containing four NumAtoms.
return | The newly created XRect object.

Notes

Create an XRect from a standard PDF Rectangle ArrayAtom.

Such arrays typically contain four numbers - lower left x and y coordinates followed by upper right x and y.

However this is a convention and any two diagonally opposite points are acceptable.

If the array is null or the entries do not resolve to four NumAtoms then the return value will be null.


XRect FromNums Function. Create an XRect from an array or list of four numbers. ABCpdf .NET PDF Library.

FromNums Function

Create an XRect from an array or list of four numbers.

Syntax

[C#]
static XRect FromNums(double[] array)
static XRect FromNums(IList<double> list)

[Visual Basic]
Shared Function FromNums(array As Double()) As XRect
Shared Function FromNums(list As IList(Of Double)) As XRect

Params
Name | Description
array | An array containing four doubles.
list | An IList containing four doubles.
return | The newly created XRect object.

Notes

Create an XRect from an array or list of four numbers.

Such arrays typically contain lower left x and y coordinates followed by upper right x and y.

However this is a convention and any two diagonally opposite points are acceptable.

If the array is null or does not contain four items then the return will be null.


XRect XRect Function. XRect Constructor. ABCpdf .NET PDF Library.

XRect Constructor

XRect Constructor.

Syntax

[C#]
XRect()
XRect(string value)

[Visual Basic]
Sub New
Sub New(value As String)

Params
Name | Description
value | A string defining the initial rectangle in the format "left bottom right top"

Notes

These methods construct an XRect object.

To construct an XRect with initial values use one of the static constructors such as XRect.FromSides, XRect.FromLbwh or XRect.FromPoints.


XRect Contains Function. Determine if this rectangle contains a specified point or rectangle. ABCpdf .NET PDF Library.

Contains Function

Determine if this rectangle contains a specified point or rectangle.

Syntax

[C#]
bool Contains(XPoint point)
bool Contains(PointF point)
bool Contains(Point point)
bool Contains(float x, float y)
bool Contains(double x, double y)
bool Contains(XRect rect)

[Visual Basic]
Function Contains(point As XPoint) As Boolean
Function Contains(point As PointF) As Boolean
Function Contains(point As Point) As Boolean
Function Contains(x As Float, y as Float) As Boolean
Function Contains(x As Double, y as Double) As Boolean
Function Contains(rect As XRect) As Boolean

Params
Name | Description
rect | The rectangle to test.
point | The point to test.
x | The x coordinate of a point to test.
y | The y coordinate of a point to test.
return | Whether the provided object is contained by this one.

Notes

Determine if this rectangle contains a specified point or rectangle.

In the case of rectangles, all four corners must be contained for the function to return true.

If a null point or rectangle is passed this function will return false.


XRect FitIn Function. Fits the rectangle as content inside another rectangle. ABCpdf .NET PDF Library.

FitIn Function

Fits the rectangle as content inside another rectangle.

Syntax

[C#]
void FitIn(XRect rect, ContentAlign align, ContentScaleMode scaleMode)

[Visual Basic]
Sub FitIn(rect As XRect, align As ContentAlign, scaleMode As ContentScaleMode)

Params
Name | Description
rect | The containing rectangle.
align | The content alignment.
scaleMode | The content scale mode.

Notes

The rectangle is fitted inside the containing rectangle.

The ContentAlign enumeration can take a combination of the following values:

  • Center
  • Left
  • Right
  • Top
  • Bottom

The ContentScaleMode enumeration can take any of the following values:

  • ShowAll – make the content the biggest and completely within the area while keeping the aspect ratio.
  • NoBorder – make the content the smallest and covering the entire area while keeping the aspect ratio.
  • ExactFit – scale the content possibly with distortion to fit the entire area. It is the same as assignment.
  • NoScale – no scaling. The rectangle is repositioned.


XRect GetCorners Function. Get the four corners of the rectangle. ABCpdf .NET PDF Library.

GetCorners Function

Get the four corners of the rectangle.

Syntax

[C#]
XPoint[] GetCorners()

[Visual Basic]
Sub GetCorners() As XPoint()

Params
Name | Description
return | The four corners of the rectangle.

Notes

Get the four corners of the rectangle. The first item in the array is the bottom left and subsequent corners are presented clockwise from that point.


XRect Inset Function. Insets the edges of the rectangle. ABCpdf .NET PDF Library.

Inset Function

Insets the edges of the rectangle.

Syntax

[C#]
void Inset(double x, double y)

[Visual Basic]
Sub Inset(x As Double, y As Double)

Params
Name | Description
x | The amount to inset the left and right edges.
y | The amount to inset the top and bottom edges.

Notes

Insets the edges of the rectangle by a specified horizontal and vertical amount.

Example

The following code.

[C#]

XRect rc = new XRect();
rc.String = "0 0 200 100";
Response.Write($"Rect = {rc}");
Response.Write("&lt;br&gt;");
rc.Inset(10, 20);
Response.Write("Inset = " + rc.String);

[Visual Basic]
Dim rc As New XRect()
rc.String = "0 0 200 100"
Response.Write($"Rect = {rc}")
Response.Write("&lt;br&gt;")
rc.Inset(10, 20)
Response.Write("Inset = " + rc.String)

Produces the following output.

Rect = 0 0 200 100
Inset = 10 20 190 80


XRect Intersect Function. Intersects this rectangle with another rectangle. ABCpdf .NET PDF Library.

Intersect Function

Intersects this rectangle with another rectangle.

Syntax

[C#]
void Intersect(XRect rect)

[Visual Basic]
Sub Intersect(rect As XRect)

Params
Name | Description
rect | Another rectangle. The supplied rectangle is left unchanged by this function.

Notes

This rectangle becomes the intersection of this rectangle and the supplied rectangle.

If a null rectangle is passed, this rectangle will remain unchanged.


XRect IntersectsWith Function. Determine if this rectangle intersects with another. ABCpdf .NET PDF Library.

IntersectsWith Function

Determine if this rectangle intersects with another.

Syntax

[C#]
bool IntersectsWith(XRect rect)

[Visual Basic]
Function IntersectsWith(rect As XRect) As Boolean

Params
Name | Description
rect | Another rectangle.
return | Whether the two rectangles intersect.

Notes

Determine if this rectangle intersects with another.

If a null rectangle is passed this function will return false.


XRect Magnify Function. Magnifies the rectangle. ABCpdf .NET PDF Library.

Magnify Function

Magnifies the rectangle.

Syntax

[C#]
void Magnify(double x, double y)

[Visual Basic]
Sub Magnify(x As Double, y As Double)

Params
Name | Description
x | The horizontal scale factor.
y | The vertical scale factor.

Notes

Scales the rectangle width and height by a specified horizontal and vertical amount.

When you magnify a rectangle one corner of the rectangle is pinned and the width and height of the rectangle adjusted. The corner which is pinned is indicated by the Pin property. The default pin corner is the bottom left.

Example

The following code.

[C#]

XRect rc = new XRect();
rc.String = "20 20 220 120";
Response.Write($"Rect = {rc}");
Response.Write("&lt;br&gt;");
rc.Magnify(0.5, 0.5);
Response.Write($"Scale = {rc}");

[Visual Basic]
Dim rc As New XRect()
rc.String = "20 20 220 120"
Response.Write($"Rect = {rc}")
Response.Write("&lt;br&gt;")
rc.Magnify(0.5, 0.5)
Response.Write($"Scale = {rc}")

Produces the following output.

Rect = 20 20 220 120
Scale = 20 20 120 70


XRect Move Function. Translate the rectangle. ABCpdf .NET PDF Library.

Move Function

Translate the rectangle.

Syntax

[C#]
void Move(double x, double y)

[Visual Basic]
Sub Move(x As Double, y As Double)

Params
Name | Description
x | The horizontal distance to move the rectangle.
y | The vertical distance to move the rectangle.

Notes

Moves the rectangle maintaining the width and height.

Example

The following code.

[C#]

XRect rc = new XRect();
rc.String = "20 20 220 120";
Response.Write($"Rect = {rc}");
rc.Move(50, 50);
Response.Write("&lt;br&gt;");
Response.Write($"Move = {rc}");

[Visual Basic]
Dim rc As New XRect()
rc.String = "20 20 220 120"
Response.Write($"Rect = {rc}")
rc.Move(50, 50)
Response.Write("&lt;br&gt;")
Response.Write($"Move = {rc}")

Produces the following output.

Rect = 20 20 220 120
Move = 70 70 270 170


XRect Position Function. Position the bottom left of the rectangle. ABCpdf .NET PDF Library.

Position Function

Position the bottom left of the rectangle.

Syntax

[C#]
void Position(double x, double y)
void Position(double x, double y, Corner corner)

[Visual Basic]
Sub Position(x As Double, y As Double)
Sub Position(x As Double, y As Double, corner As Corner)

Params
Name | Description
x | The new left position.
y | The new bottom position.
corner | The corner to position.

Notes

Moves the rectangle to the supplied position while maintaining the width and height.

The corner moved to the location is indicated by the Pin property but you can override this default by specifying a corner when calling this function.

Example

The following code.

[C#]

XRect rc = new XRect();
rc.String = "20 20 220 120";
Response.Write($"Rect = {rc}");
Response.Write("&lt;br&gt;");
rc.Position(50, 50);
Response.Write($"Pos. = {rc}");

[Visual Basic]
Dim rc As New XRect()
rc.String = "20 20 220 120"
Response.Write($"Rect = {rc}")
Response.Write("&lt;br&gt;")
rc.Position(50, 50)
Response.Write($"Pos. = {rc}")

Produces the following output.

Rect = 20 20 220 120
Pos. = 50 50 250 150


XRect Resize Function. Resizes the rectangle. ABCpdf .NET PDF Library.

Resize Function

Resizes the rectangle.

Syntax

[C#]
void Resize(double w, double h)
void Resize(double w, double h, Corner corner)

[Visual Basic]
Sub Resize(w As Double, h As Double)
Sub Resize(w As Double, h As Double, corner as Corner)

Params
Name | Description
w | The new width.
h | The new height.
corner | The corner to pin.

Notes

Changes the width and height of the rectangle while maintaining the position.

When you change the width or height of a rectangle one corner of the rectangle is pinned to maintain position. The corner which is pinned is indicated by the Pin property but you can override this default by specifying a corner when calling this function.

Example

The following code.

[C#]

XRect rc = new XRect();
rc.String = "20 20 220 120";
Response.Write($"Rect = {rc}");
Response.Write("&lt;br&gt;");
rc.Resize(50, 150);
Response.Write($"Pos. = {rc}");

[Visual Basic]
Dim rc As New XRect()
rc.String = "20 20 220 120"
Response.Write($"Rect = {rc}")
Response.Write("&lt;br&gt;")
rc.Resize(50, 150)
Response.Write($"Pos. = {rc}")

Produces the following output.

Rect = 20 20 220 120
Pos. = 20 20 70 170


XRect Union Function. Union this rectangle with another rectangle. ABCpdf .NET PDF Library.

Union Function

Union this rectangle with another rectangle.

Syntax

[C#]
void Union(XRect rect)
void Union(XRect rect, bool noAreaIsEmpty)
[Visual Basic]
Sub Union(rect As XRect)
Sub Union(rect As XRect, noAreaIsEmpty as Boolean)

Params
Name | Description
rect | The rectangle to add to this one. The supplied rectangle is left unchanged by this function.
noAreaIsEmpty | Whether to treat rectangles with no area as empty - default true.

Notes

Union the rectangle with another rectangle.

This rectangle becomes the smallest rectangle that encloses both rectangles.

Rectangles with no area will, by default, be treated as being empty. A union of a non-empty rectangle with an empty rectangle always results in the output being set to the non-empty rectangle value. If both rectangles are empty this rectangle will be left unchanged.

If the noAreaIsEmpty parameter is set to false then rectangles with no area will be treated as points and the output union will include that point.


XRect SetRect Function. Sets the location and size of the rectangle. ABCpdf .NET PDF Library.

SetRect Function

Sets the location and size of the rectangle.

Syntax

[C#]
void SetRect(double x, double y, double w, double h)
void SetRect(XRect rect)
[Visual Basic]
Sub SetRect(x As Double, y As Double, w As Double, h As Double)
Sub SetRect(rect As XRect)

Params
Name | Description
x | The new left position.
y | The new bottom position.
w | The new width.
h | The new height.
rect | The source rectangle.

Notes

Sets the location and size of the rectangle.

The width and height of the rectangle are set to the new width and height.

The rectangle is then moved to the supplied position while maintaining the width and height. The corner moved to the location is indicated by the Pin property. The default pin corner is the bottom left.

The overload taking an XRect copies the effective location and size. It behaves as if this XRect and the parameter XRect use the default Pin and the default coordinate settings (Doc.TopDown and Doc.Units) so it functions differently from the other overload and from copying using String. Pin is not copied.

For example suppose you have a Doc object (called doc) for which you have set the Doc.Units to mm and also a separate XRect (called rect) that you have created. If you call rect.SetRect(doc.Rect) the rect will contain coordinates in points rather than mm. Similarly if you call doc.Rect.SetRect(rect), the point based units within the rect will be converted to mm for insertion into the doc.Rect. So there is an automatic conversion between coordinate systems.

Example

The following code.

[C#]

XRect rc = new XRect();
rc.String = "20 20 220 120";
Response.Write($"Rect = {rc}");
Response.Write("&lt;br&gt;");
rc.SetRect(20, 40, 50, 150);
Response.Write("Pos. = {rc}");

[Visual Basic]
Dim rc As New XRect()
rc.String = "20 20 220 120"
Response.Write($"Rect = {rc}")
Response.Write("&lt;br&gt;")
rc.SetRect(20, 40, 50, 150)
Response.Write("Pos. = {rc}")

Produces the following output.

Rect = 20 20 220 120
Pos. = 20 40 70 190


XRect SetSides Function. Sets the sides of the rectangle. ABCpdf .NET PDF Library.

SetSides Function

Sets the sides of the rectangle.

Syntax

[C#]
void SetSides(double x1, double y1, double x2, double y2)

[Visual Basic]
Sub SetSides(x1 As Double, y1 As Double, x2 As Double, y2 As Double)

Params
Name | Description
x1 | The new left position.
y1 | The new bottom position.
x2 | The new right position.
y2 | The new top position.

Notes

Sets the coordinates of the rectangle.


XRect ToString Function. Returns a string representation of the object. ABCpdf .NET PDF Library.

ToString Function

Returns a string representation of the object.

Syntax

[C#]
override string ToString()

[Visual Basic]
Overrides Function ToString() As String

Params
Name | Description
return | The string representation of the object.

Notes

This method returns the string value of the object. This is equivalent to reading the String property of the object.


XRect Equals Function. Test whether the two rectangles are effectively the same. ABCpdf .NET PDF Library.

Equals Function

Test whether the two rectangles are effectively the same

Syntax

[C#]
bool Equals(XRect other, double epsilon)
bool Equals(XRect other)
override bool Equals(object other)

[Visual Basic]
Function Equals(other As XRect, epsilon As Double) As Boolean
Function Equals(other As XRect) As Boolean
Overrides Function Equals(other As Object) As Boolean

Params
Name | Description
other | The rect to test against.
epsilon | The largest difference in values which will still be defined as equal
return | Whether the two rects are the same.

Notes

Test whether the two rectangles are effectively the same.

Rectangles are considered equal if they have the same position, width and height. This represents value equality for the rectangles in question.

The underlying components of an XRect are represented as floating point numbers. Floating point numbers are subject to rounding errors, so there has to be a degree of latitude when comparing coordinate values. The degree of latitude is, by default, determined by the limitations defined in the PDF Specification. This is, broadly speaking, 5 decimal points so the default epsilon is typically 0.00001. However if you wish to rely on a specific epsilon value you should provide one.


XRect GetHashCode Function. A hash code for the XRect. ABCpdf .NET PDF Library.

GetHashCode Function

A hash code for the XRect

Syntax

[C#]
override int GetHashCode()

[Visual Basic]
Overrides Function GetHashCode() As Integer

Params
Name | Description
return | The returned hash code.

Notes

Derives a hash code suitable for use in hashing algorithms and data structures like hash tables.


XRect Bottom Property. The bottom coordinate. ABCpdf .NET PDF Library.

Bottom Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0 | No | The bottom coordinate.

Notes

Allows you access to the bottom coordinate.


XRect Height Property. The height of the rectangle. ABCpdf .NET PDF Library.

Height Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0 | No | The height of the rectangle.

Notes

Allows you access to the height of the rectangle.

When you change the width or height of a rectangle one corner of the rectangle is pinned and the width or height of the rectangle adjusted to match the new width or height. The corner which is pinned is indicated by the Pin property. The default pin corner is the bottom left.


XRect Left Property. The left coordinate. ABCpdf .NET PDF Library.

Left Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0 | No | The left coordinate.

Notes

Allows you access to the left coordinate.


XRect Pin Property. The corner of the rectangle to pin. ABCpdf .NET PDF Library.

Pin Property

Type | Default Value | Read Only | Description
[C#] Corner [Visual Basic] Corner | Corner.BottomLeft | No | The corner of the rectangle to pin.

Notes

Allows you change the pinned corner of the rectangle.

The Corner enumeration may take the following values:

  • BottomLeft
  • TopLeft
  • BottomRight
  • TopRight

Some operations require that the rectangle is pinned to a location. For example if you want to change the width of a rectangle you can do this either by shifting the left side or the right side. If the pin property is set to the bottom or top left then the left side of the rectangle will be kept fixed and the right side shifted. Conversely if the pin property is set to the bottom or top right then the right side of the rectangle will be kept fixed and the left side shifted.

Why is my Pin a number?

In older versions of ABCpdf the Pin property was a number. To assign a Corner to the Pin property you needed to cast the value. So you might find code of this form.

[C#]

theRect.Pin = (int)XRect.Corner.TopRight;

[Visual Basic]
theRect.Pin = CInt(XRect.Corner.TopRight)

In Version 8 the Pin property has been changed to a true enumeration. This means you can assign the Corner directly.

[C#]

theRect.Pin = XRect.Corner.TopRight;

[Visual Basic]
theRect.Pin = XRect.Corner.TopRight

If your code is bound to integers rather than enumerations then it is safe to cast the number to a Corner.

[C#]

theRect.Pin = (XRect.Corner)myIntegerValue;

[Visual Basic]
theRect.Pin = CType(myIntegerValue, XRect.Corner)


XRect Rectangle Property. The System.Drawing.Rectangle. ABCpdf .NET PDF Library.

Rectangle Property

Type | Default | Read Only | Description
[C#] Rectangle [Visual Basic] Rectangle | n/a | No | The System.Drawing.Rectangle.

Notes

The rectangle as a System.Drawing Rectangle.

Windows coordinates are measured in distances from the top left of the drawing surface while PDF coordinates are measured from the bottom left.

So when you use this property the coordinates must be re-mapped. This needs to be done in the context of a containing object. Properties such as the Doc.Rect and the XImage.Selection have containers but others such as the Doc.MediaBox do not. In these cases the rectangles are assumed to contain themselves.

You may find it easier to work with .NET Rectangles than PDF rectangles. However remember that operations such as Transforms work on the underlying PDF coordinates and not on the abstracted Windows coordinates.

Example

The following code adds two blocks of text to a document. The positioning is done using standard .NET Rectangles.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 96;
  Rectangle rc = doc.MediaBox.Rectangle;
  rc.Inflate(-50, -50);
  rc.Height = 250;
  doc.Rect.Rectangle = rc;
  doc.FrameRect();
  doc.AddText("First Rectangle...");
  rc.Offset(0, 300);
  doc.Rect.Rectangle = rc;
  doc.FrameRect();
  doc.AddText("Second Rectangle...");
  doc.Save(Server.MapPath("xrectrectangle.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 96
  Dim rc As Rectangle = doc.MediaBox.Rectangle
  rc.Inflate(-50, -50)
  rc.Height = 250
  doc.Rect.Rectangle = rc
  doc.FrameRect()
  doc.AddText("First Rectangle...")
  rc.Offset(0, 300)
  doc.Rect.Rectangle = rc
  doc.FrameRect()
  doc.AddText("Second Rectangle...")
  doc.Save(Server.MapPath("xrectrectangle.pdf"))
End Using

xrectrectangle.pdf


XRect Right Property. The right coordinate. ABCpdf .NET PDF Library.

Right Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0 | No | The right coordinate.

Notes

Allows you access to the right coordinate.


XRect String Property. The rect as a string. ABCpdf .NET PDF Library.

String Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | "0 0 0 0" | No | The rect as a string.

Notes

Allows you access to the rect as a string.

When working in standard PDF coordinates the format of the string is "left bottom right top". When working with top-down coordinates the format of the string is "left top right bottom".

You can use the following page sizes as shortcuts when assigning a string value to an XRect:

Paper Size | Width in Points | Height in Points
A3 | 842 | 1190
A4 | 595 | 842
A5 | 420 | 595
B4 | 729 | 1032
B5 | 516 | 729
Letter | 612 | 792
Legal | 612 | 1008
Tabloid | 792 | 1224
Ledger | 1224 | 792
Statement | 396 | 612
Executive | 540 | 720
Folio | 612 | 936
Quarto | 610 | 780
10x14 | 720 | 1008

Example

The following code.

[C#]

XRect rc = new XRect();
rc.String = "10 10 200 100";
Response.Write($"Width = {rc.Width}");
Response.Write("&lt;br&gt;");
Response.Write($"Height = {rc.Height}");

[Visual Basic]
Dim rc As New XRect()
rc.String = "10 10 200 100"
Response.Write($"Width = {rc.Width}")
Response.Write("&lt;br&gt;")
Response.Write($"Height = {rc.Height}")

Produces the following output.

Width = 190
Height = 90


XRect Top Property. The top coordinate. ABCpdf .NET PDF Library.

Top Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0 | No | The top coordinate.

Notes

Allows you access to the top coordinate.


XRect Width Property. The width of the rectangle. ABCpdf .NET PDF Library.

Width Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0 | No | The width of the rectangle.

Notes

Allows you access to the width of the rectangle.

When you change the width or height of a rectangle one corner of the rectangle is pinned and the width or height of the rectangle adjusted to match the new width or height. The corner which is pinned is indicated by the Pin property. The default pin corner is the bottom left.


XRect HasArea Property. Whether the rectangle has area. ABCpdf .NET PDF Library.

HasArea Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | n/a | Yes | Whether the rectangle has area.

Notes

Determine if the rectangle encloses any area.

If the width or height is less than the minimum resolution of the PDF coordinate space then the rectangle is defined as having no area. I it has no area it is simply a point.


XRendering Object

Provides control over PDF rendering and rendering options.

Note: rendering is only available under the ABCpdf Professional License.

Rendering is initiated by using the Save method. Properties of this object allow finer control over the way that rendering is performed.

System.Object
   WebSupergoo.ABCpdf12.XRendering

Method | Description
Throws Exceptions GetBitmap | Renders the current area of the current page to a Bitmap.
GetData | Renders the current area of the current page to memory.
Save | Renders and saves the current area of the current page.

Property | Description
AllowIntentChanges | Whether content in the PDF is allowed to override the rendering intent.
AntiAliasImages | Whether to anti-alias images.
AntiAliasPolygons | Whether to anti-alias polygons.
AntiAliasScene | Whether to apply entire scene anti-aliasing.
AntiAliasText | Whether to anti-alias text.
AutoRotate | Whether pages should be automatically rotated.
Backdrop | The background color against which content is rendered.
BitsPerChannel | The output bits per color channel.
ColorSpace | The name of the output color space.
DefaultHalftone | Halftone type and options.
DotsPerInch | The output resolution in dots per inch (DPI).
DotsPerInchX | The horizontal output resolution in dots per inch (DPI).
DotsPerInchY | The vertical output resolution in dots per inch (DPI).
DrawAnnotations | Whether to render fields and annotations.
IccCmyk | The path to the default CMYK ICC color profile.
IccGray | The path to the default Gray ICC color profile.
IccOutput | The path to the default output ICC color profile.
IccRgb | The path to the default RGB ICC color profile.
Log | The log for the last render.
Metadata | A collection of TIFF tags that should be written to the output file.
MinimumLineWidth | The minimum stroked line width for output.
NamedSeparation | Named separations.
NumTiffStrips | Number of strips to generate when writing a tiff file.
Overprint | Whether to apply overprint.
Palette | A color palette to be used.
PreserveK | Switch for preserving black options when converting color values to cmyk.
PreserveKOptions | Tell the color management system how to preserve black when converting color values to cmyk.
Progressive | Whether JPEG output should use progressive compression.
RenderingIntent | Gets or sets the default rendering intent.
ResizeImages | Whether to resize images for vector output.
SaveAlpha | Whether to save the alpha channel into the output.
SaveAppend | Whether to append to (rather than overwrite) existing image files.
SaveCompression | The preferred compression method.
SaveQuality | The output file quality for lossy compression.
UseEmbeddedHalftone | Whether to use embedded halftones.


XRendering GetBitmap Function. Renders the current area of the current page to a Bitmap. ABCpdf .NET PDF Library.

GetBitmap Function

Renders the current area of the current page to a Bitmap.

Syntax

[C#]
System.Drawing.Bitmap GetBitmap()

[Visual Basic]
Function GetBitmap() As System.Drawing.Bitmap

Throws Exceptions may throw Exception()

Params
Name | Description
return | The Bitmap containing the image.

Notes

Use this method to render the PDF to a System.Drawing.Bitmap.

The output is a render of the current Doc.Rect of the current Doc.Page.

Any page rotation specified in the PDF page is applied so that the output render is the correct orientation. This may mean that the output width and height are transposed copies of the width and height as specified in the Doc.Rect.

You can then use this Bitmap for drawing to screen or for manipulation using System.Drawing routines.

Example

See the AntiAliasPolygons property.


XRendering GetData Function. Renders the current area of the current page to memory. ABCpdf .NET PDF Library.

GetData Function

Renders the current area of the current page to memory.

Syntax

[C#]
byte[] GetData(string name)

[Visual Basic]
Function GetData(name As String) As Byte()

Throws Exceptions may throw Exception()

Params
Name | Description
name | A dummy file name used to determine the type of image required.
return | The image as an array of bytes.

Notes

Use this method to render the PDF to memory.

The output is a render of the current Doc.Rect of the current Doc.Page.

Any page rotation specified in the PDF page is applied so that the output render is the correct orientation. This may mean that the output width and height are transposed copies of the width and height as specified in the Doc.Rect.

The file path extension determines the format of the output. The file name extensions which may be used are the same as that used for the Save method. Typical extensions used include .TIF, .TIFF, JPG, GIF, PNG, .BMP or .EMF. EMF is a vector rather than raster format which can be useful when you require resolution independence and smaller files.

Normally you will want to render your documents using the Save method. However sometimes you will need to obtain your image as raw data rather than in file format. The GetData method allows you to do this

You may wish to write such an image direct to a client browser rather than going through an intermediate file. The data you obtain using GetData can be written direct to an HTTP stream using Response.BinaryWrite. Similarly you may wish to obtain raw data for insertion into a database.


XRendering Save Function. Renders and saves the current area of the current page. ABCpdf .NET PDF Library.

Save Method

Renders and saves the current area of the current page.

Syntax

[C#]
void Save(string path)
void Save(string name, Stream stream)

[Visual Basic]
Sub Save(path As String)
Sub Save(name As String, stream As Stream)

Throws Exceptions may throw Exception()

Params
Name | Description
path | The destination file path.
name | A dummy file name used to determine the type of image required.
stream | The destination stream.

Notes

Use this method to render the PDF.

The output is a render of the current Doc.Rect of the current Doc.Page.

Any page rotation specified in the PDF page is applied so that the output render is the correct orientation. This may mean that the output width and height are transposed copies of the width and height as specified in the Doc.Rect.

The file path extension determines the format of the output. The file name extensions which may be used are .TIF, .TIFF, .JPG, .GIF, .PNG, .BMP, .JP2, .PSD, .EMF, .PS, .EPS, .WEBP, .HEIF, .DDS and .WDP.

JP2 is used for the JPEG 2000 format. EMF is a vector rather than raster format which can be useful when you require resolution independence and smaller files. PS is raw vector PostScript-compatible output. EPS is the Encapsulated Postscript format. The particular type of EPS produced by ABCpdf conforms to the DSC (Document Structuring Conventions) standard, which is a subset of EPS intended to make EPS files more usable. WebP is a high compression image format designed by google. HEIF is High Efficiency Image File Format based around MPEG. DDS is DirectDraw Surface designed for decompression by GPUs. WDP is JPEG extended range - a Microsoft technology often used in XPS documents.

In addition you can render to any of the file types specified as part of the GetText method - .TXT, .SVG, .SVG+ and .SVG+2.

Example

See the AntiAliasPolygons property.


RecolorOperation AllowIntentChanges Property. Whether content in the PDF is allowed to override the rendering intent. ABCpdf .NET PDF Library.

AllowIntentChanges Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether content in the PDF is allowed to override the rendering intent.

Notes

The default rendering intent for the operation is determined by the RenderingIntent property.

However the rendering intent is part of the PDF graphics state and as such, operators in the page content stream may sometimes set it to a different value.

This property allows you to decide whether you will allow this type of change or whether it should be ignored.


XRendering AntiAliasImages Property. Whether to anti-alias images. ABCpdf .NET PDF Library.

AntiAliasImages Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to anti-alias images.

Notes

Determines whether image transformations will be interpolated.

This feature is most useful when the original embedded image resolution is greater than the output resolution. When this property is set to true interpolation is used to scale images thus increasing output quality.

Whether the edges of images are anti-aliased is determined by the AntiAliasPolygons property.

Example

The following example shows the effect that this parameter has on PDF rendering.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/HyperX.pdf"));
  doc.Rect.Inset(200, 200);
  // Render document with AntiAliasImages = true (default)
  doc.Rendering.Save(Server.MapPath("RenderingAntiAliasImagesTrue.png"));
  // Render document with AntiAliasImages = false
  doc.Rendering.AntiAliasImages = false;
  // Save the image
  doc.Rendering.Save(Server.MapPath("RenderingAntiAliasImagesFalse.png"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/HyperX.pdf"))
  doc.Rect.Inset(200, 200)
  ' Render document with AntiAliasImages = true (default)
  doc.Rendering.Save(Server.MapPath("RenderingAntiAliasImagesTrue.png"))
  ' Render document with AntiAliasImages = false
  doc.Rendering.AntiAliasImages = False
  ' Save the image
  doc.Rendering.Save(Server.MapPath("RenderingAntiAliasImagesFalse.png"))
End Using

RenderingAntiAliasImagesTrue.png

RenderingAntiAliasImagesFalse.png


XRendering AntiAliasPolygons Property. Whether to anti-alias polygons. ABCpdf .NET PDF Library.

AntiAliasPolygons Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to anti-alias polygons.

Notes

Determines whether polygons will be rendered with anti-aliased edges.

Anti-aliasing is a technique for using gradients of color to eliminate jagged edges when objects are drawn. The object edges are blurred to reduce pixelation.

Example

The following example shows the effect that this parameter has on PDF rendering.

[C#]

using (Doc doc = new Doc()) {
  // Add a polygon
  doc.Color.String = "255 0 0";
  doc.AddPoly("32 650 50 704 68 650 22 683 79 683 32 650", true);
  doc.Rect.String = "20 650 80 704";
  // Render the drawn area with AntiAliasPolygons (default)
  Bitmap antiAliasedBitmap = doc.Rendering.GetBitmap();
  // Render the drawn area without AntiAliasPolygons
  doc.Rendering.AntiAliasPolygons = false;
  Bitmap aliasedBitmap = doc.Rendering.GetBitmap();
  // Add magnified aliased image
  doc.Rect.String = "5 20 605 560";
  doc.AddImageBitmap(aliasedBitmap, false);
  // Anotate
  doc.Color.String = "black";
  doc.FontSize = 30;
  doc.Pos.String = "20 750";
  doc.AddText("Original path:");
  doc.Pos.String = "20 620";
  doc.AddText("Magnified rendered image:");
  // Render the document with aliased image
  doc.Rendering.DotsPerInch = 36;
  doc.Rect.String = doc.MediaBox.String;
  doc.Rendering.Save(Server.MapPath("RenderingAntiAliasPolygonsFalse.png"));
  // Add magnified antialiased image
  doc.Rect.String = "5 20 605 560";
  doc.AddImageBitmap(antiAliasedBitmap, false);
  // Render the document with antialiased image
  doc.Rendering.DotsPerInch = 36;
  doc.Rect.String = doc.MediaBox.String;
  doc.Rendering.Save(Server.MapPath("RenderingAntiAliasPolygonsTrue.png"));
}

[Visual Basic]
Using doc As New Doc()
  ' Add a polygon
  doc.Color.String = "255 0 0"
  doc.AddPoly("32 650 50 704 68 650 22 683 79 683 32 650", True)
  doc.Rect.String = "20 650 80 704"
  ' Render the drawn area with AntiAliasPolygons (default)
  Dim antiAliasedBitmap As Bitmap = doc.Rendering.GetBitmap()
  ' Render the drawn area without AntiAliasPolygons
  doc.Rendering.AntiAliasPolygons = False
  Dim aliasedBitmap As Bitmap = doc.Rendering.GetBitmap()
  ' Add magnified aliased image
  doc.Rect.String = "5 20 605 560"
  doc.AddImageBitmap(aliasedBitmap, False)
  ' Anotate
  doc.Color.String = "black"
  doc.FontSize = 30
  doc.Pos.String = "20 750"
  doc.AddText("Original path:")
  doc.Pos.String = "20 620"
  doc.AddText("Magnified rendered image:")
  ' Render the document with aliased image
  doc.Rendering.DotsPerInch = 36
  doc.Rect.String = doc.MediaBox.[String]
  doc.Rendering.Save(Server.MapPath("RenderingAntiAliasPolygonsFalse.png"))
  ' Add magnified antialiased image
  doc.Rect.String = "5 20 605 560"
  doc.AddImageBitmap(antiAliasedBitmap, False)
  ' Render the document with antialiased image
  doc.Rendering.DotsPerInch = 36
  doc.Rect.String = doc.MediaBox.[String]
  doc.Rendering.Save(Server.MapPath("RenderingAntiAliasPolygonsTrue.png"))
End Using

RenderingAntiAliasPolygonsTrue.png

RenderingAntiAliasPolygonsFalse.png


XRendering AntiAliasScene Property. Whether to apply entire scene anti-aliasing. ABCpdf .NET PDF Library.

AntiAliasScene Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to apply entire scene anti-aliasing.

Notes

Determines whether to apply entire scene anti-aliasing.

If this property is set to true then text, polygons and images will be anti-aliased together instead of individually. This uses considerably more memory and takes considerably longer but can result in higher quality output.

When this property is set to true this implicitly disables any other anti-aliasing applied to individual object types.

Anti-aliasing is a technique for using gradients of color to eliminate jagged edges when objects are drawn.


XRendering AntiAliasText Property. Whether to anti-alias text. ABCpdf .NET PDF Library.

AntiAliasText Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to anti-alias text.

Notes

Determines whether text will be rendered with anti-aliased edges.

Anti-aliasing is a technique for using gradients of color to eliminate jagged edges when objects are drawn. The object edges are blurred to reduce pixelation.

Example

The following example shows the effect that this parameter has on PDF rendering.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Inset(50, 50);
  // Add some text
  doc.FontSize = 48;
  doc.Pos.String = "50 690";
  int id = doc.AddText("Abc");
  // Render images
  doc.Rect.String = doc.GetInfo(id, "rect");
  doc.Rendering.AntiAliasText = true;
  Bitmap antialiasedBitmap = doc.Rendering.GetBitmap();
  doc.Rendering.AntiAliasText = false;
  Bitmap aliasedBitmap = doc.Rendering.GetBitmap();
  // Add enlarged images to the pdf file
  doc.Rect.Magnify(5, 5);
  doc.Rect.Move(0, -300);
  doc.AddImageBitmap(aliasedBitmap, false);
  doc.Rect.Move(0, -300);
  doc.AddImageBitmap(antialiasedBitmap, false);
  // Annotate
  doc.Rect.String = doc.MediaBox.String;
  doc.Color.String = "255 0 0";
  doc.FontSize = 36;
  doc.Pos.String = "50 740";
  doc.AddText("Original text:");
  doc.Pos.String = "50 620";
  doc.AddText("Magnified aliased image:");
  doc.Pos.String = "50 320";
  doc.AddText("Magnified antialiased image:");
  // Save render of pdf files
  doc.Rendering.AntiAliasText = true;
  doc.Rendering.DotsPerInch = 36;
  doc.Rendering.Save(Server.MapPath("RenderingAntiAliasText.png"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Inset(50, 50)
  ' Add some text
  doc.FontSize = 48
  doc.Pos.String = "50 690"
  Dim id As Integer = doc.AddText("Abc")
  ' Render images
  doc.Rect.String = doc.GetInfo(id, "rect")
  doc.Rendering.AntiAliasText = True
  Dim antialiasedBitmap As Bitmap = doc.Rendering.GetBitmap()
  doc.Rendering.AntiAliasText = False
  Dim aliasedBitmap As Bitmap = doc.Rendering.GetBitmap()
  ' Add enlarged images to the pdf file
  doc.Rect.Magnify(5, 5)
  doc.Rect.Move(0, -300)
  doc.AddImageBitmap(aliasedBitmap, False)
  doc.Rect.Move(0, -300)
  doc.AddImageBitmap(antialiasedBitmap, False)
  ' Annotate
  doc.Rect.String = doc.MediaBox.[String]
  doc.Color.String = "255 0 0"
  doc.FontSize = 36
  doc.Pos.String = "50 740"
  doc.AddText("Original text:")
  doc.Pos.String = "50 620"
  doc.AddText("Magnified aliased image:")
  doc.Pos.String = "50 320"
  doc.AddText("Magnified antialiased image:")
  ' Save render of pdf files
  doc.Rendering.AntiAliasText = True
  doc.Rendering.DotsPerInch = 36
  doc.Rendering.Save(Server.MapPath("RenderingAntiAliasText.png"))
End Using

RenderingAntiAliasText.png


XRendering AutoRotate Property. Whether pages should be automatically rotated. ABCpdf .NET PDF Library.

AutoRotate Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether pages should be automatically rotated.

Notes

A PDF document may contain pages in portrait or landscape mode.

If the pages are in landscape mode the viewing application should rotate them by 90 degrees before displaying them.

If you use ABCpdf to render a landscape page then it will automatically apply the correct rotation. However if you want to disable this automatic rotation you can set this property to false.


XRendering Backdrop Property. The background color against which content is rendered. ABCpdf .NET PDF Library.

Backdrop Property

Type | Default Value | Read Only | Description
[C#] XColor [Visual Basic] XColor | White | No | The background color against which content is rendered.

Notes

The background color against which content is rendered.

By default the backdrop color is white which mimics printing on white paper.

However you can change this if you wanted, for example, to mimic printing on pink paper.

The color you supply will be converted to the rendering color space.


XRendering BitsPerChannel Property. The output bits per color channel. ABCpdf .NET PDF Library.

BitsPerChannel Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 8 | No | The output bits per color channel.

Notes

This property determines the precision of the output color channels.

The value is specified in terms of the number of bits used to represent each channel of color. This can be 1, 8 or 16.

All color spaces support 8 and 16 bits per channel. Only the Gray color space supports 1 bit per channel - black and white.

For details of valid combinations see the ColorSpace property.

Example

See the DefaultHalftone property.


XRendering ColorSpace Property. The name of the output color space. ABCpdf .NET PDF Library.

ColorSpace Property

Type | Default Value | Read Only | Description
[C#] XRendering.ColorSpaceType [Visual Basic] XRendering.ColorSpaceType | XRendering.ColorSpaceType.Rgb | No | The name of the output color space.

Notes

The name of the output color space.

The XRendering.ColorSpaceType enumeration may take the following values:

  • Rgb - red, green and blue
  • Gray - grayscale
  • Cmyk - cyan, magenta, yellow and black
  • Lab - a device independent color space
  • Indexed - indexed RGB; see the Palette property

The following table shows the supported color spaces and valid BitsPerChannel for each output format:

Output format | RGB | Gray | CMYK | Lab | Indexed
TIFF | 8, 16 | 1, 8, 16 | 8, 16 | 8, 16 |
PSD (Photoshop) | 8, 16 | 8, 16 | 8, 16 | 8, 16 |
JP2 (JPEG 2000) | 8, 16 | 8, 16 | 8, 16 |  |
JPG | 8 | 8 | 8 |  |
BMP | 8 | 8 |  |  | 8
PNG | 8 | 8, 16 |  |  | 8
GIF | 8 (8 bit indexed) | 8 |  |  | 8

Why is my ColorSpace a string?

In older versions of ABCpdf the ColorSpace property was a string. So you might find code of this form.

[C#]

theDoc.Rendering.ColorSpace = "CMYK";

[Visual Basic]
theDoc.Rendering.ColorSpace = "CMYK"

In Version 8 the ColorSpace property was changed to a true enumeration. This is a safer way of coding as it allows the compiler to ensure that the values you are using are valid. Your new code should look like this.

[C#]

theDoc.Rendering.ColorSpace = XRendering.ColorSpaceType.Cmyk;

[Visual Basic]
theDoc.Rendering.ColorSpace = XRendering.ColorSpaceType.Cmyk

The names of the items in the XRendering.ColorSpaceType enumeration are the same as the values of the strings used in previous versions. So changing your code should be a simple search and replace operation.

Note that the enumeration is the XRendering.ColorSpace indicating the output color space for rendering. There is a different ColorSpace enumeration used for the content of objects inside a PDF document. The two are not the same.

Alternatively if you need to convert between enumerations and strings automatically you can do so. To convert from a string to an enumeration use the following code.

[C#]

XRendering.ColorSpaceType csType = (XRendering.ColorSpaceType)Enum.Parse(typeof(XRendering.ColorSpaceType), csString, true);

[Visual Basic]
Dim csType As XRendering.ColorSpaceType = CType([Enum].Parse(GetType(XRendering.ColorSpaceType), csString, True), XRendering.ColorSpaceType)

To convert from an enumeration to a string use the following code.

[C#]

string csString = csType.ToString("G");

[Visual Basic]
Dim csString As String = csType.ToString("G")

Example

The following example shows the effect that this parameter has on PDF rendering.

[C#]

using (Doc doc = new Doc()) {
  doc.AddImage(Server.MapPath("../mypics/Shuttle.jpg"));
  doc.Rect.String = doc.MediaBox.String;
  // Render document in Gray colorspace
  doc.Rendering.ColorSpace = XRendering.ColorSpaceType.Gray;
  doc.Rendering.DotsPerInch = 36;
  doc.Rendering.Save(Server.MapPath("RenderingColorSpace.png"));
}

[Visual Basic]
Using doc As New Doc()
  doc.AddImage(Server.MapPath("../mypics/Shuttle.jpg"))
  doc.Rect.String = doc.MediaBox.[String]
  ' Render document in Gray colorspace
  doc.Rendering.ColorSpace = XRendering.ColorSpaceType.Gray
  doc.Rendering.DotsPerInch = 36
  doc.Rendering.Save(Server.MapPath("RenderingColorSpace.png"))
End Using

Shuttle.jpg

RenderingColorSpace.png


XRendering DefaultHalftone Property. Halftone type and options. ABCpdf .NET PDF Library.

DefaultHalftone Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "Spot,30,100,CosineDot" | No | Halftone type and options.

Notes

Specifies the default halftone type and options.

The default halftone remains in effect until an embedded halftone screen is encountered.

The Type can be:

  • Spot
  • ErrorDiffusion
  • OrderedDither
  • Threshold

If the type is Spot then an angle in degrees, frequency and spot function can also be specified. These should be separated by commas with no extraneous spaces. The spot functions available are:

  • SimpleDot
  • InvertedSimpleDot
  • DoubleDot
  • InvertedDoubleDot
  • CosineDot
  • Double
  • InvertedDouble
  • Line
  • LineX
  • LineY
  • Round
  • Ellipse
  • EllipseA
  • InvertedEllipseA
  • EllipseB
  • EllipseC
  • InvertedEllipseC
  • Square
  • Cross
  • Rhomboid
  • Diamond

If the type is Threshold you should specify a value - for example "'threshold=60". This is used when calculating the value of a black and white pixel. If the grey level l is greater than the threshold the pixel will be black otherwise it will be white.

For full details of how Halftones work you should see the Adobe PDF Specification available from the Adobe web site.

Example

The following example shows the effect that this parameter has on PDF rendering.

[C#]

using (Doc doc = new Doc()) {
  XImage image = new XImage();
  image.SetFile(Server.MapPath("../mypics/Shuttle.jpg"));
  doc.Rect.String = image.Selection.String;
  doc.AddImage(image);
  // Save rendered image as black and white picture using Line spot function
  doc.Rendering.UseEmbeddedHalftone = false;
  doc.Rendering.DotsPerInch = 50;
  doc.Rendering.ColorSpace = XRendering.ColorSpaceType.Gray;
  doc.Rendering.BitsPerChannel = 1;
  doc.Rendering.DefaultHalftone = "Spot,30,100,Line";
  doc.Rendering.Save(Server.MapPath("RenderingHalftoneLine.png"));
  // Save rendered image as black and white picture using Diamond spot function
  doc.Rendering.DefaultHalftone = "Spot,0,100,Diamond";
  doc.Rendering.Save(Server.MapPath("RenderingHalftoneDiamond.png"));
}

[Visual Basic]
Using doc As New Doc()
  Dim image As New XImage()
  image.SetFile(Server.MapPath("../mypics/Shuttle.jpg"))
  doc.Rect.String = image.Selection.[String]
  doc.AddImage(image)
  ' Save rendered image as black and white picture using Line spot function
  doc.Rendering.UseEmbeddedHalftone = False
  doc.Rendering.DotsPerInch = 50
  doc.Rendering.ColorSpace = XRendering.ColorSpaceType.Gray
  doc.Rendering.BitsPerChannel = 1
  doc.Rendering.DefaultHalftone = "Spot,30,100,Line"
  doc.Rendering.Save(Server.MapPath("RenderingHalftoneLine.png"))
  ' Save rendered image as black and white picture using Diamond spot function
  doc.Rendering.DefaultHalftone = "Spot,0,100,Diamond"
  doc.Rendering.Save(Server.MapPath("RenderingHalftoneDiamond.png"))
End Using

RenderingHalftoneLine.png

RenderingHalftoneDiamond.png


XRendering DotsPerInch Property. The output resolution in dots per inch (DPI). ABCpdf .NET PDF Library.

DotsPerInch Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 72.0 | No | The output resolution in dots per inch (DPI).

Notes

This property determines the resolution of the output image.

Because PDF documents specify distances in physical units (typically points) a resolution unit is needed to convert these physical units to pixel based units.

For example a document 612 points wide rendered at 144 DPI will result in an output image 1224 pixels wide.

Changing this property will change the values of both the DotsPerInchX and DotsPerInchY properties.

Example

See the DefaultHalftone property.


XRendering DotsPerInchX Property. The horizontal output resolution in dots per inch (DPI). ABCpdf .NET PDF Library.

DotsPerInchX Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 72.0 | No | The horizontal output resolution in dots per inch (DPI).

Notes

This property determines the horizontal resolution of the output image.

Because PDF documents specify distances in physical units (typically points) a resolution unit is needed to convert these physical units to pixel based units.

For example a document 612 points wide rendered at 144 DPI will result in an output image 1224 pixels wide.

Example

See the SaveCompression property.


XRendering DotsPerInchY Property. The vertical output resolution in dots per inch (DPI). ABCpdf .NET PDF Library.

DotsPerInchY Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 72.0 | No | The vertical output resolution in dots per inch (DPI).

Notes

This property determines the vertical resolution of the output image.

Because PDF documents specify distances in physical units (typically points) a resolution unit is needed to convert these physical units to pixel based units.

For example a document 612 points high rendered at 144 DPI will result in an output image 1224 pixels high.

Example

See the SaveCompression property.


XRendering DrawAnnotations Property. Whether to render fields and annotations. ABCpdf .NET PDF Library.

DrawAnnotations Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to render fields and annotations.

Notes

Determines whether fields and annotations will be rendered.

PDF fields and annotations are not part of the PDF content. Instead they float over the PDF background. You may choose to render these fields or you may wish to avoid rendering them.

The export of file types like XPS, DOCX and HTML is implemented using rendering. For this reason the DrawAnnotations proprety will determine if Annotations are exported when saving these formats using the Doc.Save method.

Example

The following example shows the effect that this parameter has on PDF rendering.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/Annotations.pdf"));
  doc.Rect.Pin = XRect.Corner.TopLeft;
  doc.Rect.Height = 300;
  // Render document with DrawAnnotations (default)
  doc.Rendering.Save(Server.MapPath("RenderingDrawAnnotationsTrue.png"));
  // Render document without DrawAnnotations
  doc.Rendering.DrawAnnotations = false;
  doc.Rendering.Save(Server.MapPath("RenderingDrawAnnotationsFalse.png"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/Annotations.pdf"))
  doc.Rect.Pin = XRect.Corner.TopLeft
  doc.Rect.Height = 300
  ' Render document with DrawAnnotations (default)
  doc.Rendering.Save(Server.MapPath("RenderingDrawAnnotationsTrue.png"))
  ' Render document without DrawAnnotations
  doc.Rendering.DrawAnnotations = False
  doc.Rendering.Save(Server.MapPath("RenderingDrawAnnotationsFalse.png"))
End Using

RenderingDrawAnnotationsTrue.png

RenderingDrawAnnotationsFalse.png


XRendering IccCmyk Property. The path to the default CMYK ICC color profile. ABCpdf .NET PDF Library.

IccCmyk Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "standard" | No | The path to the default CMYK ICC color profile.

Notes

A path to the default CMYK ICC color profile.

The profile that will be used to convert any device CMYK specified in the PDF file to the device independent working color space.

This is used when the output ColorSpace is Lab or another device independent color space. If the IccOutput indicates that a color profile should be used the output is always device independent. If the IccOutput indicates that no color profile should be used then the output is always device dependent.

This property can take a path to an icm file. However there are also two special values you can use. If the property takes the value "device" then the device color space will be used. If the property takes the value "standard" then a built in default color profile will be used.

If this property is set to "standard" or a path to a color profile then IccRgb, IccCmyk, IccGray and IccOutput should also be set to "standard" or paths to color profiles. All color spaces are assumed to be device independent color spaces.

If this property is set to "device" then IccRgb, IccCmyk, IccGray and IccOutput should also be set to "device". All color spaces are all assumed to be device color spaces.

If this property is set to a file name with no path information, then the folder "<windows>\system32\spool\drivers\color" will be searched to locate the file.

Example

The following example shows the effect that this parameter has on PDF rendering.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Inset(20, 40);
  doc.FontSize = 96;
  // Add CMYK Content
  doc.Color.String = "200 20 20 20";
  doc.AddText("Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.");
  doc.Rect.String = doc.MediaBox.String;
  doc.Rendering.DotsPerInch = 36;
  doc.Rendering.IccCmyk = Server.MapPath("../mypics/cmyk.icc");
  doc.Rendering.ColorSpace = XRendering.ColorSpaceType.Rgb;
  // Save the image
  doc.Rendering.Save(Server.MapPath("RenderingIccCmyk.png"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Inset(20, 40)
  doc.FontSize = 96
  ' Add CMYK Content
  doc.Color.String = "200 20 20 20"
  doc.AddText("Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.")
  doc.Rect.String = doc.MediaBox.[String]
  doc.Rendering.DotsPerInch = 36
  doc.Rendering.IccCmyk = Server.MapPath("../mypics/cmyk.icc")
  doc.Rendering.ColorSpace = XRendering.ColorSpaceType.Rgb
  ' Save the image
  doc.Rendering.Save(Server.MapPath("RenderingIccCmyk.png"))
End Using

RenderingIccCmyk.png


XRendering IccGray Property. The path to the default Gray ICC color profile. ABCpdf .NET PDF Library.

IccGray Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "standard" | No | The path to the default Gray ICC color profile.

Notes

A path to the default Gray ICC color profile.

The profile that will be used to convert any device Gray specified in the PDF file to the device independent working color space.

This is used when the output ColorSpace is Lab or another device independent color space. If the IccOutput indicates that a color profile should be used the output is always device independent. If the IccOutput indicates that no color profile should be used then the output is always device dependent.

This property can take a path to an icm file. However there are also two special values you can use. If the property takes the value "device" then the device color space will be used. If the property takes the value "standard" then a built in default color profile will be used.

If this property is set to "standard" or a path to a color profile then IccRgb, IccCmyk, IccGray and IccOutput should also be set to "standard" or paths to color profiles. All color spaces are assumed to be device independent color spaces.

If this property is set to "device" then IccRgb, IccCmyk, IccGray and IccOutput should also be set to "device". All color spaces are all assumed to be device color spaces.

If this property is set to a file name with no path information, then the folder "<windows>\system32\spool\drivers\color" will be searched to locate the file.


XRendering IccOutput Property. The path to the default output ICC color profile. ABCpdf .NET PDF Library.

IccOutput Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "standard" | No | The path to the default output ICC color profile.

Notes

A path to the default output ICC color profile.

Rendering can occur to either an device color space or to a device independent color space. By specifying an output color profile you are telling ABCpdf the characteristics of the output device independent color space you wish to use.

This property can take a path to an icm file. However there are also two special values you can use. If the property takes the value "device" then the device color space will be used. If the property takes the value "standard" then a built in default color profile will be used.

If this property is set to "standard" or a path to a color profile then IccRgb, IccCmyk and IccGray should also be set to "standard" or paths to color profiles. All color spaces are assumed to be device independent color spaces.

If this property is set to "device" then IccRgb, IccCmyk and IccGray should also be set to "device". All color spaces are all assumed to be device color spaces.

If this property is set to a file name with no path information, then the folder "<windows>\system32\spool\drivers\color" will be searched to locate the file.


XRendering IccRgb Property. The path to the default RGB ICC color profile. ABCpdf .NET PDF Library.

IccRgb Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "standard" | No | The path to the default RGB ICC color profile.

Notes

A path to the default RGB ICC color profile.

The profile that will be used to convert any device RGB specified in the PDF file to the device independent working color space.

This is used when the output ColorSpace is Lab or another device independent color space. If the IccOutput indicates that a color profile should be used the output is always device independent. If the IccOutput indicates that no color profile should be used then the output is always device dependent.

This property can take a path to an icm file. However there are also two special values you can use. If the property takes the value "device" then the device color space will be used. If the property takes the value "standard" then a built in default color profile will be used.

If this property is set to "standard" or a path to a color profile then IccRgb, IccCmyk, IccGray and IccOutput should also be set to "standard" or paths to color profiles. All color spaces are assumed to be device independent color spaces.

If this property is set to "device" then IccRgb, IccCmyk, IccGray and IccOutput should also be set to "device". All color spaces are all assumed to be device color spaces.

If this property is set to a file name with no path information, then the folder "<windows>\system32\spool\drivers\color" will be searched to locate the file.


XRendering Log Property. The log for the last render. ABCpdf .NET PDF Library.

Log Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "" | Yes | The log for the last render.

Notes

During rendering inconsistencies may be detected in the PDF or in the environment.

For example if a PDF contains a corrupt image then it may not be possible to display it. If a PDF contains a reference to a font which is not on the current system then a font substitution may be required.

ABCpdf will do its best to complete the render even if errors or inconsistencies are found. However it will log these type of issues and make the log available via this property. This can be useful for debugging purposes.


XRendering Metadata Property. A collection of TIFF tags that should be written to the output file. ABCpdf .NET PDF Library.

Metadata Property

Type | Default Value | Read Only | Description
[C#] IDictionary<string, string> [Visual Basic] IDictionary<String, String> | null | No | A collection of TIFF tags that should be written to the output file.

Notes

This property can be used to insert custom tags for TIFF output.

To use this property, create a dictionary and assign it to this property. Then add a sequence of tag names and values for output to file. You will find a full list of TIFF tag names in the TIFF specification.

Most tags, such as the PageName, take a string value. However some tags may take one or more numbers instead. For example the PageNumber tag takes two numbers, the first of which specifies the (zero based) index of the current page and the second of which specifies the total number of pages (zero indicates undetermined). So to indicate the second page of a nine page output, you might use code of the following form.

[C#]

theDoc.Rendering.Metadata.Add("PageNumber", "2 9");
theDoc.Rendering.Metadata.Add("PageName", "Page Two");

[Visual Basic]
theDoc.Rendering.Metadata.Add("PageNumber", "2 9")
theDoc.Rendering.Metadata.Add("PageName", "Page Two")

To indicate that a value should be cleared you can assign an entry with a value of null. This can be useful if you want to, for example, disable the automatic insertion of page name and number tags.

Custom TIFF tags can be indicated using a hash followed by the number of the tag. For example the EXIF standard describes a UserComment tag with ID 37510. To insert such a tag you would use the name "#37510". All custom tags are assumed to be string based.


XRendering MinimumLineWidth Property. The minimum stroked line width for output. ABCpdf .NET PDF Library.

MinimumLineWidth Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 0.25 | No | The minimum stroked line width for output

Notes

The minimum stroked line width for output.

This represents the minimum line width for stroked objects in device units (typically pixels). Lines that are narrower than this are set to this minimum line width. This can be used to ensure that narrow lines will still be visible even when drawn on high resolution outputs.


XRendering NamedSeparation Property. Named separations. ABCpdf .NET PDF Library.

NamedSeparation Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "" | No | Named separations.

Notes

Named separations to be used in addition to the color channels specified in the ColorSpace.

Separate color channels for the named separations are only created if the output type is TIFF and the output color space is CMYK or RGB.

If these conditions are met, ABCpdf will write each separation to a different TIFF page and set the TIFF ink name to the name of that separation.

This property can be either a comma separated list of the named separations, or it can be the keyword 'All' which indicates that all named separations referenced by the page should be output. You can obtain the ink names using the Page.GetNamedSeparations function.

For example, the following code will create a tiff file with 5 separated colors, each written to its own page. The ink name for each page will be the name of the separation plane: 'Cyan', 'Magenta', 'Yellow', 'Black' and 'Fluorescent Orange'.

[C#]

doc.Rendering.NamedSeparation ="Fluorescent Orange";
doc.Rendering.ColorSpace = XRendering.ColorSpaceType.Cmyk;
doc.Rendering.Save("separated.tiff");

[Visual Basic]
doc.Rendering.NamedSeparation ="Fluorescent Orange"
doc.Rendering.ColorSpace = XRendering.ColorSpaceType.Cmyk
doc.Rendering.Save("separated.tiff")

Note that ABCpdf will not create spot colors if it encounters a page group color space that is different from the specified color space. However in this situation it will still write the process colors individually to the TIFF output.


XRendering NumTiffStrips Property. Number of strips to generate when writing a tiff file. ABCpdf .NET PDF Library.

NumTiffStrips Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | Number of strips to generate when writing a tiff file

Notes

Number of strips to generate when writing a tiff file.

If the number of strips is set to zero then ABCpdf will determine the number of strips it thinks is appropriate for the file.


XRendering Overprint Property. Whether to apply overprint. ABCpdf .NET PDF Library.

Overprint Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to apply overprint.

Notes

Overprint is a way of combining colors when dealing with subtractive color spaces such as CMYK or DeviceN.

Normally when one color is painted over another it replaces the underlying color. So a yellow over a magenta becomes yellow. If Overprint is set, then the top color may be placed over the top of the base color. So yellow over magenta becomes a mixture of both yellow and magenta inks, which creates red. This can be useful for printing purposes.

If Overprint is true, and NamedSeparation is blank, an overprint preview is created that is designed to simulate the look of a document when inks are overprinted according to the details in the pdf. For more information on overprinting, please see the Adobe PDF Specification.

Example

The following example shows the effect that this parameter has on PDF rendering.

[C#]

using (Doc doc = new Doc()) {
  // Open document with overprint
  doc.Read(Server.MapPath("../mypics/Overprint.pdf"));
  // Render the document (we need to go to CMYK for overprint)
  doc.Rendering.ColorSpace = XRendering.ColorSpaceType.Cmyk;
  doc.Rendering.Overprint = true;
  doc.Rendering.IccRgb = "device";
  doc.Rendering.IccGray = "device";
  doc.Rendering.IccCmyk = "device";
  doc.Rendering.IccOutput = "device";
  // Put image back into another PDF and render the document as RGB
  // (so that we can see the effect of the overprint in RGB)
  Doc theRgb = new Doc();
  theRgb.AddImageData(doc.Rendering.GetData(".tif"), 1);
  doc.Clear();
  theRgb.Rendering.DotsPerInch = 36;
  theRgb.Rendering.ColorSpace = XRendering.ColorSpaceType.Rgb;
  theRgb.Rendering.Save(Server.MapPath("RenderingOverprint.png"));
  theRgb.Clear();
}

[Visual Basic]
Using doc As New Doc()
  ' Open document with overprint
  doc.Read(Server.MapPath("../mypics/Overprint.pdf"))
  ' Render the document (we need to go to CMYK for overprint)
  doc.Rendering.ColorSpace = XRendering.ColorSpaceType.Cmyk
  doc.Rendering.Overprint = True
  doc.Rendering.IccRgb = "device"
  doc.Rendering.IccGray = "device"
  doc.Rendering.IccCmyk = "device"
  doc.Rendering.IccOutput = "device"
  ' Put image back into another PDF and render the document as RGB
  ' (so that we can see the effect of the overprint in RGB)
  Dim theRgb As New Doc()
  theRgb.AddImageData(doc.Rendering.GetData(".tif"), 1)
  doc.Clear()
  theRgb.Rendering.DotsPerInch = 36
  theRgb.Rendering.ColorSpace = XRendering.ColorSpaceType.Rgb
  theRgb.Rendering.Save(Server.MapPath("RenderingOverprint.png"))
  theRgb.Clear()
End Using

RenderingOverprint.png


XRendering Palette Property. A color palette to be used. ABCpdf .NET PDF Library.

Palette Property

Type | Default Value | Read Only | Description
[C#] XPalette [Visual Basic] XPalette | See notes. | No | A color palette to be used.

Notes

A color palette to be used when exporting using a ColorSpace of Indexed.

When reducing colors, there are different ways to choose such colors. The method used is dependent on the XPalette.Definition.

The default value for this is a default palette - Adaptive with 256 colors.


XRendering PreserveK Property. Determines how color transforms will preserve the black. ABCpdf .NET PDF Library.

PreserveK Property

Type | Default | Read Write | Description
[C#] bool [Visual Basic] bool | false | Yes | Determines if color transforms preserve black when rendering to CMYK.

Notes

Tell the color management system whether or not to preserve black (K) when rendering to CMYK.

If true the PreserveKOptions property method is followed. If false it is not.


XRendering PreserveKOption Property. Determines how color transforms will preserve the black. ABCpdf .NET PDF Library.

PreserveKOptions Property

Type | Default | Read Write | Description
[C#] BlackPreservation [Visual Basic] BlackPreservation | Intent | Yes | Determines how or if color transforms preserve black when rendering to CMYK.

Notes

Tell the color management system how to preserve black (K) when rendering to CMYK.

Normal color transforms first convert to device independent XYZ using the source profile, then from XYZ to the destination space using the destination profile.

Since CMYK is an overdetermined colorspace, an XYZ intermediate value can be converted into a number of different and equivalent CMYK values.

The XRendering.BlackPreservation enumeration may take the following values:

  • Off - Do not attempt to preserve black when rendering to CMYK.
  • Intent - Use special rendering intents to preserve black - must be supported by the ICC profile.
  • Plane - for CMYK to CMYK transforms only; run CMY through the profile, do not change K.

See also the RecolorOperation.PreserveKOptions property.


XRendering Progressive Property. Whether JPEG output should use progressive compression. ABCpdf .NET PDF Library.

Progressive Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether JPEG output should use progressive compression.

Notes

Whether JPEG output should use progressive compression.


RecolorOperation RenderingIntent Property. Gets or sets the default rendering intent. ABCpdf .NET PDF Library.

RenderingIntent Property

Type | Default | Read Only | Description
[C#] RenderingIntent [Visual Basic] RenderingIntent | RelativeColorimetric | No | Gets or sets the default rendering intent.

Notes

The default rendering intent for the operation.

The rendering intent determines how out of gamut colors are handled. The following options are available:

  • Perceptual
  • RelativeColorimetric
  • Saturation
  • AbsoluteColorimetric

The perceptual model maps the entire gamut of the source color space into the destination one and is good for photographic type images. The saturation model is good for diagrams, cartoons or posterized images where distinctiveness of color is more important than precise color fidelity. The colorimetric methods remap only those colors which are out of gamut. The relative one keeps the color values the same while allowing the brightness to vary. The absolute colorimetric method uses the closest color at the gamut boundary.

In general you will want to use a perceptual intent when mapping from a large gamut color space (e.g. RGB) to a narrow one (e.g. CMYK). In general you will want to use a relative colorimetric intent when mapping between similar color spaces (e.g. RGB to RGB or CMYK to CMYK).


XRendering ResizeImages Property. Whether to resize images for vector output. ABCpdf .NET PDF Library.

ResizeImages Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to resize images for vector output.

Notes

Whether to resize images for vector output.

If this option is set then raster images will be resized to the current resolution before embedding in the vector format. This can reduce file size when producing formats like EMF that are destined for a particular printer at a particular resolution.

Currenlty this option only takes effect for EMF output. However in the future it may be extended to other vector formats such as Postscript.


XRendering SaveAlpha Property. Whether to save the alpha channel into the output. ABCpdf .NET PDF Library.

SaveAlpha Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to save the alpha channel into the output.

Notes

This property determines whether the Save method includes an alpha channel in the rendered output.

Only some types of output support alpha. These are:

  • PNG
  • BMP
  • TIFF (Grayscale, RGB and CMYK only)
  • PSD (Photoshop)
  • Bitmap (via the GetBitmap function)

By including an alpha channel in your output you can identify areas which are transparent and areas on which no drawing has taken place.

Example

The following example shows the effect that this parameter has on PDF rendering. We create a PDF with some text on it. We then render the PDF with an alpha channel and add the transparent image into a new PDF with a blue background. The blue background shows through where the image is transparent.

[C#]

// Add some text
Doc doc = new Doc();
doc.FontSize = 196;
doc.TextStyle.HPos = 0.5;
doc.TextStyle.VPos = 0.3;
doc.AddText("Hello World");
// Render the PDF with alpha
doc.Rendering.SaveAlpha = true;
Bitmap alphaBitmap = doc.Rendering.GetBitmap();
// Create a blue PDF
doc = new Doc();
doc.Color.String = "0 0 255";
doc.FillRect();
// Add the transparent Bitmap into the PDF
// so that the underlying blue can show through
doc.AddImageBitmap(alphaBitmap, true);
// Save render of pdf
doc.Rendering.Save(Server.MapPath("RenderingSaveAlpha.png"));

[Visual Basic]
' Add some text
Dim doc As New Doc()
doc.FontSize = 196
doc.TextStyle.HPos = 0.5
doc.TextStyle.VPos = 0.3
doc.AddText("Hello World")
' Render the PDF with alpha
doc.Rendering.SaveAlpha = True
Dim alphaBitmap As Bitmap = doc.Rendering.GetBitmap()
' Create a blue PDF
doc = New Doc()
doc.Color.String = "0 0 255"
doc.FillRect()
' Add the transparent Bitmap into the PDF
' so that the underlying blue can show through
doc.AddImageBitmap(alphaBitmap, True)
' Save render of pdf
doc.Rendering.Save(Server.MapPath("RenderingSaveAlpha.png"))

RenderingSaveAlpha.png


XRendering SaveAppend Property. Whether to append to (rather than overwrite) existing image files. ABCpdf .NET PDF Library.

SaveAppend Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to append to (rather than overwrite) existing image files.

Notes

This property determines whether the Save method appends to (rather than overwrites) existing image files.

If this property is set to true and a file already exists then the Save method appends the rendered image to the exisiing file rather than just overwriting it. In this way you can build up multi-page images.

For in-memory operations you can use this property set to true in conjunction with a MemoryStream and the Save overload that supports streams.

This property is used for TIFF output only.

Example

See the SaveCompression property.


XRendering SaveCompression Property. The preferred compression method. ABCpdf .NET PDF Library.

SaveCompression Property

Type | Default Value | Read Only | Description
[C#] Compression [Visual Basic] Compression | None | No | The preferred compression method.

Notes

This property determines the preferred compression method.

Not all file formats support all compression methods. Not all compression methods support all color spaces. This is why this property indicates a preferred method.

The Compression enumeration accepts the following values:

  • None [Uncompressed]
  • G3 [G3 Black and White Fax Compression]
  • G4 [G4 Black and White Fax Compression]
  • LZW [LZW Compression]
  • Jpeg [Tiff Jpeg Compression]
  • AdobeFlate [Adobe Flate Compression]
  • Flate [Flate Compression]
  • PackBits [Macintosh PackBits]

In general this property is most useful when producing output in formats like TIFF which support a range of color spaces and compression methods.

Example

The following example shows how to render a PDF into a multipage G4 compressed Fax TIFF using different vertical and horizontal resolutions.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../Rez/spaceshuttle.pdf"));
  // set up the rendering parameters
  doc.Rendering.ColorSpace = XRendering.ColorSpaceType.Gray;
  doc.Rendering.BitsPerChannel = 1;
  doc.Rendering.DotsPerInchX = 200;
  doc.Rendering.DotsPerInchY = 400;
  // loop through the pages
  int n = doc.PageCount;
  for (int i = 1; i <= n; i++) {
    doc.PageNumber = i;
    doc.Rect.String = doc.CropBox.String;
    doc.Rendering.SaveAppend = (i != 1);
    doc.Rendering.SaveCompression = XRendering.Compression.G4;
    doc.Rendering.Save(Server.MapPath("fax.tif"));
  }
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../Rez/spaceshuttle.pdf"))
  ' set up the rendering parameters
  doc.Rendering.ColorSpace = XRendering.ColorSpaceType.Gray
  doc.Rendering.BitsPerChannel = 1
  doc.Rendering.DotsPerInchX = 200
  doc.Rendering.DotsPerInchY = 400
  ' loop through the pages
  Dim n As Integer = doc.PageCount
  Dim i As Integer = 1
  While i <= n
    doc.PageNumber = i
    doc.Rect.String = doc.CropBox.[String]
    doc.Rendering.SaveAppend = (i <> 1)
    doc.Rendering.SaveCompression = XRendering.Compression.G4
    doc.Rendering.Save(Server.MapPath("fax.tif"))
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While
End Using


XRendering SaveQuality Property. The output file quality for lossy compression. ABCpdf .NET PDF Library.

SaveQuality Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 75 | No | The output file quality for lossy compression.

Notes

This property determines the quality of the output image.

It can take values between 0 and 100 ranging from lowest to highest quality.

This property is used for JPEG and JPEG 2000 output only.

Example

The following example shows the effect that this parameter has on PDF rendering.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/SpaceShuttlePage6.pdf"));
  doc.Rendering.DotsPerInch = 36;
  // Save at low quality
  doc.Rendering.SaveQuality = 5;
  doc.Rendering.Save(Server.MapPath("RenderingQuality5.jpg"));
  // Save at high quality
  doc.Rendering.SaveQuality = 75;
  doc.Rendering.Save(Server.MapPath("RenderingQuality75.jpg"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/SpaceShuttlePage6.pdf"))
  doc.Rendering.DotsPerInch = 36
  ' Save at low quality
  doc.Rendering.SaveQuality = 5
  doc.Rendering.Save(Server.MapPath("RenderingQuality5.jpg"))
  ' Save at high quality
  doc.Rendering.SaveQuality = 75
  doc.Rendering.Save(Server.MapPath("RenderingQuality75.jpg"))
End Using

RenderingQuality5.jpg [file size 9.26 KB]

RenderingQuality75.jpg [file size 37.3 KB]


XRendering UseEmbeddedHalftone Property. Whether to use embedded halftones. ABCpdf .NET PDF Library.

UseEmbeddedHalftone Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | True | No | Whether to use embedded halftones.

Notes

Specifies whether to use embedded halftones.

If embedded halftones are not used then the DefaultHalftone will be used for all halftoning.

Example

See the DefaultHalftone property.


XSaveOptions Object

Represents the current save settings.

System.Object
   WebSupergoo.ABCpdf12.XSaveOptions

Method | Description
none |

Property | Description
CompressMetadata | Whether to compress catalog metadata in the document.
CompressObjects | Whether to use object stream compression to reduce file size.
EmbeddedGraphics | The format to be used for exporting PDF vector graphics.
FileExtension | Gets or sets the file extension for the target when it is not otherwise specified.
Folder | The folder where to save additional files (images, fonts, etc).
FontSubstitution | The font substitution type.
IDConstant | Whether to assign a constant file version identifier.
IDHexadecimal | Whether to assign non-ASCII file identifiers.
IDUpdate | Whether to update the file version identifier.
Incremental | Whether to use incremental update to preserve an audit trail.
Linearize | Whether to linearize the output for fast web viewing.
Preflight | Whether to preflight objects in the document.
Refactor | Whether duplicate objects should be detected and factored out.
Remap | Whether to reduce size by remapping objects.
SaveQuality | The XPS output quality for lossy compression.
Template | The path to the template file.
TemplateData | The template data.
WritePageSeparator | The delegate called to write the page separator for export.


XSaveOptions CompressMetadata Property. Whether to compress catalog metadata in the document. ABCpdf .NET PDF Library.

CompressMetadata Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to compress catalog metadata in the document.

Notes

Whether to compress catalog metadata in the document

XMP metadata is normally held uncompressed as this allows third party software to read and modify it even if it does not understand the PDF format.

However some metadata can be very large and in this situation you might prefer to compress it. This property allows you to do this.


XSaveOptions CompressObjects Property. Whether to use object stream compression to reduce file size. ABCpdf .NET PDF Library.

CompressObjects Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to use object stream compression to reduce file size.

Notes

This property determines if object stream compression should be used.

Object stream compression allows groups of simple atoms to be stored in a separate stream (an ObjStm) and compressed. This can reduce the output file size.

Typically the PDF specification is efficiently organized, atoms are small and not many are required. Thus the overhead associated with uncompressed atoms is typically minimal. Since not all PDF readers support object streams we default to avoiding this type of structure. In particular, older versions of Acrobat (eg 8) are not happy reading documents which incorporate both object streams and linearized content.

In a few cases the PDF specification has not been efficiently organized. The most notable situation in which this occurs is in the case of Tagged PDF - often required for accessibility. The structures required for tagging can result in a multitude of similar atoms and using object stream compression can make a significant difference to the size of output. It is perhaps notable that tagged PDF was introduced in PDF 1.4 and then object streams were introduced immediately afterwards in PDF 1.5. File size reduction will vary considerably depending on content but 10% might be typical.

The other situation in which this option can make a notable difference is in the case of very small PDF documents. In documents measuring ten or twenty kilobytes, atoms can make up a significant proportion of the document size. In these situations you might be able to reduce the size by perhaps 30% simply by enabling this option.

In addition to reducing the size of the document, setting this property allows you to save PDF files greater than 10GB in size.

Object stream compression is incompatible with Incremental update. If this flag is set then object stream compression will not be used.

Future Changes. As PDF documents become more accessible there may be more reason to apply object stream compression. Similarly as PDF readers improve there may be less reason not to use it. As such it is possible that the default value of this property might be changed. If you are relying on a particular value you should set it in your code.


XSaveOptions EmbeddedGraphics Property. The format to be used for exporting PDF vector graphics. ABCpdf .NET PDF Library.

EmbeddedGraphics Property

Type | Default Value | Read Only | Description
[C#] EmbeddedGraphics [Visual Basic] EmbeddedGraphics | EmbeddedGraphicsType.Automatic | No | The format to be used for exporting PDF vector graphics.

Notes

This property specifies how PDF vector graphics such as paths are implemented. Different exporters can take advantage of different export formats. However, only the DOCX and HTML exporters currently support embedded graphic output.

The EmbeddedGraphicsType enumeration may take the following values:

  • Automatic - selects a sensible default value based on the exporter and content
  • None - no image output
  • Image - graphics are rendered to a bitmapped image (valid for DOCX and HTML)
  • Vml - graphics are rendered using VML (valid for DOCX only)
  • HtmlCanvas - graphics are rendered using the HTML 5 Canvas element (valid for HTML only)
  • Html5WebGL - the entire page is rendered using HTML 5 WebGL (valid for HTML only)

Please note the following limitations inherent in the VML specification. VML does not support the non-zero fill rule so VML paths may not be identical to PDF paths. VML does not support sophisticated dashing so dashed or dotted lines are approximated. VML does not specify how bitmapped images and vector paths should interact so the Z-order is dependent on the VML display implementation - a graphic which overlays an image in a PDF may vanish under the image using certain VML viewers.

The HTML5 Canvas element is a blank element on which JavaScript can draw. For older versions of Internet Explorer, the canvas element is automatically converted into VML via ExplorerCanvas.

Please note the following limitations inherent in the HTML Canvas specification. The even-odd fill rule is not supported in a consistent way so enabling it requires JavaScript for browser specific support. The HTML Canvas does not support dashing so dashed or dotted lines are not displayed. Because VML only supports the non-zero fill rule, paths will look different in older versions of Internet Explorer which are working via the ExplorerCanvas VML conversion.

For more details about exporting to HTML with 3D WebGL please see the WebGL Export Reference.

If an invalid type is specified for a specific export format, an exception will be thrown.


XSaveOptions FileExtension Property. Gets or sets the file extension for the target when it is not otherwise specified. ABCpdf .NET PDF Library.

FileExtension Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | null | No | Gets or sets the file extension for the target when it is not otherwise specified.

Notes

This property is used to specify an export format when (and only when) the specification of the destination does not provide a file extension, such as a Stream or an array of bytes.

The supported values are "xps" and "swf".


XSaveOptions Folder Property. The folder where to save additional files (images, fonts, etc). ABCpdf .NET PDF Library.

Folder Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | null | No | The folder where to save additional files (images, fonts, etc).

Notes

This property specifies the folder where to store additional data such as images and fonts. it is only used when exporting documents to HTML. It is ignored otherwise.

If you set a relative path, it will be relative to the location of the output path passed to Doc.Save(). If you set an absolute path, the output html will contain absolute URLs.

If you are saving to a stream and specify a relative path, then the path is relative to the current directory.

If you are saving to file and do not specify a folder, then a folder with the same name as the output file will be created in the directory where the output file is located.


XSaveOptions FontSubstitution Property. The font substitution type. ABCpdf .NET PDF Library.

FontSubstitution Property

Type | Default Value | Read Only | Description
[C#] FontSubstitutionType [Visual Basic] FontSubstitutionType | FontSubstitutionType.Automatic | No | The font substitution type.

Notes

This property specifies when fonts are substituted in export operations. Only the DOCX and HTML exporters currently support this property. It is ignored by other exporters, for example, the XPS exporter.

The FontSubstitutionType enumeration may take the following values:

  • Automatic - selects a sensible default value based on the exporter.
  • Always - always substitute fonts with those installed on the machine.
  • Missing - only substitute fonts which are missing or could not be converted to open type.


XSaveOptions IDConstant Property. Whether to assign a constant file version identifier. ABCpdf .NET PDF Library.

IDConstant Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to assign a constant file version identifier.

Notes

This property determines if the file identifiers should be constant rather than unique.

PDF documents have two unique file identifiers. One is a file specific identifier which stays constant throughout the life of the file. The other is a file version identifier which is updated every time the document is saved.

This property allows you to ensure that the same identifiers are always used. This can be useful for debugging if you need to do a binary level comparison of files and you need to ensure that random elements have been eliminated.


XSaveOptions IDHexadecimal Property. Whether to assign non-ASCII file identifiers. ABCpdf .NET PDF Library.

IDHexadecimal Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to assign non-ASCII file identifiers.

Notes

This property determines if file identifiers should be hexadecimal or ASCII.

File identifiers take the form of strings. The characters in these strings can span any range. However some applications demand that identifiers are restricted to the ASCII range while some demand that identifiers contain characters outside the ASCII range.

Setting this value to false will allow you to restrict newly generated identifiers to the ASCII range.


XSaveOptions IDUpdate Property. Whether to update the file version identifier. ABCpdf .NET PDF Library.

IDUpdate Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to update the file version identifier.

Notes

This property determines if the file version identifier should be updated.

PDF documents have two unique file identifiers. One is a file specific identifier which stays constant throughout the life of the file. The other is a file version identifier which is updated every time the document is saved.

This property allows you to suppress the version update.


XSaveOptions Incremental Property. Whether to use incremental update to preserve an audit trail. ABCpdf .NET PDF Library.

Incremental Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to use incremental update to preserve an audit trail.

Notes

This property determines if incremental update should be used.

Incremental update leaves the structure of any original document intact and appends any changes to the end of the file.

Because the original PDF is unchanged it is possible to revert back to the state before the changes were applied. Because only updated objects are written to disk it can result in faster write times.

However most importantly you have to use incremental update if you wish to preserve any signed signature fields present in the document. Indeed after any signature field is signed you need to commit changes to file using incremental update.

Incremental Update is incompatible with the Linearization, Remapping and CompressObjects options. As such it will override these settings.


XSaveOptions Linearize Property. Whether to linearize the output for fast web viewing. ABCpdf .NET PDF Library.

Linearize Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to linearize the output for fast web viewing.

Notes

This property determines if output should be linearized for fast viewing over the web.

Linearized PDFs are organized in a special way to enable efficient access over the web. The output is valid PDF in all ways but it is structured to allow web viewers to access only the portions of the PDF that they need.

From a practical point of view this means that a Linearized PDF opens instantly rather than requiring that the entire PDF is downloaded before it can be seen.

Adobe sometimes refer to Linearization as Fast Web View.

There is a performance and memory overhead associated with linearization. However this is something that you should normally only notice when handling huge documents.


XSaveOptions Preflight Property. Whether to preflight objects in the document. ABCpdf .NET PDF Library.

Preflight Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to preflight objects in the document.

Notes

Whether to preflight objects objects during Save.

In addition this also applies to the Append and AddImageDoc operations as these involve similar concepts.

Dynamically generated PDFs can contain partially constructed objects. At the point that two documents are combined the partially constructed objects need to be finished in order to ensure that the new combination is going to be valid.

For example, you add a subsetted font and some text to a document. As you add more text, a list of characters is built up. At the point that the document is saved, the font object and the character list need to be combined for a sensible font subset to be formed. This font is an example of a partially constructed object.

In general if your source documents are read from existing PDF templates then they will not contain any partially constructed objects. It is only if the documents are corrupt or if you are adding text, that partially constructed objects may be present.

If this property is set to true, then ABCpdf will preflight all objects in the destination document. This process requires significant amounts of time if the destination document contains many indirect objects.

If the property is set to false then ABCpdf will only preflight objects it knows to need preflighting.


XSaveOptions Refactor Property. Whether duplicate objects should be detected and factored out. ABCpdf .NET PDF Library.

Refactor Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether duplicate objects should be detected and factored out.

Notes

Whether to eliminate redundant objects during Save.

In addition this also applies to the Append and AddImageDoc operations as these involve similar concepts.

Sometimes PDFs can contain duplicate objects. Eliminating these duplicates can reduce the size of certain PDF documents.

If this property is set to true then ABCpdf will attempt to eliminate any redundant objects. This process may require significant amounts of memory and time if the documents contain many indirect objects.

Only objects that have been loaded into memory will be considered for refactoring. This is done so that a minimal amount of time is taken to load, modify and save PDFs which should already be efficiently organized.

If you have PDFs, loading from file, which you wish to refactor, then you will need to load all the objects into memory. To do so it is sufficient to touch each of the objects using code such as the following.

[C#]

for(int i = 1, n = doc.ObjectSoup.Count; i < n; i++)
  doc.SetInfo(i, "Touched", true);

[Visual Basic]
Dim n As Integer = doc.ObjectSoup.Count
For i As Integer = 1 To n
  doc.SetInfo(i, "Touched", True)
Next


XSaveOptions Remap Property. Whether to reduce size by remapping objects. ABCpdf .NET PDF Library.

Remap Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to reduce size by remapping objects.

Notes

This property determines if output size should be reduced by remapping objects.

PDF documents consist of a sequence of numbered objects. If objects have been deleted there may be gaps in this sequence. Gaps can lead to PDFs which are larger than necessary.

If this property is set to true then, when the document is saved, remapping will occur to eliminate these gaps.

Note that if the Linearize property is set to true then remapping will occur no matter the value of this property.


XSaveOptions SaveQuality Property. The XPS output quality for lossy compression. ABCpdf .NET PDF Library.

SaveQuality Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 50 | No | The XPS output quality for lossy compression.

Notes

This property determines the quality of output images in XPS export.

Under some circumstances it can be necessary to decompress and recode JPEG and JPEG 2000 images that are stored in a PDF. This typically occurs when exporting to another format which does not support exactly the same features as are supported in PDF.

This property determines the output quality for the recompression of such images. This is only used during export to XPS.


XSaveOptions Template Property. The path to the template file. ABCpdf .NET PDF Library.

Template Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | null | No | The path to the template file.

Notes

This property specifies the template file, which provides some format-specific data essential to the usefulness of the output when saving in certain formats such as SWF.

When saving in SWF, if the property is null, the output contains the content of the current rectangle of the current PDF page.

When saving in SWF, if the property is the special value XSaveTemplateData.Template_OnePagePerFrame, each frame of the output contains the content of a PDF page. The contents of pages of different sizes will be centered. You can optionally specify settings that are normally provided by a template file. Such settings are separated by NUL and the name-value separator is colon. The values of settings are specified in string in the invariant culture.

Settings for XSaveTemplateData.Template_OnePagePerFrame
Name Type Default Value Description
FrameRate [C#]
ushort

[Visual Basic]
UShort
64 (¼ frame per second) The frame rate in 1/256 frames per second.

Example

See the example project for how to use a SWF template file.

Here we specify one page per frame and 2 frames per second for SWF format.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/sample.pdf"));
  doc.SaveOptions.Template = XSaveTemplateData.Template_OnePagePerFrame + "\0FrameRate:512";
  doc.Save(Server.MapPath("swfsave.swf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/sample.pdf"))
  doc.SaveOptions.Template = XSaveTemplateData.Template_OnePagePerFrame + vbNullChar & "FrameRate:512"
  doc.Save(Server.MapPath("swfsave.swf"))
End Using


XSaveOptions TemplateData Property. The template data. ABCpdf .NET PDF Library.

TemplateData Property

Type | Default Value | Read Only | Description
[C#] XSaveTemplateData [Visual Basic] XSaveTemplateData | null | No | The template data.

Notes

This property specifies the template data that is not obtained from Template and which provides some format-specific data essential to the usefulness of the output when saving in certain formats such as SWF.


XSaveOptions WritePageSeparator Property. The delegate called to write the page separator for export. ABCpdf .NET PDF Library.

WritePageSeparator Property

Type | Default Value | Read Only | Description
[C#] XSaveOptions.PageSeparatorMethod [Visual Basic] XSaveOptions.PageSeparatorMethod | null | No | The delegate called to write the page separator for export.

Notes

This delegate is called during HTML export.

If it is null, a default page separator is produced for each page. You can customize the page separator by setting this property.

The definition of the XSaveOptions.PageSeparatorMethod delegate is as follows.

[C#]

delegate void PageSeparatorMethod(int pageNum, ExportArgs e);

[Visual Basic]
Delegate Sub PageSeparatorMethod(pageNum As Integer, e As ExportArgs)

pageNum is the page number, starting with 1.

The page separator is to be written to e.Writer. e.Writer is an XmlWriter for HTML export.

Example

The following example shows how to customize the page separator.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/sample.pdf"));
  doc.SaveOptions.WritePageSeparator = delegate (int pageNum, XSaveOptions.ExportArgs e) {
    XmlWriter writer = (XmlWriter)e.Writer;
    if (pageNum > 1) {
      writer.WriteStartElement("hr");
      writer.WriteEndElement();
    }
    writer.WriteStartElement("div");
    writer.WriteAttributeString("align", "right");
    writer.WriteString(string.Format("Page {0}", pageNum));
    writer.WriteFullEndElement();
  };
  doc.Save(Server.MapPath("PageSeparator.htm"));
  doc.Dispose();
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/sample.pdf"))
  doc.SaveOptions.WritePageSeparator = Sub(pageNum As Integer, e As XSaveOptions.ExportArgs)
  Dim writer As XmlWriter = DirectCast(e.Writer, XmlWriter)
  If pageNum > 1 Then
    writer.WriteStartElement("hr")
    writer.WriteEndElement()
  End If
  writer.WriteStartElement("div")
  writer.WriteAttributeString("align", "right")
  writer.WriteString(String.Format("Page {0}", pageNum))
  writer.WriteFullEndElement()

  End Sub
  doc.Save(Server.MapPath("PageSeparator.htm"))
  doc.Dispose()
End Using


XSaveTemplateData Class

Represents some format-specific data not obtained from a template file.

System.Object
   WebSupergoo.ABCpdf12.XSaveTemplateData

Method | Description
SetMeasureResolution | Sets the measurement resolutions.

Property | Description
ImageDisplaySmoothing | The smoothing for displaying images.
JpegQuality | The JPEG quality level.
MeasureDpiX | The horizontal measurement resolution.
MeasureDpiY | The vertical measurement resolution.
ReencodeJpeg | Whether JPEG images are re-encoded in JPEG.


XSaveTemplateData SetMeasureResolution Function. Sets the measurement resolutions. ABCpdf .NET PDF Library.

SetMeasureResolution Function

Sets the measurement resolutions.

Syntax

[C#]
void SetMeasureResolution(double dpi)
void SetMeasureResolution(double dpiX, double dpiY)

[Visual Basic]
Sub SetMeasureResolution(dpi As Double)
Sub SetMeasureResolution(dpiX As Double, dpiY As Double)

Params
Name | Description
dpi | The new measurement resolution in DPI.
dpiX | The new horizontal measurement resolution in DPI.
dpiY | The new vertical measurement resolution in DPI.

Notes

Sets the measurement resolutions, which affects the measurements for certain output formats that does not support physical sizes. For example, SWF measurements are pixel-based while PDF measurements are in points (1/72 of an inch). This specifies how many pixels in SWF an inch in PDF represents.

The values do not affect the pixel sizes of raster-image contents. If one of the values (dpiX or dpiY) is invalid, the other value may be used for both values.

For SWF, these values are used only if XSaveOptions.Template is null.

Example

Here we use 72 DPI so that 1 inch in PDF becomes 72 pixels in SWF.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/sample.pdf"));
  doc.SaveOptions.TemplateData = new XSaveTemplateData();
  doc.SaveOptions.TemplateData.SetMeasureResolution(72);
  doc.Save(Server.MapPath("swfsave.swf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/sample.pdf"))
  doc.SaveOptions.TemplateData = New XSaveTemplateData()
  doc.SaveOptions.TemplateData.SetMeasureResolution(72)
  doc.Save(Server.MapPath("swfsave.swf"))
End Using


XSaveTemplateData ImageDisplaySmoothing Property. The smoothing for displaying images. ABCpdf .NET PDF Library.

ImageDisplaySmoothing Property

Type | Default | Read Only | Description
[C#] RasterSmoothing [Visual Basic] RasterSmoothing | Default | No | The smoothing for displaying images.

Notes

This property specifies the smoothing for displaying images.

It can take any of the following values:

  • Default – specifies the default algorithm.
  • Alias – specifies no anti-aliasing.
  • AntiAlias – specifies anti-aliasing.

Some output formats support different smoothing types for displaying images.

For SWF, this affects the FillStyleType field of the FILLSTYLE structure for images.


XSaveTemplateData JpegQuality Property. The JPEG quality level. ABCpdf .NET PDF Library.

JpegQuality Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | -1 | No | The JPEG quality level.

Notes

This property specifies the quality level when encoding images in JPEG. The value ranges from 0 (the worst quality, smaller output) to 100 (the best quality, larger output). Setting the property to -1 is considered as not specifying the quality level, and an appropriate default quality level is used.


XSaveTemplateData MeasureDpiX Property. The horizontal measurement resolution. ABCpdf .NET PDF Library.

MeasureDpiX Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0 | Yes | The horizontal measurement resolution.

Notes

To change the value, use SetMeasureResolution.


XSaveTemplateData MeasureDpiY Property. The vertical measurement resolution. ABCpdf .NET PDF Library.

MeasureDpiY Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0 | Yes | The vertical measurement resolution.

Notes

To change the value, use SetMeasureResolution.


XSaveTemplateData ReencodeJpeg Property. Whether JPEG images are re-encoded in JPEG. ABCpdf .NET PDF Library.

ReencodeJpeg Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether JPEG images are re-encoded in JPEG.

Notes

This property is effectual where both the source and the destination formats are JPEG. It specifies whether JPEG encoding occurs. When it is false, the source is directly used as the output without re-encoding. When it is true, the source is re-encoded in JPEG.

Reencoding allows a JPEG image to use a different quality level. However, reencoding a JPEG image at the same/a higher quality level does not improve the image quality and may degrade it.


XSettings Object

Global setting class.

This static class is used to access global information about ABCpdf and to control the way ABCpdf works.

All the methods and properties on this class are static, so you will never need to instantiate a new object of this class.

System.Object
   WebSupergoo.ABCpdf12.XSettings

Method | Description
InstallLicense | Install a license.
InstallRedistributionLicense | Install a redistribution license.
InstallSystemLicense | Install a system license.
InstallTrialLicense | Install a trial license.
LoadColorBooks | Load color books for use when rendering spot color images.
Register | Register and install a trial license.
SetConfigSection | Set the application configuration section.

Property | Description
Key | A trial license key used for remote deployment.
LicenseDescription | The current license for the software.
Licensee | The current licensee for the software.
LicenseType | The current feature level for the software.
LicenseValid | Whether the current license is valid.
LogErrors | Whether to log errors in the Application Event Log.
Version | The software version.


XSettings InstallLicense Function. Install a license. ABCpdf .NET PDF Library.

InstallLicense Method

Install a license.

Syntax

[C#]
bool InstallLicense(string license)

[Visual Basic]
Function InstallLicense(license As String) As Boolean

Params
Name | Description
license | The license to install.
return | True if a license is installed, otherwise false.

Notes

Use this method to install a license. Call this method at application startup before any ABCpdf objects have been created. You only need to call this method once though calling it additional times will not cause problems.

Any license installed using this method will remain available to the current process (or application pool) until it unloads.

Example

See Manual Installation.


XSettings InstallRedistributionLicense Function. Install a redistribution license. ABCpdf .NET PDF Library.

InstallRedistributionLicense Method

Install a redistribution license.

Syntax

[C#]
bool InstallRedistributionLicense(string license)

[Visual Basic]
Function InstallRedistributionLicense(license As String) As Boolean

Params
Name | Description
license | The license to install.
return | True if a license is installed, otherwise false.

Notes

Use this method to install a redistribution license. Call this method at application startup before any ABCpdf objects have been created. You only need to call this method once though calling it additional times will not cause problems.

Any license installed using this method will remain available to the current process (or application pool) until it unloads.

Example

See Manual Installation.


XSettings InstallSystemLicense Function. Install a system license. ABCpdf .NET PDF Library.

InstallSystemLicense Method

Install a system license.

Syntax

[C#]
bool InstallSystemLicense(stirng license)

[Visual Basic]
Function InstallSystemLicense(license As String) As Boolean

Params
Name | Description
license | The license to install.
return | True if a license is installed, otherwise false.

Notes

Use this method to install a system license. Call this method at application startup before any ABCpdf objects have been created.

This method saves the license for use on a system-wide basis. So, once a license is successfully installed, it will stay on the system and be picked up by ABCpdf automatically.

Licenses are specific to the process model so licenses installed for with 32-bit ABCpdf will not be available to 64-bit ABCpdf and vice versa. Indeed, a license may be installed successfully without being valid for the current process so it is a good idea to check LicenseValid after installing a system license.

For security reasons, you should not use this method unless you have complete control of the system on which you are installing. You need to make this call from an elevated process.

Example

See Manual Installation.


XSettings InstallTrialLicense Function. Install a trial license. ABCpdf .NET PDF Library.

InstallTrialLicense Method

Install a trial license

Syntax

[C#]
bool InstallTrialLicense(string license)

[Visual Basic]
Function InstallTrialLicense(license As String) As Boolean

Params
Name | Description
license | The license to install.
return | True if a license is installed, otherwise false.

Notes

Use this method to install a trial license. Call this method at application startup before any ABCpdf objects have been created. You only need to call this method once though calling it additional times will not cause problems.

Any license installed using this method will remain available to the current process (or application pool) until it unloads.

Example

See Manual Installation.


XSettings LoadColorBooks Function. Load color books for use when rendering spot color images. ABCpdf .NET PDF Library.

LoadColorBooks Method

Load color books for use when rendering spot color images.

Syntax

[C#]
void LoadColorBooks(string path)

[Visual Basic]
Sub LoadColorBooks(path As String)

Params
Name | Description
path | The file to load or directory to scan.
return | None.

Notes

Adobe Photoshop multichannel PSD files sometimes reference named spot colors that are defined in color books

Without the original color book it is not possible to convert these images accurately because the name of a color does not tell you what it looks like. The only way to know is to find the original color book and use the information that is found there.

ABCpdf will attempt to locate color books on your system but you can provide it with help by calling this function. Pass in either a path to a file you would like to load, or a path to a directory of files that you would like to load. The named colors are held on a global basis so there is no need to repeat the call unless the files change.

ABCpdf currently supports color books in .acb - Adobe Color Book format.


XSettings Register Function. Register and install a trial license. ABCpdf .NET PDF Library.

Register Method

Register and install a trial license.

Syntax

[C#]
void Register()

[Visual Basic]
Sub Register()

Params
Name | Description
return | None.

Notes

Use this method to register ABCpdf and install a trial license if no license is installed.

You should never need to call this method as both the process of installing and the process of running the PDFSettings application will automatically register ABCpdf.

If for some reason the registration fails, all you need to do is run the PDFSettings application as Administrator.

Part of registration includes setting up ABCpdf as an event source for the Windows Event Log. However this can only be done when running as Administrator. If you do not have Administrator rights then events can be logged but the text associated with them will be tagged "The description for Event ID 4096 from source ABCpdf cannot be found."


XSettings SetConfigSection Function. Set the application configuration section. ABCpdf .NET PDF Library.

SetConfigSection Method

Set the application configuration section.

Syntax

[C#]
void SetConfigSection(ConfigSection section)

[Visual Basic]
Sub SetConfigSection(section As ConfigSection)

Params
Name | Description
section | The ABCpdf configuration section.
return | None.

Notes

Use this method to change ABCpdf's configuration section object.

Normally, you will not need to call this method because ABCpdf automatically detects the presence of the default configuration file. It does so by calling System.Configuration.ConfigurationManager.GetSection("ABCpdf12.Section"). So, as long as you have a valid ABCpdf12.Section in your configuration file, there should be no need to call this method.

For local applications, configuration files are normally stored in the same folder as the application and are called <application.exe>.config, where <application.exe> is the file name of the application. For web applications, the configuration section is stored in Web.config.

The ABCpdf section name should be ABCpdf12.Section. The type is WebSupergoo.ABCpdf12.ConfigSection. Refer to the example below for details. ConfigSection is an opaque class that contains an array of Preferences.

Each preference has a Key and a Value.

If a preference is not found in the configuration file, it is read from the registry.

The preference key is the same as the registry key name. For example, <add Key="LogErrors" Value="1" /> is equivalent to a DWORD registry key called LogErrors and with Value set to 1. Refer to Registry Keys in Concepts for further details. Make sure that the value matches the type as specified in Registry Keys.

Warning: changing preferences from ABCpdf events/callbacks for operations that use those preferences may cause problems.

Example

Here is an example of a .config file that contains a valid ABCpdf config section. The illustrated ABCpdf preferences are LogErrors, UserName and Password. Other preferences will be read from the Registry.

Important: <configSections> must appear before <startup> if <startup> exists. Also note that the type is used to load the assembly DLL so the 'ABCpdf' entry below may need to be changed to 'ABCpdf.NET5' if you are using .NET 5.0. Similarly you may need to use 'ABCpdf.NET6' for .NET 6.0 and 'ABCpdf.NET7' for .NET 7.0.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="ABCpdf12.Section" type="WebSupergoo.ABCpdf12.ConfigSection, ABCpdf" allowLocation="true"
allowDefinition="Everywhere" allowExeDefinition="MachineToLocalUser" overrideModeDefault="Allow"
restartOnExternalChanges="true" requirePermission="true" />
  </configSections>
  <ABCpdf12.Section>
    <Preferences>
      <clear />
      <add Key="TempDirectory" Value="C:\Temp" />
      <add Key="LogErrors" Value="1" />
      <add Key="MakeURLsUnique" Value="0" />
      <add Key="MSOfficeShow" Value="1" />
    </Preferences>
  </ABCpdf12.Section>
</configuration>


XSettings Key Property. A trial license key used for remote deployment. ABCpdf .NET PDF Library.

Key Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | None | Yes | A trial license key used for remote deployment.

Notes

This property contains a trial license that you can use for remote deployment.

If ABCpdf has not yet been registered, this property will be empty.


XSettings LicenseDescription Property. The current license for the software. ABCpdf .NET PDF Library.

LicenseDescription Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | None | Yes | The current license for the software.

Notes

This property describes the current license for the software in human readable format. Typically, this will be trial, standard or professional.


XSettings Licensee Property. The current licensee for the software. ABCpdf .NET PDF Library.

Licensee Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | None | Yes | The current licensee for the software.

Notes

This property retrieves the licensee for the software and presents it in a human readable format.

The licensee is the legal entity to which ABCpdf is registered. The licensee is selected at the point at which a license is purchased and that license is specific to that entity. Licensees are normally companies but may be individuals.


XSettings LicenseType Property. The current feature level for the software. ABCpdf .NET PDF Library.

LicenseType Property

Type | Default | Read Only | Description
[C#] LicenseType [Visual Basic] LicenseType | n/a | Yes | The current feature level for the software.

Notes

The LicenseType enumeration may take the following values:

  • None
  • TimePeriod
  • Standard
  • Professional


XSettings LicenseValid Property. Whether the current license is valid. ABCpdf .NET PDF Library.

LicenseValid Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | None | Yes | Whether the current license is valid.

Notes

This property determines whether the current license is valid.

After installing a license, you may wish to check that it is installed and valid using this property.


XSettings LogErrors Property. Whether to log errors in the Application Event Log. ABCpdf .NET PDF Library.

LogErrors Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | False | No | Whether to log errors in the Application Event Log.

Notes

This property determines whether to log errors in the Application Event Log.


XSettings Version Property. The software version. ABCpdf .NET PDF Library.

Version Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | None | Yes | The software version.

Notes

This property gets the software version.


XTextStyle Class

Represents the style used when adding text.

All measurements are specified using the current Doc.Units.

System.Object
   WebSupergoo.ABCpdf12.XTextStyle

Method | Description
ToString | Returns a string representation of the object.

Property | Description
Ascender | An adjustment to allow the text ascender to coincide with the top of the text area.
Bold | Whether to apply a synthetic bold effect.
CharSpacing | The inter-character spacing.
CharUsage | The usage of characters.
Direction | The default text direction.
Font | The current Font ID.
HPos | The current horizontal positioning factor (0 to 1).
Indent | The first line of paragraph indent.
Italic | Whether to apply a synthetic italic effect.
Justification | The horizontal justification factor.
Kerning | The kerning method.
LeftMargin | The paragraph indent.
LineSpacing | The inter-line spacing.
Outline | The width of character outlining.
ParaSpacing | The inter-paragraph spacing.
PreserveSpace | Whether to preserve white space characters for plain text.
Size | The current text size.
Strike | Whether to apply a strikethrough effect.
Strike2 | Whether to apply a double strikethrough effect.
String | The text style as a string.
Underline | Whether to underline text.
VPos | The current vertical positioning factor (0 to 1).
WordSpacing | The inter-word spacing.


XTextStyle ToString Function. Returns a string representation of the object. ABCpdf .NET PDF Library.

ToString Function

Returns a string representation of the object.

Syntax

[C#]
override string ToString()

[Visual Basic]
Overrides Function ToString() As String

Params
Name | Description
return | The string representation of the object.

Notes

This method returns the string value of the object. This is equivalent to reading the String property of the object.


XTextStyle Ascender Property. An adjustment to allow the text ascender to coincide with the top of the text area. ABCpdf .NET PDF Library.

Ascender Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | -1 | No | An adjustment to allow the text ascender to coincide with the top of the text area.

Notes

The distance between the line spacing below the top of the text frame and the first baseline.

Because LineSpacing is always applied at the top, the top of the text rectangle needs to be shifted up by LineSpacing for better control of the position of the first line.

This property is measured in 1000ths of the font size. When it is -1, default spacing will be applied.


XTextStyle Bold Property. Whether to apply a synthetic bold effect. ABCpdf .NET PDF Library.

Bold Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to apply a synthetic bold effect.

Notes

This property determines whether a synthetic bold effect is applied to text.

It is generally better to specify a bold typeface rather than synthesize a bold effect using the current typeface. However under some circumstances this may not be possible and you may prefer to apply a synthetic bold effect.

Example

In this example we add some bold text to a document.

[C#]

using (Doc doc = new Doc()) {
  string theText;
  theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.";
  doc.Rect.Inset(20, 40);
  doc.TextStyle.Size = 96;
  doc.TextStyle.Bold = true;
  doc.AddText(theText);
  doc.Save(Server.MapPath("stylebold.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theText As String
  theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur."
  doc.Rect.Inset(20, 40)
  doc.TextStyle.Size = 96
  doc.TextStyle.Bold = True
  doc.AddText(theText)
  doc.Save(Server.MapPath("stylebold.pdf"))
End Using

stylebold.pdf


XTextStyle CharSpacing Property. The inter-character spacing. ABCpdf .NET PDF Library.

CharSpacing Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | The inter-character spacing.

Notes

This property controls the spacing between each character. It is sometimes called tracking but should not be confused with kerning which is slightly different.

Each character in a string of text has a width which is used for positioning the next character. The CharSpacing is added to the width of each character.

In the horizontal writing mode, specifying a positive value has the effect of stretching out the text. Specifying negative values has the effect of condensing the text. In the vertical writing mode, positive values condense the text, and negative values stretch out the text. See the FontObject.WritingMode property.

Because this property is measured as an absolute value measured in points, the visual effect will be greater if your text is smaller.

Example

In this example we add three blocks of text to a document. The first block uses the default spacing. The second block uses a positive value to stretch out the text. The last block uses a negative value to condense the text.

[C#]

using (Doc doc = new Doc()) {
  doc.TextStyle.Size = 96;
  doc.AddText("Zero CharSpacing");
  doc.Rect.Move(0, -300);
  doc.TextStyle.CharSpacing = 10;
  doc.AddText("Positive CharSpacing");
  doc.Rect.Move(0, -300);
  doc.TextStyle.CharSpacing = -10;
  doc.AddText("Negative CharSpacing");
  doc.Save(Server.MapPath("stylecspace.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.TextStyle.Size = 96
  doc.AddText("Zero CharSpacing")
  doc.Rect.Move(0, -300)
  doc.TextStyle.CharSpacing = 10
  doc.AddText("Positive CharSpacing")
  doc.Rect.Move(0, -300)
  doc.TextStyle.CharSpacing = -10
  doc.AddText("Negative CharSpacing")
  doc.Save(Server.MapPath("stylecspace.pdf"))
End Using

stylecspace.pdf


XTextStyle CharUsage Property. The usage of characters. ABCpdf .NET PDF Library.

CharUsage Property

Type | Default | Read Only | Description
[C#] CharUsageType [Visual Basic] CharUsageType | Default | No | The usage of characters.

Notes

This property specifies the characters to use.

The CharUsageType enumeration can take any of the following values:

  • Default
  • SymbolUnicode — enables the range 0xf000–0xf0ff for symbol fonts. Symbol fonts are usually used in ANSI encoding, and their characters are in the range 0–255. Since symbol characters do not represent Latin characters, the range 0xf000–0xf0ff in Unicode is also mapped to them.


XTextStyle Direction Property. The default text direction. ABCpdf .NET PDF Library.

Direction Property

Type | Default Value | Read Only | Description
[C#] DirectionType [Visual Basic] DirectionType | DirectionType.Default | No | The default text direction

Notes

This property specifies the default primary text direction.

The DirectionType enumeration may take the following values:

  • Default - left-to-right reading direction
  • LeftToRight - left-to-right reading direction (e.g. English)
  • RightToLeft - right-to-left reading direction (e.g. Hebrew).

If a run of English (left-to-right) text is followed by a run of Hebrew (right-to-left) text, LeftToRight gives English text on the left and Hebrew text on the right, whereas RightToLeft gives English text on the right and Hebrew text on the left. In any case, the English text is still left-to-right, and the Hebrew text is still right-to-left.

To support Arabic contextual ligatures (glyph shaping) and right-to-left text, LeftToRight or RightToLeft must be specified at least once somewhere. It can be in this property or in the dir attribute of StyleRun (for Doc.AddTextStyled). If only Default is specified, there will be no contextual ligature support and right-to-left text may appear incorrect.

By setting the direction to a non-default value, you engage the text shaping engine used for complex text layout. Most normally this is used for bi-directional scripts such as Hebrew or Arabic as detailed above.

However text shaping also influences other complex languages which have glyphs varying in style and position depending on the surrounding characters. There a variety of these including Hangul, Indic, Burmese, Thai and Tibetan. If you are using one of these types of languages and you are seeing letters or diactritics in the wrong place, set the predominant direction.


XTextStyle Font Property. The current Font ID. ABCpdf .NET PDF Library.

Font Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | The current Font ID.

Notes

The font used for drawing text.

This property holds the current Font ID and determines the style of text that is added to the document using methods like Doc.AddText.

To get a Font ID you need to add your font to the current document using the Doc.AddFont method. See the Doc.Font property for further details.


XTextStyle HPos Property. The current horizontal positioning factor (0 to 1). ABCpdf .NET PDF Library.

HPos Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 0? | No? | The current horizontal positioning factor (0 to 1).

Notes

This property determines the horizontal offset of blocks of text - used for left alignment, right alignment or centering.

The offset is measured as a proportion of the distance from the left. A value of zero indicates left alignment, a value of one half indicates centered text and a value of one indicates right alignment. Intermediate values can be used for intermediate offsets.

To vertically align text use the VPos property. To justify text use the Justification property.

Example

The following code adds two blocks of text to a document. The first block is left aligned and the second is right aligned. Before adding the text we change the current rectangle and frame it so that you can see how the text is aligned.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 96;
  doc.Rect.Magnify(1.0, 0.5);
  doc.Rect.Inset(40, 40);
  doc.FrameRect();
  doc.AddText("Left justified text...");
  doc.Rect.Move(0, doc.Rect.Height + 80);
  doc.FrameRect();
  doc.TextStyle.HPos = 1.0;
  doc.AddText("Right justified text...");
  doc.Save(Server.MapPath("dochpos.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 96
  doc.Rect.Magnify(1.0, 0.5)
  doc.Rect.Inset(40, 40)
  doc.FrameRect()
  doc.AddText("Left justified text...")
  doc.Rect.Move(0, doc.Rect.Height + 80)
  doc.FrameRect()
  doc.TextStyle.HPos = 1.0
  doc.AddText("Right justified text...")
  doc.Save(Server.MapPath("dochpos.pdf"))
End Using

dochpos.pdf


XTextStyle Indent Property. The first line of paragraph indent. ABCpdf .NET PDF Library.

Indent Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0 | No | The first line of paragraph indent.

Notes

This property determines the horizontal indent applied to the first line of every paragraph.

If the indent is positive the start of the first line is shifted to the right by the specified number of points. If the indent is negative it is shifted to the left by the specified number of units.

Example

In this example we add a block of text to a document. We specify a ParaSpacing value to space out the paragraphs and an Indent value to indent the first line of each paragraph.

[C#]

using (Doc doc = new Doc()) {
  string theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. Hi omnes lingua, institutis, legibus inter se differunt.";
  theText = theText + theText;
  theText = theText + "\r\n" + theText + "\r\n";
  theText = theText + theText + theText + theText;
  doc.Rect.Inset(20, 40);
  doc.TextStyle.Size = 16;
  doc.TextStyle.ParaSpacing = 16;
  doc.TextStyle.Indent = 48;
  doc.AddText(theText);
  doc.Save(Server.MapPath("styleindent.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theText As String = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. Hi omnes lingua, institutis, legibus inter se differunt."
  theText = theText + theText
  theText = theText + vbCr & vbLf + theText + vbCr & vbLf
  theText = theText + theText + theText + theText
  doc.Rect.Inset(20, 40)
  doc.TextStyle.Size = 16
  doc.TextStyle.ParaSpacing = 16
  doc.TextStyle.Indent = 48
  doc.AddText(theText)
  doc.Save(Server.MapPath("styleindent.pdf"))
End Using

styleindent.pdf


XTextStyle Italic Property. Whether to apply a synthetic italic effect. ABCpdf .NET PDF Library.

Italic Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to apply a synthetic italic effect.

Notes

This property determines whether a synthetic italic effect is applied to text.

It is generally better to specify an italic typeface rather than synthesize an italic effect using the current typeface. However, under some circumstances this may not be possible and you may prefer to apply a synthetic italic effect.

Example

In this example we add some italic text to a document.

[C#]

using (Doc doc = new Doc()) {
  string theText;
  theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.";
  doc.Rect.Inset(20, 40);
  doc.TextStyle.Size = 96;
  doc.TextStyle.Italic = true;
  doc.AddText(theText);
  doc.Save(Server.MapPath("styleitalic.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theText As String
  theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur."
  doc.Rect.Inset(20, 40)
  doc.TextStyle.Size = 96
  doc.TextStyle.Italic = True
  doc.AddText(theText)
  doc.Save(Server.MapPath("styleitalic.pdf"))
End Using

styleitalic.pdf


XTextStyle Justification Property. The horizontal justification factor. ABCpdf .NET PDF Library.

Justification Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | The horizontal justification factor.

Notes

Allows you to adjust the horizontal justification.

Every line of text is drawn within a bounding box determined by the Doc.Rect property. The justification property can be used to space out words so that they fit the bounding box exactly.

Typically you will only need to use values of zero - no justification - and one - full justification. However intermediate values can be used to partially justify text.

As each line is drawn the difference between the width of the line and the width of the bounding box is evaluated to determine the amount of free width. This free width is divided by the number of space characters in the line and then multiplied by the justification factor to produce an inter-word spacing for the line. Lines at the end of paragraphs are not justified.

Text alignment is determined by the TextStyle.HPos and TextStyle.VPos properties.

Example

In this example we add two blocks of text to a document. The first is added with no justification and the second is added with a justification factor of one.

[C#]

using (Doc doc = new Doc()) {
  string theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.";
  doc.Rect.Inset(20, 40);
  doc.TextStyle.Size = 48;
  doc.AddText(theText);
  doc.Rect.Move(0, -350);
  doc.TextStyle.Justification = 1.0;
  doc.AddText(theText);
  doc.Save(Server.MapPath("stylejustification.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theText As String = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur."
  doc.Rect.Inset(20, 40)
  doc.TextStyle.Size = 48
  doc.AddText(theText)
  doc.Rect.Move(0, -350)
  doc.TextStyle.Justification = 1.0
  doc.AddText(theText)
  doc.Save(Server.MapPath("stylejustification.pdf"))
End Using

stylejustification.pdf


XTextStyle Kerning Property. The kerning method. ABCpdf .NET PDF Library.

Kerning Property

Type | Default Value | Read Only | Description
[C#] KerningType [Visual Basic] KerningType | Default | No | The kerning method.

Notes

The kerning method.

Kerning is similar to character spacing in that it controls how far apart two characters are. However rather than being a constant, it is a value which is determined by the two characters themselves. So the kerning for "tt" would likely be different than for "te".

The KerningType enumeration may take the following values:

  • None
  • Default

The default kerning method is based around the kerning tables in the TrueType font file. Not all fonts contain kerning tables so not all fonts will kern.

Example

The following shows how to insert a table of contents while disabling kerning.

[C#]

string text = File.ReadAllText(Server.MapPath("tableofcontents.txt"));
text = text.Replace("\r", "&lt;br&gt;"); // make our carriage returns into breaks
text = text.Replace(" ", "     "); // make our indent at start of line into nbsp
using (Doc doc = new Doc()) {
  doc.TextStyle.Size = 36;
  doc.TextStyle.Kerning = XTextStyle.KerningType.None;
  doc.Rect.Inset(10, 10);
  doc.Page = doc.AddPage();
  doc.AddTextStyled(text.Replace(" ~", "<leader>.</leader>"));
  doc.Save(Server.MapPath("TableOfContentsWithLeaders.pdf"));
}

[Visual Basic]
Dim text As String = File.ReadAllText(Server.MapPath("tableofcontents.txt"))
text = text.Replace(vbCr, "&lt;br&gt;")
' make our carriage returns into breaks
text = text.Replace(" ", vbTab & vbTab & " ")
' make our indent at start of line into nbsp
Using doc As New Doc()
  doc.TextStyle.Size = 36
  doc.TextStyle.Kerning = XTextStyle.KerningType.None
  doc.Rect.Inset(10, 10)
  doc.Page = doc.AddPage()
  doc.AddTextStyled(text.Replace(" ~", "<leader>.</leader>"))
  doc.Save(Server.MapPath("TableOfContentsWithLeaders.pdf"))
End Using

Using the following input text.

Chapter 1: Getting Started ~1
Introduction ~2
Next Steps ~3
Chapter 2: What To Do ~4
Some Difficult Bits ~15
Some More Difficult Bits ~20
Chapter 3: In Conclusion ~21
Summary ~22
Endword ~23

We get the following output.

TableOfContentsWithLeaders.pdf


XTextStyle LeftMargin Property. The paragraph indent. ABCpdf .NET PDF Library.

LeftMargin Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0 | No | The paragraph indent.

Notes

Allows you to apply a left margin to a block of text.

The left margin is a horizontal indent applied to every line of text. You can achieve the same effect by insetting the left of the current Rect but using this property can be more convenient.

If the value is positive the block is shifted to the right by the specified number of units. If the value is negative it is shifted to the left by the specified number of units.

Example

In the following example we add three blocks of text to a document. The first block uses the default left margin. The subsequent blocks use different left margin settings to indent the text.

[C#]

using (Doc doc = new Doc()) {
  string theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani...";
  doc.TextStyle.Size = 48;
  doc.AddText(theText);
  doc.Rect.Move(0, -250);
  doc.TextStyle.LeftMargin = 100;
  doc.AddText(theText);
  doc.Rect.Move(0, -250);
  doc.TextStyle.LeftMargin = 200;
  doc.AddText(theText);
  doc.Save(Server.MapPath("stylemargin.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theText As String = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani..."
  doc.TextStyle.Size = 48
  doc.AddText(theText)
  doc.Rect.Move(0, -250)
  doc.TextStyle.LeftMargin = 100
  doc.AddText(theText)
  doc.Rect.Move(0, -250)
  doc.TextStyle.LeftMargin = 200
  doc.AddText(theText)
  doc.Save(Server.MapPath("stylemargin.pdf"))
End Using

stylelmargin.pdf


XTextStyle LineSpacing Property. The inter-line spacing. ABCpdf .NET PDF Library.

LineSpacing Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | The inter-line spacing.

Notes

Allows you to adjust the distance between lines of text.

At the start of every new line of text, the text drawing position is shifted vertically by the distance specified in this property. If the value is positive this will space the lines out. If the value is negative it will shift the lines together.

You can use the following code to adopt the linespacing from an embedded font.

[C#]

FontObject font = (FontObject)doc.ObjectSoup[doc.Font];
doc.TextStyle.LineSpacing = (font.FontLineSpacing * doc.TextStyle.Size) / 1000;

[Visual Basic]
Dim font As FontObject = CType(doc.ObjectSoup(doc.Font), FontObject)
doc.TextStyle.LineSpacing = (font.FontLineSpacing * doc.TextStyle.Size) / 1000

Example

In the following example we add three blocks of text to a document. The first block uses the default line spacing. The second block uses a positive value to space out the lines. The last block uses a negative value to shift the lines together.

[C#]

using (Doc doc = new Doc()) {
  string theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani...";
  doc.TextStyle.Size = 48;
  doc.AddText(theText);
  doc.Rect.Move(0, -250);
  doc.TextStyle.LineSpacing = 20;
  doc.AddText(theText);
  doc.Rect.Move(0, -350);
  doc.TextStyle.LineSpacing = -20;
  doc.AddText(theText);
  doc.Save(Server.MapPath("stylelspace.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theText As String = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani..."
  doc.TextStyle.Size = 48
  doc.AddText(theText)
  doc.Rect.Move(0, -250)
  doc.TextStyle.LineSpacing = 20
  doc.AddText(theText)
  doc.Rect.Move(0, -350)
  doc.TextStyle.LineSpacing = -20
  doc.AddText(theText)
  doc.Save(Server.MapPath("stylelspace.pdf"))
End Using

stylelspace.pdf


XTextStyle Outline Property. The width of character outlining. ABCpdf .NET PDF Library.

Outline Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0 | No | The width of character outlining.

Notes

This property determines whether a character outlining style is applied and the weight of the outline.

If the outline property is zero no outlining is done. If the outline property is greater than zero it indicates the width of lines used to outline the text.

Example

In this example we add some text to a document varying the outline style to show how different values affect the final result.

[C#]

using (Doc doc = new Doc()) {
  doc.TextStyle.Size = 144;
  doc.AddText("Outline 0");
  doc.Rect.Move(0, -300);
  doc.TextStyle.Outline = 4;
  doc.AddText("Outline 4");
  doc.Rect.Move(0, -300);
  doc.TextStyle.Outline = 10;
  doc.AddText("Outline 10");
  doc.Save(Server.MapPath("styleoutline.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.TextStyle.Size = 144
  doc.AddText("Outline 0")
  doc.Rect.Move(0, -300)
  doc.TextStyle.Outline = 4
  doc.AddText("Outline 4")
  doc.Rect.Move(0, -300)
  doc.TextStyle.Outline = 10
  doc.AddText("Outline 10")
  doc.Save(Server.MapPath("styleoutline.pdf"))
End Using

styleoutline.pdf


XTextStyle ParaSpacing Property. The inter-paragraph spacing. ABCpdf .NET PDF Library.

ParaSpacing Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | The inter-paragraph spacing.

Notes

Allows you to adjust the distance between paragraphs.

At the start of every new paragraph the text drawing position is shifted vertically by the distance specified in this property. If the value is positive this will space the paragraphs out. If the value is negative it will shift the paragraphs together.

Example

In this example we add two blocks of text to a document. The first block uses the default paragraph spacing. The second block uses a positive value to space out the paragraphs.

[C#]

using (Doc doc = new Doc()) {
  string theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. Hi omnes lingua, institutis, legibus inter se differunt.";
  theText = theText + "\r\n" + theText + "\r\n" + theText + "\r\n" + theText;
  doc.Rect.Inset(20, 40);
  doc.TextStyle.Size = 16;
  doc.AddText(theText);
  doc.Rect.Move(0, -350);
  doc.TextStyle.ParaSpacing = 20;
  doc.AddText(theText);
  doc.Save(Server.MapPath("stylepspace.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theText As String = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. Hi omnes lingua, institutis, legibus inter se differunt."
  theText = theText + vbCr & vbLf + theText + vbCr & vbLf + theText + vbCr & vbLf + theText
  doc.Rect.Inset(20, 40)
  doc.TextStyle.Size = 16
  doc.AddText(theText)
  doc.Rect.Move(0, -350)
  doc.TextStyle.ParaSpacing = 20
  doc.AddText(theText)
  doc.Save(Server.MapPath("stylepspace.pdf"))
End Using

stylepspace.pdf


XTextStyle PreserveSpace Property. Whether to preserve white space characters for plain text. ABCpdf .NET PDF Library.

PreserveSpace Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to preserve white space characters for plain text.

Notes

This property determines whether white space characters are preserved when Doc.AddText is called. It does not affect Doc.AddTextStyled.


XTextStyle Size Property. The current text size. ABCpdf .NET PDF Library.

Size Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 10.0 | No | The current text size.

Notes

This property determines the size of text that is added to the document using methods like AddText.

The Size property is equivalent to the the Doc.FontSize property but unlike the FontSize property it allows fractional point sizes to be specified.

The font size is measured in units.

Example

The following example adds two blocks of styled text to a document. The first block is in 96.5 point type and the second is in 192.5 point type.

[C#]

using (Doc doc = new Doc()) {
  doc.TextStyle.Size = 96.5;
  doc.AddText("Small ");
  doc.TextStyle.Size = 192.5;
  doc.AddText("Big");
  doc.Save(Server.MapPath("stylesize.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.TextStyle.Size = 96.5
  doc.AddText("Small ")
  doc.TextStyle.Size = 192.5
  doc.AddText("Big")
  doc.Save(Server.MapPath("stylesize.pdf"))
End Using

stylesize.pdf


XTextStyle Strike Property. Whether to apply a strikethrough effect. ABCpdf .NET PDF Library.

Strike Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to apply a strikethrough effect.

Notes

This property determines whether a strikethrough is applied to text.

Example

In this example we add some strikethrough styled text to a document.

[C#]

using (Doc doc = new Doc()) {
  string theText;
  theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.";
  doc.Rect.Inset(20, 40);
  doc.TextStyle.Size = 96;
  doc.TextStyle.Strike = true;
  doc.AddText(theText);
  doc.Save(Server.MapPath("stylestrike.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theText As String
  theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur."
  doc.Rect.Inset(20, 40)
  doc.TextStyle.Size = 96
  doc.TextStyle.Strike = True
  doc.AddText(theText)
  doc.Save(Server.MapPath("stylestrike.pdf"))
End Using

stylestrike.pdf


XTextStyle Strike2 Property. Whether to apply a double strikethrough effect. ABCpdf .NET PDF Library.

Strike2 Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to apply a double strikethrough effect.

Notes

This property determines whether a double strikethrough is applied to text.

Example

In this example we add some double strikethrough styled text to a document.

[C#]

using (Doc doc = new Doc()) {
  string theText;
  theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.";
  doc.Rect.Inset(20, 40);
  doc.TextStyle.Size = 96;
  doc.TextStyle.Strike2 = true;
  doc.AddText(theText);
  doc.Save(Server.MapPath("stylestrike2.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theText As String
  theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur."
  doc.Rect.Inset(20, 40)
  doc.TextStyle.Size = 96
  doc.TextStyle.Strike2 = True
  doc.AddText(theText)
  doc.Save(Server.MapPath("stylestrike2.pdf"))
End Using

stylestrike2.pdf


XTextStyle String Property. The text style as a string. ABCpdf .NET PDF Library.

String Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | Variable | No | The text style as a string.

Notes

A string representation of the text style.

This covers all the properties of this class and can be sued for a save and restore stack.

Example

The following code.

[C#]

XTextStyle ts = new XTextStyle();
ts.String = "24.5 10 0 0 0 0 0";
Response.Write($"Size = {ts.Size}&lt;br&gt;");
Response.Write($"Indent = {ts.Indent}");

[Visual Basic]
Dim ts As New XTextStyle()
ts.String = "24.5 10 0 0 0 0 0"
Response.Write($"Size = {ts.Size}&lt;br&gt;")
Response.Write($"Indent = {ts.Indent}")

Produces the following output.

Size = 24.5
Indent = 10


XTextStyle Underline Property. Whether to underline text. ABCpdf .NET PDF Library.

Underline Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to underline text.

Notes

This property determines whether underlining is applied to text.

Example

In this example we add some underlined text to a document.

[C#]

using (Doc doc = new Doc()) {
  string theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.";
  doc.Rect.Inset(20, 40);
  doc.TextStyle.Size = 96;
  doc.TextStyle.Underline = true;
  doc.AddText(theText);
  doc.Save(Server.MapPath("styleunderline.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theText As String = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur."
  doc.Rect.Inset(20, 40)
  doc.TextStyle.Size = 96
  doc.TextStyle.Underline = True
  doc.AddText(theText)
  doc.Save(Server.MapPath("styleunderline.pdf"))
End Using

styleunderline.pdf


XTextStyle VPos Property. The current vertical positioning factor (0 to 1). ABCpdf .NET PDF Library.

VPos Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 0? | No? | The current vertical positioning factor (0 to 1).

Notes

This property determines the vertical offset of blocks of text - used for bottom alignment, top alignment or middle alignment.

The offset is measured as a proportion of the distance from the top. A value of zero indicates top alignment, a value of one half indicates center aligned text and a value of one indicates bottom aligned text. Intermediate values can be used for intermediate offsets.

To horizontally align text use the HPos property. To justify text use the Justification property.

Example

The following code adds two blocks of text to a document. The first block is bottom aligned and the second is top aligned. Before adding the text we change the current rectangle and frame it so that you can see how the text is aligned.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 96;
  doc.Rect.Magnify(1.0, 0.5);
  doc.Rect.Inset(40, 40);
  doc.FrameRect();
  doc.AddText("Top aligned text...");
  doc.Rect.Move(0, doc.Rect.Height + 80);
  doc.FrameRect();
  doc.TextStyle.VPos = 1.0;
  doc.AddText("Bottom aligned text...");
  doc.Save(Server.MapPath("docvpos.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 96
  doc.Rect.Magnify(1.0, 0.5)
  doc.Rect.Inset(40, 40)
  doc.FrameRect()
  doc.AddText("Top aligned text...")
  doc.Rect.Move(0, doc.Rect.Height + 80)
  doc.FrameRect()
  doc.TextStyle.VPos = 1.0
  doc.AddText("Bottom aligned text...")
  doc.Save(Server.MapPath("docvpos.pdf"))
End Using

docvpos.pdf


XTextStyle WordSpacing Property. The inter-word spacing. ABCpdf .NET PDF Library.

WordSpacing Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | The inter-word spacing.

Notes

This property controls the spacing between each word.

This property works in a similar way to the CharSpacing property but the value is added to only space characters in the string. This has the effect of spacing out words or pushing them together depending on the sign of the value, and the property bears the same relation to the font's writing mode as CharSpacing.

Because this property is an absolute value the visual effect will be greater if your text is smaller.

Example

In this example we add three blocks of text to a document. The first block uses the default spacing. The second block uses a positive value to stretch out the text. The last block uses a negative value to condense the text.

[C#]

using (Doc doc = new Doc()) {
  string theText = "This is an example of word spacing.";
  doc.TextStyle.Size = 72;
  doc.AddText(theText);
  doc.Rect.Move(0, -300);
  doc.TextStyle.WordSpacing = 20;
  doc.AddText(theText);
  doc.Rect.Move(0, -300);
  doc.TextStyle.WordSpacing = -20;
  doc.AddText(theText);
  doc.Save(Server.MapPath("stylewspace.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim theText As String = "This is an example of word spacing."
  doc.TextStyle.Size = 72
  doc.AddText(theText)
  doc.Rect.Move(0, -300)
  doc.TextStyle.WordSpacing = 20
  doc.AddText(theText)
  doc.Rect.Move(0, -300)
  doc.TextStyle.WordSpacing = -20
  doc.AddText(theText)
  doc.Save(Server.MapPath("stylewspace.pdf"))
End Using

stylewspace.pdf


XTransform Class

Represents a world space transform. When first created the object defaults to the identity - no transformation.

A world space transform is not same an object transform. You are changing the coordinate system - not the objects you're inserting.

System.Object
   WebSupergoo.ABCpdf12.XTransform

Implements: IDisposable, IEquatable<XTransform>, IComparable<XTransform>

Method | Description
XTransform | XTransform Constructor.
Invert | Invert the transform.
Equals | Determines if two transforms are effectively the same.
Magnify | Scale about a locked anchor point.
PreMultiply | Pre-multiplies this transformation matrix by the supplied transform.
PostMultiply | Post-multiplies this transformation matrix by the supplied transform.
Reset | Reset to the identity.
Rotate | Rotate about a locked anchor point (angle in degrees).
Skew | Skew horizontally and vertically about a locked anchor point.
SetTransform | Set the transform.
ToString | Returns a string representation of the object.
TransformPoint | Applies this transform to a specified point.
TransformPoints | Applies this transform to a specified array of points.
Translate | Translate horizontally and vertically.
GetHashCode | A hash code for the XTransform.

Property | Description
String | The transform as a string.
AngleUnit | The angle unit, degrees or radians.
Elements | The transform as an array of floating-point values.
Matrix | The transform as a System.Drawing.Drawing2D Matrix.
MediaMatrix | The transform as a System.Windows.Media Matrix.
OffsetX | The x translation.
OffsetY | The y translation.


XTransform XTransform Function. XTransform Constructor. ABCpdf .NET PDF Library.

XTransform Constructor

XTransform Constructor.

Syntax

[C#]
XTransform()
XTransform(string text)
XTransform(double[] entries)
XTransform(Matrix matrix)
XTransform(double m11, double m12, double m21, double m22, double tx, double ty)
XTransform(XRect src, XRect dst)

[Visual Basic]
Sub New
Sub New(text As String)
Sub New(entries As Double())
Sub New(entries As Matrix)
Sub New(m11 As Double, m12 As Double, m21 As Double, m22 As Double, tx As Double, ty As Double)
Sub New(src As XRect, dst As XRect)

Params
Name | Description
text | A string defining the initial rectangle in the format returned by the String property.
matrix | A System.Drawing.Drawing2D Matrix object specifying the values for the transform.
entries | An array of doubles specifying the values for the matrix. These are in the order m11, m12, m21, m22, tx and ty.
m11 | Matrix entry 1,1.
m12 | Matrix entry 1,2.
m21 | Matrix entry 2,1.
m22 | Matrix entry 2,2.
tx | The x translation to be applied.
ty | The y translation to be applied.
src | The source rectangle.
dst | The source rectangle.

Notes

These methods construct an XTransform object.

The default constructor creates an identity transform.

The constructor which takes two rectangles creates a transform which maps the source rectangle to the destination rectangle using positive scale values.


XTransform Invert Function. Invert the transform. ABCpdf .NET PDF Library.

Invert Function

Invert the transform.

Syntax

[C#]
void Invert()

[Visual Basic]
Sub Invert()

Params
Name | Description
None |

Notes

When you invert a transform a rotation clockwise becomes an identical rotation anti-clockwise. A translation to the left becomes a translation to the right. A zoom in becomes a zoom out.

Note that not every transform can be inverted. If you specify a magnification of zero you have shrunk your world space to a point. In this case it is not possible to invert the transform to get the original back again. However this kind of transform is uncommon in the real world and normally only occurs as a result of programming errors.

If you apply the invert method to a non-invertable transform the transform will remain unmodified.

Example

Here we add some text rotated at 45 degrees anti-clockwise around the middle of the document. We then invert the transform and draw some more text. Because the transform has been inverted the text now appears rotated 45 degrees clockwise.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 72;
  doc.Rect.String = "0 0 999 999";
  doc.Pos.String = "302 396";
  doc.Transform.Rotate(45, 302, 396);
  doc.AddText("45 Degrees");
  doc.Pos.String = "302 396";
  doc.Transform.Invert();
  doc.AddText("Inverted");
  doc.Save(Server.MapPath("transforminvert.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 72
  doc.Rect.String = "0 0 999 999"
  doc.Pos.String = "302 396"
  doc.Transform.Rotate(45, 302, 396)
  doc.AddText("45 Degrees")
  doc.Pos.String = "302 396"
  doc.Transform.Invert()
  doc.AddText("Inverted")
  doc.Save(Server.MapPath("transforminvert.pdf"))
End Using

transforminvert.pdf


XTransform Equals Function. Determines if two transforms are effectively the same. ABCpdf .NET PDF Library.

Equals Function

Determines if two transforms are effectively the same.

Syntax

[C#]
bool Equals(XTransform other, double epsilon)
bool Equals(XTransform other)
override bool Equals(object other)

[Visual Basic]
Function Equals(other As XTransform, epsilon As Double) As Boolean
Function Equals(other As XTransform) As Boolean
Overrides Function Equals(other As Object) As Boolean

Params
Name | Description
other | The transform to be compared against this one
epsilon | The largest difference in values which will still be defined as equal
return | Whether the two transforms are the same.

Notes

Determines if two transforms are effectively the same.

Transforms contain a set of elements which are represented as floating point numbers. Floating point numbers are subject to rounding errors so the epsilon value is used to determine the resolution of the comparison. Only if two elements differ by more than the value of epsilon will they be defined as not equal.

Internally Acrobat uses double precision floating point numbers for a very high level of accuracy. However within a PDF itself these numbers are typically only represented to around five decimal points. You may wish to represent similar levels of accuracy in your epsilon values. The default epsilon is zero so by default, transforms have to match perfectly for them to be considered equal.


XTransform Magnify Function. Scale about a locked anchor point. ABCpdf .NET PDF Library.

Magnify Function

Scale about a locked anchor point.

Syntax

[C#]
void Magnify(double scaleX, double scaleY, double anchorX, double anchorY)

[Visual Basic]
Sub Magnify(scaleX As Double, scaleY As Double, anchorX As Double, anchorY As Double)

Params
Name | Description
scaleX | The amount of horizontal scaling to apply.
scaleY | The amount of vertical scaling to apply.
anchorX | The horizontal coordinate about which the stretch should be applied.
anchorY | The vertical coordinate about which the stretch should be applied.

Notes

This method stretches the world space about a locked anchor point. Different degrees of horizontal and vertical stretch can be used.

Another way of looking at this kind of transform is as a zoom. The anchor point is the location you're zooming in on and the scale factors indicate the level of zoom.

Example

Here we add two chunks of text. The default text is added in black and the magnified text is drawn in red. We specify the middle of the document as the anchor point which means that all scaling is relative to the middle of the document. Our horizontal scale factor is larger than our text has been stretched horizontally somewhat.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Inset(200, 200);
  doc.FontSize = 48;
  doc.AddText("Normal");
  doc.FrameRect();
  doc.Rect.Move(0, -100);
  doc.Color.String = "255 0 0";
  doc.Transform.Magnify(2, 1.5, 302, 396);
  doc.AddText("Magnified");
  doc.FrameRect();
  doc.Save(Server.MapPath("transformmagnify.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Inset(200, 200)
  doc.FontSize = 48
  doc.AddText("Normal")
  doc.FrameRect()
  doc.Rect.Move(0, -100)
  doc.Color.String = "255 0 0"
  doc.Transform.Magnify(2, 1.5, 302, 396)
  doc.AddText("Magnified")
  doc.FrameRect()
  doc.Save(Server.MapPath("transformmagnify.pdf"))
End Using

transformmagnify.pdf


XTransform PreMultiply Function. Pre-multiplies this transformation matrix by the supplied transform. ABCpdf .NET PDF Library.

PreMultiply Function

Pre-multiplies this transformation matrix by the supplied transform.

Syntax

[C#]
void PreMultiply(XTransform transform)

[Visual Basic]
Sub PreMultiply(transform as XTransform)

Params
Name | Description
transform | The transform to combine with this one.

Notes

Pre-multiplies this transformation matrix by the supplied transform.

The final result is contained in this transform.

See also the Mutiply function.


XTransform PostMultiply Function. Post-multiplies this transformation matrix by the supplied transform. ABCpdf .NET PDF Library.

PostMultiply Function

Post-multiplies this transformation matrix by the supplied transform.

Syntax

[C#]
void PostMultiply(XTransform transform)

[Visual Basic]
Sub PostMultiply(transform as XTransform)

Params
Name | Description
transform | The transform to combine with this one.

Notes

Post-multiplies this transformation matrix by the supplied transform.

The final result is contained in this transform.

See also the PreMutiply function.


XTransform Reset Function. Reset to the identity. ABCpdf .NET PDF Library.

Reset Function

Reset to the identity.

Syntax

[C#]
void Reset()

[Visual Basic]
Sub Reset()

Params
Name | Description
None |

Notes

This method resets the transform to it's original state. This state is known as the identity and indicates that no transformation will be applied.

Example

Here we add some text rotated at 60 degrees around the middle of the document. We then reset the transform and draw some more text. This text is drawn with no rotation because the transform has been reset.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Inset(10, 10);
  doc.FontSize = 96;
  doc.Transform.Rotate(60, 302, 396);
  doc.Pos.String = "302 396";
  doc.AddText("Angled");
  doc.FrameRect();
  doc.Transform.Reset();
  doc.Pos.String = "302 396";
  doc.AddText("Reset");
  doc.FrameRect();
  doc.Save(Server.MapPath("transformreset.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Inset(10, 10)
  doc.FontSize = 96
  doc.Transform.Rotate(60, 302, 396)
  doc.Pos.String = "302 396"
  doc.AddText("Angled")
  doc.FrameRect()
  doc.Transform.Reset()
  doc.Pos.String = "302 396"
  doc.AddText("Reset")
  doc.FrameRect()
  doc.Save(Server.MapPath("transformreset.pdf"))
End Using

transformreset.pdf


XTransform Rotate Function. Rotate about a locked anchor point (angle in degrees). ABCpdf .NET PDF Library.

Rotate Function

Rotate about a locked anchor point (angle in degrees).

Syntax

[C#]
void Rotate(double angle, double anchorX, double anchorY)

[Visual Basic]
Sub Rotate(angle As Double, anchorX As Double, anchorY As Double)

Params
Name | Description
angle | The angle to rotate in degrees.
anchorX | The horizontal coordinate about which the rotation should be applied.
anchorY | The vertical coordinate about which the rotation should be applied.

Notes

This method rotates the world space about a locked anchor point. The angle is specified in degrees anti-clockwise.

Example

Here we add a number of chunks of text rotated at different angles about the middle of the document.

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 48;
  doc.TextStyle.Indent = 48;
  for (int i = 1; i <= 8; i++) {
    int theAngle = i * 45;
    doc.Pos.String = "302 396";
    doc.Transform.Reset();
    doc.Transform.Rotate(theAngle, 302, 396);
    doc.AddText($"Rotated {theAngle}");
  }
  doc.Save(Server.MapPath("rotate.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 48
  doc.TextStyle.Indent = 48
  Dim i As Integer = 1
  While i <= 8
    Dim theAngle As Integer = i * 45
    doc.Pos.String = "302 396"
    doc.Transform.Reset()
    doc.Transform.Rotate(theAngle, 302, 396)
    doc.AddText($"Rotated {theAngle}")
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While
  doc.Save(Server.MapPath("rotate.pdf"))
End Using

rotate.pdf


XTransform Skew Function. Skew horizontally and vertically about a locked anchor point. ABCpdf .NET PDF Library.

Skew Function

Skew horizontally and vertically about a locked anchor point.

Syntax

[C#]
void Skew(double skewX, double skewY, double anchorX, double anchorY)

[Visual Basic]
Sub Skew(skewX As Double, skewY As Double, anchorX As Double, anchorY As Double)

Params
Name | Description
skewX | The amount of horizontal skewing to apply.
skewY | The amount of vertical skewing to apply.
anchorX | The horizontal coordinate about which the stretch should be applied.
anchorY | The vertical coordinate about which the stretch should be applied.

Notes

This method skews the world space about a locked anchor point. Different degrees of horizontal and vertical stretch can be used.

A skew or shear is a mathematical operation which shifts points by an amount proportional to the distance from the anchor point. This shift is scaled by the horizontal and vertical skew factors.

Example

Here we draw two rectangles into our document. The black rectangle is drawn before the skew operation and the red one is drawn after it.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Width = 200;
  doc.Rect.Height = 250;
  doc.Rect.Position(20, 20);
  doc.Width = 20;
  doc.FrameRect();
  doc.Transform.Skew(1.5, 1.5, 20, 20);
  doc.Color.String = "255 0 0"; // red
  doc.FrameRect();
  doc.Save(Server.MapPath("transformskew.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Width = 200
  doc.Rect.Height = 250
  doc.Rect.Position(20, 20)
  doc.Width = 20
  doc.FrameRect()
  doc.Transform.Skew(1.5, 1.5, 20, 20)
  doc.Color.String = "255 0 0"
  ' red
  doc.FrameRect()
  doc.Save(Server.MapPath("transformskew.pdf"))
End Using

transformskew.pdf


XTransform SetTransform Function. Set the transform. ABCpdf .NET PDF Library.

SetTransform Function

Set the transform.

Syntax

[C#]
void SetTransform(double m11, double m12, double m21, double m22, double tx, double ty)
void SetTransform(XTransform transform)
[Visual Basic]
Sub SetTransform(m11 As Double, m12 As Double, m21 As Double, m22 As Double, tx As Double, ty As Double)
Sub SetTransform(transform As XTransform)

Params
Name | Description
m11 | The new horizontal scale.
m12 | The new vertical skew.
m21 | The new horizontal skew.
m22 | The new vertical scale.
tx | The new horizontal translation.
ty | The new vertical translation.
transform | The source transform.

Notes

This method sets the transform.


XTransform ToString Function. Returns a string representation of the object. ABCpdf .NET PDF Library.

ToString Function

Returns a string representation of the object.

Syntax

[C#]
override string ToString()

[Visual Basic]
Overrides Function ToString() As String

Params
Name | Description
return | The string representation of the object.

Notes

This method returns the string value of the object. This is equivalent to reading the String property of the object.


XTransform TransformPoint Function. Applies this transform to a specified point. ABCpdf .NET PDF Library.

TransformPoint Function

Applies this transform to a specified point.

Syntax

[C#]
void TransformPoint(Point[] point)
void TransformPoint(PointF[] point)
void TransformPoint(XPoint point)
void TransformPoint(ref double x, ref double y)

[Visual Basic]
Sub TransformPoint(point As Point())
Sub TransformPoint(point As PointF())
Sub TransformPoint(point As XPoint())
Sub TransformPoint(ByRef point As Double, ByRef y As Double)

Params
Name | Description
point | The point to be transformed.
x | The x coordinate of a point to be transformed.
y | The y coordinate of a point to be transformed.

Notes

Applies this transform to a specified point.


XTransform TransformPoints Function. Applies this transform to a specified array of points. ABCpdf .NET PDF Library.

TransformPoints Function

Applies this transform to a specified array of points.

Syntax

[C#]
override Point[] TransformPoints(Point[] points)
override PointF[] TransformPoints(PointF[] points)
override XPoint[] TransformPoints(XPointF points)

[Visual Basic]
Overrides Sub TransformPoints(points As Point()) As Point[]
Overrides Sub TransformPoints(points As PointF()) As PointF[]
Overrides Sub TransformPoints(points As XPoint()) As XPoint[]

Params
Name | Description
points | The array of points to be transformed.
return | The array that was passed in.

Notes

Applies this transform to a specified array of points.

The behavior of this method is the same as that of the System.Drawing.Drawing2D Matrix.TransformPoints function.


XTransform Translate Function. Translate horizontally and vertically. ABCpdf .NET PDF Library.

Translate Function

Translate horizontally and vertically.

Syntax

[C#]
void Translate(double x, double y)

[Visual Basic]
Sub Translate(x As Double, y As Double)

Params
Name | Description
x | The distance to translate to the right.
y | The distance to translate upwards.

Notes

This method shifts the world space a specified distance up and to the right. Objects on the PDF will appear to translate upwards and to the right.

Example

Here we draw two rectangles into our document. The black rectangle is drawn before the translation operation and the red one is drawn after it.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Width = 200;
  doc.Rect.Height = 250;
  doc.Rect.Position(100, 100);
  doc.Width = 20;
  doc.FrameRect();
  doc.Transform.Translate(200, 200);
  doc.Color.String = "255 0 0"; // red
  doc.FrameRect();
  doc.Save(Server.MapPath("transformtranslate.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Width = 200
  doc.Rect.Height = 250
  doc.Rect.Position(100, 100)
  doc.Width = 20
  doc.FrameRect()
  doc.Transform.Translate(200, 200)
  doc.Color.String = "255 0 0"
  ' red
  doc.FrameRect()
  doc.Save(Server.MapPath("transformtranslate.pdf"))
End Using

transformtranslate.pdf


XTransform GetHashCode Function. A hash code for the XTransform. ABCpdf .NET PDF Library.

GetHashCode Function

A hash code for the XTransform.

Syntax

[C#]
override int GetHashCode()

[Visual Basic]
Overrides Function GetHashCode() As Integer

Params
Name | Description
return | The returned hash code.

Notes

Derives a hash code suitable for use in hashing algorithms and data structures like hash tables.


XTransform String Property. The transform as a string. ABCpdf .NET PDF Library.

String Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | "1 0 0 1 0 0" | No | The transform as a string.

Notes

Allows you access to the transform as a string.

The format of the string must be "m11 m12 m21 m22 mX mY".

To transform a point (x, y) to another point (x', y'), the following formula is used:

  x' = (x * m11) + (y * m21) + mX
  y' = (x * m12) + (y * m22) + mY


XTransform AngleUnit Property. The angle unit, degrees or radians. ABCpdf .NET PDF Library.

AngleUnit Property

Type Default Read Only Description
[C#]
AngleUnitType

[Visual Basic]
AngleUnitType
Degrees No The angle unit, degrees or radians.

Notes

Specify the angle unit as used by the Rotate method.

The AngleUnitType enumeration may take the following values:

  • Degrees
  • Radians

Example

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 96;
  doc.TextStyle.HPos = 0.5;
  doc.TextStyle.VPos = 0.5;
  doc.Transform.Rotate(90, doc.Rect.Width / 2, doc.Rect.Height / 2);
  doc.TextStyle.Underline = true;
  doc.AddText("Hello World rotated by 90 degrees");
  doc.Page = doc.AddPage();
  doc.Transform.AngleUnit = WebSupergoo.ABCpdf12.XTransform.AngleUnitType.Radians;
  doc.Transform.Rotate(-1 * Math.PI / 2, doc.Rect.Width / 2, doc.Rect.Height / 2);
  doc.AddText("Hello World rotated back by PI/2 radians");
  doc.Save(Server.MapPath("transformrotate.pdf"));
}

[Visual Basic]

Using doc As New Doc()
  doc.FontSize = 96
  doc.TextStyle.HPos = 0.5
  doc.TextStyle.VPos = 0.5
  doc.Transform.Rotate(90, doc.Rect.Width / 2, doc.Rect.Height / 2)
  doc.TextStyle.Underline = True
  doc.AddText("Hello World rotated by 90 degrees")
  doc.Page = doc.AddPage()
  doc.Transform.AngleUnit = WebSupergoo.ABCpdf12.XTransform.AngleUnitType.Radians
  doc.Transform.Rotate(-1 * Math.PI / 2, doc.Rect.Width / 2, doc.Rect.Height / 2)
  doc.AddText("Hello World rotated back by PI/2 radians")
  doc.Save(Server.MapPath("transformrotate.pdf"))
End Using

transforrotate.pdf, page 1

transforrotate.pdf, page 2


XTransform Elements Property. The transform as an array of floating-point values. ABCpdf .NET PDF Library.

Elements Property

Type Default Read Only Description
[C#]
double[]

[Visual Basic]
Double() 		n/a No The transform as an array of floating-point values.

Notes

The transform as an array of floating-point values.

Windows coordinates are measured in distances from the top left of the drawing surface while PDF coordinates are measured from the bottom left.

Remember that transforms operate on the underlying PDF coordinates rather than on any Windows coordinates. So by specifying a rotation around the origin you are specifying a rotation anchored at the bottom left of the document page.


XTransform Matrix Property. The transform as a System.Drawing.Drawing2D Matrix. ABCpdf .NET PDF Library.

Matrix Property

Type | Default | Read Only | Description
[C#] Matrix [Visual Basic] Matrix | n/a | No | The transform as a System.Drawing.Drawing2D Matrix.

Notes

The transform as a System.Drawing.Drawing2D Matrix.

This matrix type holds element values as single precision floating point values so it is is less accurate than the underlying XTransform.

Windows coordinates are measured in distances from the top left of the drawing surface while PDF coordinates are measured from the bottom left.

Remember that transforms operate on the underlying PDF coordinates rather than on any Windows coordinates. So by specifying a rotation around the origin you are specifying a rotation anchored at the bottom left of the document page.


XTransform MediaMatrix Property. The transform as a System.Windows.Media Matrix. ABCpdf .NET PDF Library.

MediaMatrix Property

Type | Default | Read Only | Description
[C#] MediaMatrix [Visual Basic] MediaMatrix | n/a | No | The transform as a System.Windows.Media Matrix.

Notes

The transform as a System.Windows.Media Matrix.

This matrix type holds elements as double precision floating point values.

Windows coordinates are measured in distances from the top left of the drawing surface while PDF coordinates are measured from the bottom left.

Remember that transforms operate on the underlying PDF coordinates rather than on any Windows coordinates. So by specifying a rotation around the origin you are specifying a rotation anchored at the bottom left of the document page.


XTransform OffsetX Property. The x translation. ABCpdf .NET PDF Library.

OffsetX Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0 | Yes | The x translation.

Notes

Allows you access to the x translation.


XTransform OffsetY Property. The y translation. ABCpdf .NET PDF Library.

OffsetY Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0 | Yes | The y translation.

Notes

Allows you access to the y translation.


XPalette

XPalette Class

A palette of different colors that may be used.

This class allows you to specify how to select colors when image colors are reduced, for example when exporting as an indexed color image.

System.Object
   WebSupergoo.ABCpdf12.XPalette

Method | Description
XPalette | XPalette constructor.

Property | Description
Definition | The type of palette.
Data | Raw bytes containing palette data.
Dither | Whether to dither colors when mapping to the palette.
FixedColors | Fixed colors that should be in the palette.
Size | The target number of colors in the palette.


XPalette XPalette Function. XPalette constructor. ABCpdf .NET PDF Library.

XPalette Function

XPalette constructor

Syntax

[C#]
XPalette()

[Visual Basic]
Sub New

Params
Name | Description
none |

Notes

XPalette constructor.

Create a default Adaptive palette with 256 colors.


XPalette Definition Property. The set of colors that may be used. ABCpdf .NET PDF Library.

Definition Property

Type | Default Value | Read Only | Description
[C#] PaletteDefinition [Visual Basic] PaletteDefinition | Adaptive | No | The set of colors that may be used.

Notes

The set of colors that may be used.

The PaletteDefinition enumeration may take the following values:

  • Adaptive - An optimized Octree algorithm for fast, high quality color reduction.
  • WebSafe - A fixed number of colors compatible with Web colors.
  • Windows - A fixed number of colors compatible with Windows colors.
  • Macintosh - A fixed number of colors compatible with Macintosh colors.
  • Uniform - A set of colors uniformly distributed throughout the color space.
  • Grayscale - Use only grayscale colors.
  • BlackAndWhite - Only two colors: black and white.
  • Exact - Same as Adaptive but optimized to ensure an exact color match wherever possible.

An Adaptive palette uses a scan through the image to determine a good set of colors based on those most commonly used. It aims to produce a palette with Size colors. However it may use fewer colors than specified if the image has limited colors. This is the default option and the one you will most commonly want to use. Use in conjunction with the FixedColors property to ensure that colors like black and white are always present.

WebSafe, Windows and Macintosh palettes are all fixed sets of 256 colors. For this reason the Size and FixedColors properties are ignored.

Uniform sets of colors exist for 8, 27, 64, 125 and 216 colors and so the number of colors used may be less than the Size you specify. The FixedColors property is ignored.

Grayscale palettes uses the exact number of gray values specified using the Size with a minimum of two. The FixedColors property is ignored.

Black&White palettes always uses two colors - black and white. The FixedColors property is ignored.

Exact palettes are very similar to Adaptive palettes except they are optimized to ensure an exact color match wherever possible. The precision required here comes at an extra cost in terms of memory use and processing speed. However in some situations, precision is more important than speed.


XPalette Data Property. Raw bytes containing palette data. ABCpdf .NET PDF Library.

Data Property

Type | Default Value | Read Only | Description
[C#] byte[] [Visual Basic] Byte[] | null | No | Raw bytes containing palette data.

Notes

Raw bytes containing palette data.

If you want to use a raw palette derived from some source other than file then provide the raw data using this property.

You may obtain such information by reading an .act file into memory.

Raw palettes consist of an array of 768 bytes holding 256 RGB triplets.


XPalette Dither Property. Whether to dither colors when when mapping to the palette. ABCpdf .NET PDF Library.

Dither Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to dither colors when when mapping to the palette.

Notes

Whether to dither colors when mapping to the palette.

When images are exported at a reduced color depth, they can be dithered.

Dithering uses a scattering of pixels of different colors to approximate colors that are not available.

In general it is a good idea to dither images like photographs which contain smooth gradations of colors.

It is best not to dither posterized images containing blocks of colors.


XPalette FixedColors Property. Fixed colors that should be in the palette. ABCpdf .NET PDF Library.

FixedColors Property

Type | Default Value | Read Only | Description
[C#] IList<XColor> [Visual Basic] IList<XColor> | An empty list. | Yes | Fixed colors that should be in the palette.

Notes

Fixed colors that should be in the palette.

Add fixed colors to the palette when you want certain colors to be present in the palette.

This is only relevant when the Definition is Adaptive or Exact.


XPalette Size Property. The target number of colors in the palette. ABCpdf .NET PDF Library.

Size Property

Type Default Value Read Only Description
[C#]
int
[Visual Basic]
Integer
         256 No The target number of colors in the palette.

Notes

The target number of colors in the palette.

The valid range for this property is between 2 and 256.

The target is a maximum. The actual number of colors that will appear in the palette will depend on the Definition and also perhaps on the content of the image.


IndirectObject Class

A PDF indirect object.

PDF supports a number of basic types of object. Objects may be labeled so that they can be referred to by other objects. This type of object is called an indirect object.

ABCpdf uses a slightly different terminology to avoid clashes with other namespaces. Objects without labels contain basic data elements and are referred to as Atoms.

The term 'indirect object' is often shortened to 'PDF object' or sometime simply 'object'. There are a variety of types of PDF objects from content layers to fonts to annotations. Every object contains an Atom which represents the data held by that object.

Indirect objects are held in an ObjectSoup. This is a non-traditional collection with some of the characteristics of an Array and some of a Dictionary.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
      WebSupergoo.ABCpdf12.Objects.Bookmark
      WebSupergoo.ABCpdf12.Objects.Catalog
      WebSupergoo.ABCpdf12.Objects.ColorSpace
      WebSupergoo.ABCpdf12.Objects.Field
      WebSupergoo.ABCpdf12.Objects.FileSpecification
      WebSupergoo.ABCpdf12.Objects.FontObject
      WebSupergoo.ABCpdf12.Objects.Outline
      WebSupergoo.ABCpdf12.Objects.Page
      WebSupergoo.ABCpdf12.Objects.Pages
      WebSupergoo.ABCpdf12.Objects.StreamObject

Implements: ICloneable, IDisposable, IEquatable<IndirectObject>

Method | Description
S» FromString | Construct an appropriate type of IndirectObject given a string value.
IndirectObject | IndirectObject Constructor.
Dispose | Dispose of the object.
Clone | Create a deep copy of the current IndirectObject.
Equals | Test whether the two IndirectObjects are the same.
GetHashCode | A hash code for the IndirectObject.
Resolve | Resolves any indirect references and returns the Atom.
ResolveRef | Resolves any indirect references and returns the final RefAtom.
ResolveObj | Resolves any indirect references and returns the final IndirectObject.
ToString | The string representation of the IndirectObject.
Transcode | Transcodes and reloads the IndirectObject.

Property | Description
ID | The ID of the PDF object.
Gen | The Generation of the PDF object.
Atom | The Atom contained by the IndirectObject.
Version | The minimum version of the PDF specification required to support this object.
Revision | The revision of the document in which this object is stored.
Alive | Whether the IndirectObject is currently alive.
Doc | The Doc containing this IndirectObject.
Soup | The soup containing this IndirectObject.
AdbeExtLevel | The minimum extension level of Adobe Supplement to the PDF specification required to support this object.


IndirectObject FromString Function. Construct an appropriate type of IndirectObject given a string value. ABCpdf .NET PDF Library.

FromString Function

Construct an appropriate type of IndirectObject given a string value.

Syntax

[C#]
static IndirectObject FromString(string value)

[Visual Basic]
Shared Function FromString(value As String) As IndirectObject

Params
Name | Description
value | The string representing the value of the object.
return | The resulting IndirectObject.

Notes

The text you pass this function must be in native PDF format. This means that unusual characters in text strings must be appropriately escaped.

For full details of the way that PDF objects are represented you should see the Adobe PDF Specification.


IndirectObject IndirectObject Function. IndirectObject Constructor. ABCpdf .NET PDF Library.

IndirectObject Constructor

IndirectObject Constructor.

Syntax

[C#]
IndirectObject()

[Visual Basic]
Sub New()

Params
Name | Description
none |

Notes

Creates an indirect object containing a NullAtom.

Typically you will need to replace the NullAtom before you can do anything useful with the object.


IndirectObject Dispose Function. Dispose of the object. ABCpdf .NET PDF Library.

Dispose Function

Dispose of the object.

Syntax

[C#]
void Dispose()
protected void Dispose(bool disposing)

[Visual Basic]
Sub Dispose()
Protected Sub Dispose(disposing As Boolean)

Params
Name | Description
none |

Notes

You can call this function to explicitly dispose of an object and reduce the garbage collection overhead.

This method follows the standard design pattern for objects implementing the IDisposable interface. The protected Dispose method can be overridden for sub-classes wishing to dispose of additional objects.

Do not attempt to use an object after calling Dispose.


IndirectObject Clone Function. Create a deep copy of the current IndirectObject. ABCpdf .NET PDF Library.

Clone Function

Create a deep copy of the current IndirectObject.

Syntax

[C#]
IndirectObject Clone()

[Visual Basic]
Function Clone() As IndirectObject

Params
Name | Description
return | The newly created copy.

Notes

This function creates a new object that is a copy of this instance.

The copy is a deep copy and all contained objects are copied as part of the clone process. The copy is not associated with any ObjectSoup.

Note that many methods require that an object be part of a soup. For this reason it is quite common to call doc.ObjectSoup.Add with the newly cloned object before calling methods on it. If at a later date the object needs to be deleted this can be done using ObjectSoup.Remove.


IndirectObject Equals Function. Test whether the two IndirectObjects are the same. ABCpdf .NET PDF Library.

Equals Function

Test whether the two IndirectObjects are the same.

Syntax

[C#]
bool Equals(IndirectObject other)
override bool Equals(object other)
bool Equals(IndirectObject other, ComparisonType type)

[Visual Basic]
Function Equals(other As IndirectObject) As Boolean
Overrides Function Equals(other As Object) As Boolean
Function Equals(other As IndirectObject, type As ComparisonType) As Boolean

Params
Name | Description
other | The object to test against.
return | Whether the objects are equal.

Notes

This method can be used to determine whether the specified object is equal to the current object.

Objects are considered equal if they refer to the same underlying object within the PDF document. So by default this method determines object equality rather than value equality.

To perform other types of equality test you can use the overload that accepts a ComparisonType. The comparison type specifies the type of data to compare.

The ComparisonType enumeration is a flags type enumeration so the different values can be combined together using bitwise operations. It may take the following values:

  • None (nothing)
  • Object (the underlying PDF object)
  • ID (the ID of the IndirectObject)
  • Atom (the value of the Atom)
  • Data (the data associated with the stream - if this is a stream)

Only if all the comparisons are true are the objects said to be equal.


IndirectObject GetHashCode Function. A hash code for the IndirectObject. ABCpdf .NET PDF Library.

GetHashCode Function

A hash code for the IndirectObject.

Syntax

[C#]
override int GetHashCode()
int GetHashCode(ComparisonType type)

[Visual Basic]
Overrides Function GetHashCode() As Integer
Function GetHashCode(type As ComparisonType) As Integer

Params
Name | Description
type | The elements to use in the hash code.
return | The returned hash code.

Notes

Derives a hash code suitable for use in hashing algorithms and data structures like hash tables.

The default hash code is derived from the underlying object within the PDF document. In some situations you may wish to derive a hash code from just some aspects of the IndirectObject. You can do this using the overload which takes a ComparisonType argument.

The ComparisonType enumeration is a flags type enumeration so the different values can be combined together using bitwise operations. It may take the following values:

  • None (nothing)
  • Object (the underlying PDF object)
  • ID (the ID of the IndirectObject)
  • Atom (the value of the Atom)
  • Data (the data associated with the stream - if this is a stream)

The hash code can be made up of a variety of parts of the indirect object combined together. The ID and the Atom hash codes are derived from the value of the ID and Atom respectively. The Data hash code is made from a sample of the compressed data contained in the stream. So two StreamObjects, compressed differently, will return different hash codes even if the uncompressed data is identical. The data sample is kept small - in the order of a few hundred bytes - to ensure a fast response even for very large streams.


IndirectObject Resolve Function. Resolves any indirect references and returns the Atom. ABCpdf .NET PDF Library.

Resolve Function

Resolves any indirect references and returns the Atom.

Syntax

[C#]
Atom Resolve(Atom atom)

[Visual Basic]
Function Resolve(atom As Atom) As Atom

Params
Name | Description
atom | The Atom to resolve.
return | The final Atom or null if no Atom could be found.

Notes

Atoms come in two basic types. Data atoms like NumAtoms and NameAtoms contain actual data. RefAtoms contain a reference to an IndirectObject which contains another Atom.

Quite often you will want to resolve any RefAtoms and just obtain the Atom within the final IndirectObject - you want the final item of data rather than a reference to a piece of data.

This function takes an Atom. If it is a RefAtom it finds the Atom to which it points. It keeps doing this until it finds and returns the final data Atom in the chain.

This method may return null if null is passed in, if a RefAtom cannot be resolved or if a circular dependency is detected.

The reason this function is a member of the IndirectObject is because resolving RefAtoms requires access to the ObjectSoup. The ObjectSoup is taken from the IndirectObject.


IndirectObject ResolveRef Function. Resolves any indirect references and returns the final RefAtom. ABCpdf .NET PDF Library.

ResolveRef Function

Resolves any indirect references and returns the final RefAtom.

Syntax

[C#]
RefAtom ResolveRef(Atom atom)

[Visual Basic]
Function ResolveRef(atom As Atom) As RefAtom

Params
Name | Description
atom | The Atom to resolve.
return | The final RefAtom or null if no valid RefAtom could be found.

Notes

Atoms come in two basic types. Data atoms like NumAtoms and NameAtoms contain actual data. RefAtoms contain a reference to an IndirectObject which contains another Atom.

Quite often you will want to resolve any RefAtoms and just obtain the RefAtom pointing to the final IndirectObject - you want a pointer to the final item of data rather than a reference somewhere up the chain.

This function takes an Atom. If it is a RefAtom it finds the IndirectObject to which it points. It keeps doing this until it finds the final IndirectObject in the chain. It returns the RefAtom which points to this IndirectObject.

This method may return null if null is passed in, if the supplied Atom is not a RefAtom, if a RefAtom cannot be resolved or if a circular dependency is detected.

The reason this function is a member of the IndirectObject is because resolving RefAtoms requires access to the ObjectSoup. The ObjectSoup is taken from the IndirectObject.


IndirectObject ResolveObj Function. Resolves any indirect references and returns the final IndirectObject. ABCpdf .NET PDF Library.

ResolveObj Function

Resolves any indirect references and returns the final IndirectObject.

Syntax

[C#]
IndirectObject ResolveObj(Atom atom)

[Visual Basic]
Function ResolveObj(atom As Atom) As IndirectObject

Params
Name | Description
atom | The Atom to resolve.
return | The final IndirectObject or null if no valid object could be found.

Notes

Atoms come in two basic types. Data atoms like NumAtoms and NameAtoms contain actual data. RefAtoms contain a reference to an IndirectObject which contains another Atom.

Quite often you will want to resolve any RefAtoms and just obtain the final IndirectObject - you want a pointer to the final item of data rather than a reference somewhere up the chain.

This function takes an Atom. If it is a RefAtom it finds the IndirectObject to which it points. It keeps doing this until it finds the final IndirectObject in the chain. It returns this IndirectObject.

This method may return null if null is passed in, if the supplied Atom is not a RefAtom, if a RefAtom cannot be resolved or if a circular dependency is detected.

The reason this function is a member of the IndirectObject is because resolving RefAtoms requires access to the ObjectSoup. The ObjectSoup is taken from the IndirectObject.


IndirectObject ToString Function. The string representation of the IndirectObject. ABCpdf .NET PDF Library.

ToString Function

The string representation of the IndirectObject.

Syntax

[C#]
override string ToString()

[Visual Basic]
Overrides Function ToString() As String

Params
Name | Description
return | The string representation of the object.

Notes

This function derives the content of the object as it will be inserted into the final PDF document.

Note that the the string value of an object may be large and it may contain unusual characters.


IndirectObject Transcode Function. Transcodes and reloads the IndirectObject. ABCpdf .NET PDF Library.

Transcode Function

Transcodes and reloads the IndirectObject

Syntax

[C#]
IndirectObject Transcode()

[Visual Basic]
Function Transcode() As IndirectObject

Params
Name | Description
return | An appropriate subclass of IndirectObject.

Notes

PDF objects are not hard typed. The only thing that distinguishes one from another are the named attributes which are applied to them. To enable an appropriate class of IndirectObject to be created ABCpdf has to examine the attributes on the base object and then create an appropriate subclass depending on those characteristics. This is known as transcoding.

Normally transcoding takes place automatically as objects are loaded or added. However sometimes changes occur which may result in core aspects of the object changing. These changes may require caches to be regenerated or even an entirely new object to be created - one which better represents the new structure of the object. This is particular the case for the FontObject class as it is heavily dependent on caching and often on other objects in the ObjectSoup.

The Transcode method re-interprets this object and if it is appropriate, it returns a newly created object of an appropriate subclass. If transcoding results in a new object being created it will displace the current object from the soup. As such you will need to discard the old object if a new one is returned.


IndirectObject ID Property. The ID of the PDF object. ABCpdf .NET PDF Library.

ID Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The ID of the PDF object.

Notes

The unique ID of the PDF object.


IndirectObject Gen Property. The Generation of the PDF object. ABCpdf .NET PDF Library.

Gen Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The Generation of the PDF object.

Notes

The Generation of the PDF object.


IndirectObject Atom Property. The Atom contained by the IndirectObject. ABCpdf .NET PDF Library.

Atom Property

Type | Default | Read Only | Description
[C#] Atom [Visual Basic] Atom | n/a | No | The Atom contained by the IndirectObject.

Notes

The Atom contained by the IndirectObject.

Atoms can only be contained by one object at a time. So - if you assign a new Atom to this property and the supplied Atom is currently contained by another object - a clone of the Atom will be inserted rather than a reference to the original.


IndirectObject Version Property. The minimum version of the PDF specification required to support this object. ABCpdf .NET PDF Library.

Version Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 10 | No | The minimum version of the PDF specification required to support this object.

Notes

The minimum version of the PDF specification required to support this object.

For example a version of 13 indicates that the features specified by the object require a PDF 1.3 capable browser. Adobe Acrobat 4 was the first browser to support PDF 1.3.


IndirectObject Revision Property. The revision of the document in which this object is stored. ABCpdf .NET PDF Library.

Revision Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | Yes | The revision of the document in which this object is stored.

Notes

The revision of the document in which this object is stored.

PDF documents can be incrementally updated so that changes are appended to the document rather than overwriting the original. This means that it is possible to revert back to a previous version of the document. This feature is mostly used for document signatures so that the act of signing the document does not invalidate previous signatures.

Objects from the oldest update will have a Revision of one and and larger values indicate more recent updates. A value of zero indicates that the object was not read from stream.


IndirectObject Alive Property. Whether the IndirectObject is currently alive. ABCpdf .NET PDF Library.

Alive Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | n/a | Yes | Whether the IndirectObject is currently alive.

Notes

Whether the IndirectObject is currently alive.

Objects contained within a PDF document are considered to be alive. Objects which have been created or cloned but have not yet been assigned to a PDF are not considered to be alive.


IndirectObject Doc Property. The Doc containing this IndirectObject. ABCpdf .NET PDF Library.

Doc Property

Type | Default | Read Only | Description
[C#] Doc [Visual Basic] Doc | n/a | Yes | The Doc containing this IndirectObject.

Notes

The Doc containing this IndirectObject.

Note that although IndirectObjects are normally held inside a containing Doc object it is possible to detach them from the container. If this is the case the value of the Doc property will be null.


IndirectObject Soup Property. The soup containing this IndirectObject. ABCpdf .NET PDF Library.

Soup Property

Type | Default | Read Only | Description
[C#] ObjectSoup [Visual Basic] ObjectSoup | n/a | Yes | The soup containing this IndirectObject.

Notes

The ObjectSoup containing this IndirectObject.

Note that although IndirectObjects are normally held inside a containing soup object it is possible to detach them from the container. If this is the case the value of the soup property will be null.


IndirectObject AdbeExtLevel Property. The minimum extension level of Adobe Supplement to the PDF specification required to support this object. ABCpdf .NET PDF Library.

AdbeExtLevel Property

Type Default Read Only Description
[C#]
int[]

[Visual Basic]
Integer() 		null No The minimum extension level of Adobe Supplement to the PDF specification required to support this object.

Notes

The minimum extension level of Adobe Supplement to the PDF specification required to support this object.

The value must be null or contain two elements. If it is null, the object requires no Adobe extension (for getting), or the extension level is removed (for setting). The first element is the base version; the second element is the extension level.

For example, a base version of 7 and an extension level of 3 indicate that the features specified by the object require a PDF consumer supporting base version 1.7 and extension level 3. Adobe Reader 9.1 was the first browser to support it.


ObjectSoup Class

A non-traditional collection of Indirect Objects making up the content of a PDF.

This collection has some of the characteristics of an Array and some of a Dictionary. Objects are referred to by index - starting at zero - like an Array. However they do not move within the list because they are identified by index - like a Dictionary with numeric keys.

We call this type of hybrid object a Soup. We assign it traditional interfaces to make it easier to use.

System.Object
   WebSupergoo.ABCpdf12.Objects.ObjectSoup

Implements: IList<IndirectObject>, ICollection<IndirectObject>, IEnumerable<IndirectObject>, IList, ICollection, IEnumerable, IDisposable

Method | Description
Dispose | Dispose of the object.
CopyTo | Copies the objects in the Soup to an Array.
Add | Adds an object to the Soup.
Clear | Removes all objects from the Soup.
Contains | Determines whether the Soup contains a specific object.
IndexOf | Determines the index of a specific object.
Throws Exceptions Insert | Inserts an object into the Soup at the specified position.
Remove | Removes an object from the Soup.
Throws Exceptions RemoveAt | Removes an object at a specified position from the Soup.
GetEnumerator | Gets an enumerator for the Soup.

Property | Description
Count | The number of items in the Soup.
Throws Exceptions Item | Gets or sets the object at the specified index.
Catalog | The Catalog for the document.
Convert | A Converter for the document.
Trailer | The Trailer or XRef for the document.
Revisions | The number of incremental updates.


ObjectSoup Dispose Function. Dispose of the object. ABCpdf .NET PDF Library.

Dispose Function

Dispose of the object.

Syntax

[C#]
void Dispose()
protected void Dispose(bool disposing)

[Visual Basic]
Sub Dispose()
Protected Sub Dispose(disposing As Boolean)

Params
Name | Description
none |

Notes

You can call this function to explicitly dispose of an object and reduce the garbage collection overhead.

This method follows the standard design pattern for objects implementing the IDisposable interface. The protected Dispose method can be overridden for sub-classes wishing to dispose of additional objects.

Do not attempt to use an object after calling Dispose.


ObjectSoup CopyTo Function. Copies the objects in the Soup to an Array. ABCpdf .NET PDF Library.

CopyTo Function

Copies the objects in the Soup to an Array.

Syntax

[C#]
void CopyTo(IndirectObject[] array, int index)

[Visual Basic]
Sub CopyTo(array As IndirectObject(), index As Integer)

Params
Name | Description
array | The array that is the destination for the elements.
index | The zero-based index in array at which copying begins.

Notes

Copies the elements of the Soup to an array starting at a particular array index.

The array must be one-dimensional and have zero-based indexing.


ObjectSoup Add Function. Adds an object to the Soup. ABCpdf .NET PDF Library.

Add Function

Adds an object to the Soup.

Syntax

[C#]
int Add(IndirectObject value)

[Visual Basic]
Function Add(value As IndirectObject) As Integer

Params
Name | Description
value | The IndirectObject to be added.
return | The position in which the new element was inserted.

Notes

This method adds an IndirectObject to the Soup.

An IndirectObject can exist in only one ObjectSoup at a time. If the object supplied is already contained in another ObjectSoup then a Clone of the object is inserted.

When an IndirectObject is inserted the ID is updated to reflect the position of the object within the Soup.


ObjectSoup Clear Function. Removes all objects from the Soup. ABCpdf .NET PDF Library.

Clear Function

Removes all objects from the Soup.

Syntax

[C#]
void Clear()

[Visual Basic]
Sub Clear()

Params
Name | Description
none |

Notes

Removes all IndirectObjects from the Soup.

Only the Null object at array index zero is preserved.


ObjectSoup Contains Function. Determines whether the Soup contains a specific object. ABCpdf .NET PDF Library.

Contains Function

Determines whether the Soup contains a specific object.

Syntax

[C#]
bool Contains(IndirectObject value)

[Visual Basic]
Function Contains(value As IndirectObject) As Boolean

Params
Name | Description
value | The object to locate.
return | True if the object is found, otherwise false.

Notes

Determines whether the Soup contains a specific IndirectObject.


ObjectSoup IndexOf Function. Determines the index of a specific object. ABCpdf .NET PDF Library.

IndexOf Function

Determines the index of a specific object.

Syntax

[C#]
int IndexOf(IndirectObject value)

[Visual Basic]
Function IndexOf(value As IndirectObject) As Integer

Params
Name | Description
value | The object to locate in the Soup.
return | If found, the index of value, otherwise -1.

Notes

Determines the index of a specific IndirectObject in the Soup.


ObjectSoup Insert Function. Inserts an object into the Soup at the specified position. ABCpdf .NET PDF Library.

Insert Function

Inserts an object into the Soup at the specified position.

Syntax

[C#]
void Insert(int index, IndirectObject value)

[Visual Basic]
Sub Insert(index As Integer, value As IndirectObject)

Throws Exceptions may throw NotSupportedException()

Params
Name | Description
index | The zero-based index at which value should be inserted.
return | The Object to insert into the Soup.

Notes

Objects within a collection refer to each other by index. This means that once an object is inserted into the Soup it must stay at the same index. If it moves then references may be broken.

Insertion at a particular position might require other objects to be moved. For this reason this method always throws a NotSupportedException.


ObjectSoup Remove Function. Removes an object from the Soup. ABCpdf .NET PDF Library.

Remove Function

Removes an object from the Soup.

Syntax

[C#]
bool Remove(IndirectObject value)

[Visual Basic]
Function Remove(value As IndirectObject) As Boolean

Params
Name | Description
value | The IndirectObject to be removed.
return | True if the IndirectObject is removed, otherwise false.

Notes

When an object is removed it leaves a gap in the Soup. Other objects do not move to fill the gap.

RefAtoms pointing to the object which was removed are not updated. This means you can remove one object and replace it with a substitute. Other IndirectObjects in the Soup will then refer to the new object rather than the old one.

However it also means that you should be careful about removing an object and not replacing it. Because the slot is free it may be re-used and any references which exist may then point to a new - inappropriate - object.


ObjectSoup RemoveAt Function. Removes an object at a specified position from the Soup. ABCpdf .NET PDF Library.

RemoveAt Function

Removes an object at a specified position from the Soup.

Syntax

[C#]
void RemoveAt(int index)

[Visual Basic]
Sub RemoveAt(index As Integer)

Throws Exceptions may throw ArgumentOutOfRangeException()

Params
Name | Description
index | The zero-based index of the item to remove.

Notes

If the index is not valid then an ArgumentOutOfRangeException will be thrown.

When an object is removed it leaves a gap in the Soup. Other objects do not move to fill the gap.

RefAtoms pointing to the object which was removed are not updated. This means you can remove one object and replace it with a substitute. Other IndirectObjects in the Soup will then refer to the new object rather than the old one.

However it also means that you should be careful about removing an object and not replacing it. Because the slot is free it may be re-used and any references which exist may then point to a new - inappropriate - object.


ObjectSoup GetEnumerator Function. Gets an enumerator for the Soup. ABCpdf .NET PDF Library.

GetEnumerator Function

Gets an enumerator for the Soup.

Syntax

[C#]
IEnumerator<IndirectObject> GetEnumerator()

[Visual Basic]
Function GetEnumerator() As IEnumerator(Of IndirectObject)

Params
Name | Description
return | The enumerator for the collection.

Notes

Gets an IndirectObject enumerator for the Soup.


ObjectSoup Count Property. The number of items in the Soup. ABCpdf .NET PDF Library.

Count Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The number of items in the Soup.

Notes

The number of items in the Soup.

As objects are added to the collection the Count will increase to accomodate them.

The collection may contain null values as well as instantiated IndirectObjects.


ObjectSoup Item Property. Gets or sets the object at the specified index. ABCpdf .NET PDF Library.

Item Property

Type | Default | Read Only | Description
[C#] IndirectObject this[int index] [Visual Basic] Default Property Item(index As Integer) As IndirectObject | n/a | No | Gets or sets the object at the specified index.

Throws Exceptions may throw ArgumentOutOfRangeException()

Notes

Gets or sets the IndirectObject at the specified index. In C# this property is the indexer for the class.

An IndirectObject can exist in only one ObjectSoup at a time. If the object supplied is already contained in another ObjectSoup then a Clone of the object is inserted.

When an IndirectObject is inserted the ID is updated to reflect the position of the object within the Soup.


ObjectSoup Catalog Property. The Catalog for the document. ABCpdf .NET PDF Library.

Catalog Property

Type | Default | Read Only | Description
[C#] Catalog [Visual Basic] Catalog | n/a | Yes | The Catalog for the document.

Notes

The Catalog for the document.

The Catalog is the root of the whole PDF document. It contains information on the root Pages object and the Outline object.


ObjectSoup Convert Property. A Converter for the document. ABCpdf .NET PDF Library.

Convert Property

Type | Default | Read Only | Description
[C#] Converter [Visual Basic] Converter | n/a | Yes | A Converter for the document.

Notes

A Converter for the document.

The Converter can be used for the resolution and extraction of atomic data held within the document.

Because the Converter has direct access to the raw data it can be significantly faster than resolving Atoms directly. This is especially the case for accessing collections such as arrays or dictionaries of data.

It is very simple to use. For example to get all the character widths from a font you might use code of the following form.

[C#]

Atom atom = Atom.GetItem(font.Atom, "Widths");
double[] widths = doc.ObjectSoup.Convert.ToDoubleArray(atom, 1000);

[Visual Basic]
Dim atom As Atom = Atom.GetItem(font.Atom, "Widths")
Dim widths As Double() = doc.ObjectSoup.Convert.ToDoubleArray(atom, 1000)


ObjectSoup Trailer Property. The Trailer or XRef for the document. ABCpdf .NET PDF Library.

Trailer Property

Type | Default | Read Only | Description
[C#] StreamObject [Visual Basic] StreamObject | n/a | Yes | The Trailer or XRef for the document.

Notes

The Trailer or XRef StreamObject for the document.

In PDF 1.4 documents have trailer dictionary. In PDF 1.5 documents have XRef streams. Internally ABCpdf only uses XRef streams but - when writing PDF 1.4 documents - it converts the XRef to a standard trailer before output.


ObjectSoup Revisions Property. The number of incremental updates. ABCpdf .NET PDF Library.

Revisions Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The number of incremental updates.

Notes

The number of incremental updates.

No object in the collection will have an IndirectObject.Revision higher than this.

However it is possible, though unusual, for some revisions to have no objects.


ObjectSoupSubset Class

A set of IndirectObjects from an ObjectSoup.

This may be used for selecting related objects and copying them to a new soup while maintaining the relationships between the items in the selection.

System.Object
   WebSupergoo.ABCpdf12.Objects.ObjectSoupSubset

Method | Description
ObjectSoupSubset | Construct an ObjectSoupSubset.
CopyTo | Copy the objects in this subset to a new soup while preserving the relationships between the items in the selection.
Throws Exceptions AddFamily | Add a parent object along with all objects it refers to.
Throws Exceptions AddOnlyOne | Add just this object ignoring any objects it may refer to.

Property | Description
Objects | The collection of IndirectObjects currently contained in the subset.
RemapIDs | Gets the dictionary used to map object IDs from the source soup to new object IDs in the final soup.
RemapTypes | A dictionary used to redirect all objects of a specific type to a specific object ID.


ObjectSoupSubset ObjectSoupSubset Function. Construct an ObjectSoupSubset. ABCpdf .NET PDF Library.

ObjectSoupSubset Constructor

Construct an ObjectSoupSubset.

Syntax

[C#]
ObjectSoupSubset(ObjectSoup soup)

[Visual Basic]
Sub New(soup As ObjectSoup)

Params
Name | Description
soup | The soup from which objects will be selected.

Notes

Create an ObjectSoupSubset.

An ObjectSoupSubset is specific to a particular ObjectSoup and may only contain IndirectObjects from that soup.

For this reason you should specify the soup in question at the point of construction. If later you attempt to add objects from a different soup then an exception will be raised.


ObjectSoupSubset CopyTo Function. Copy the objects in this subset to a new soup while preserving the relationships between the items in the selection. ABCpdf .NET PDF Library.

CopyTo Function

Copy the objects in this subset to a new soup while preserving the relationships between the items in the selection.

Syntax

[C#]
void CopyTo(ObjectSoup soup)

[Visual Basic]
Sub CopyTo(soup As ObjectSoup)

Params
Name | Description
soup | The destination soup.

Notes

Copy the objects in this subset to a new soup while preserving the relationships between the items in the selection.

Each IndirectObject in the selection has a unique ID. However the destination soup may already contain items with this ID. For this reason the process of copying the objects requires a remapping of old IDs to new ones in the destination soup.

Some remap entries may already have been created during addition as the entries in the RemapTypes property get applied. However most will be created at the point that the CopyTo method is called. The remap table is accessible via the RemapIDs property.


ObjectSoupSubset AddFamily Function. Add a parent object along with all objects it refers to. ABCpdf .NET PDF Library.

AddFamily Function

Add a parent object along with all objects it refers to.

Syntax

[C#]
int AddFamily(IndirectObject parent)
int AddFamily(DictAtom dict)

[Visual Basic]
Function AddFamily(parent As IndirectObject) As Integer
Function AddFamily(dict As DictAtom) As Integer

Throws Exceptions may throw Exception()

Params
Name | Description
parent | The IndirectObject to be added.
dict | A dictionary atom to be added.
return | The number of objects that were added.

Notes

Add a parent object along with all objects it refers to.

If a dictionary is specified there is no parent. In this situation only the objects referred to in the dictionary will be added.

If the parent or dictionary is not part of the soup specified in the ObjectSoupSubset constructor then an exception will be raised.


ObjectSoupSubset AddOnlyOne Function. Add just this object ignoring any objects it may refer to. ABCpdf .NET PDF Library.

AddOnlyOne Function

Add just this object ignoring any objects it may refer to.

Syntax

[C#]
bool AddOnlyOne(IndirectObject io)

[Visual Basic]
Function AddOnlyOne(io As IndirectObject) As Boolean

Throws Exceptions may throw Exception()

Params
Name | Description
io | The IndirectObject to be added.
return | True if the item was added.

Notes

Add a parent object ignoring any objects it may refer to.

If the item was added this function returns true. If the item was not added because the subset already contained it or because the RemapTypes specified a different remapping then the function returns false.

If the specified object is not part of the soup specified in the ObjectSoupSubset constructor then an exception will be raised.


ObjectSoupSubset Objects Property. The collection of IndirectObjects currently contained in the subset. ABCpdf .NET PDF Library.

Objects Property

Type | Default | Read Only | Description
[C#] ICollection<IndirectObject> [Visual Basic] ICollection<IndirectObject> | n/a | Yes | The collection of IndirectObjects currently contained in the subset.

Notes

Gets the collection of IndirectObjects currently contained in the subset.


ObjectSoupSubset RemapIDs Property. Gets the dictionary used to map object IDs from the source soup to new object IDs in the final soup. ABCpdf .NET PDF Library.

RemapIDs Property

Type | Default | Read Only | Description
[C#] IDictionary<int, int> [Visual Basic] IDictionary<int, int> | n/a | Yes | Gets the dictionary used to map object IDs from the source soup to new object IDs in the final soup.

Notes

Gets the dictionary used to map object IDs from the source soup to new object IDs in the final soup.

Some mappings may be populated via the RemapTypes as IndirectObjects are added. Most will be populated at the point that the CopyTo method is called.


ObjectSoupSubset RemapTypes Property. A dictionary used to redirect all objects of a specific type to a specific object ID. ABCpdf .NET PDF Library.

RemapTypes Property

Type | Default | Read Only | Description
[C#] IDictionary<string, int> [Visual Basic] IDictionary<string, int> | n/a | Yes | A dictionary used to redirect all objects of a specific type to a specific object ID.

Notes

A dictionary used to redirect all objects of a specific type to a specific object ID.

For example a stamp annotation is an object that describes a rubber stamp image that floats over a page. This object will contain links to other objects which will describe features like the appearance of the stamp. However it also contains a link to the page on which it is located.

Suppose you want to copy this annotation to another document. When you call AddFamily with this annotation you want to include related items like the annotation appearance but you do not want to include the page on which it is located. In fact you actually want links to this page in the source document to be redirected to a different page in the final destination document.

By specifying a mapping from the "Page" object type to the ID of a page in the final destination you both stop looking for linked objects at the point at which a page is discovered and also allow references to the source page to be linked to the destination page at the point that CopyTo is called.

To be precise, each time an IndirectObject is encountered it is checked for a "Type" entry. If this entry matches an item in the RemapTypes dictionary then the object is not added and no items to which it referrers are added. Instead an item is added to the RemapIDs property specifying a mapping between the ID of the object in question and the ID specified in the RemapTypes entry.


Objects Converter

Converter Class

A class for converting Atoms to different types while resolving any references.

System.Object
   WebSupergoo.ABCpdf12.Objects.Converter

Method | Description
Converter | Create an Atom converter for a particular ObjectSoup.
ToBool | Attempts to get a boolean from the specified entry in a DictAtom or ArrayAtom resolving any references as necessary.
ToInt32 | Attempts to get an int from the specified entry in a DictAtom or ArrayAtom resolving any references as necessary.
ToDouble | Attempts to get a double from the specified entry in a DictAtom or ArrayAtom resolving any references as necessary.
ToString | Attempts to get a string from the specified entry in a DictAtom or ArrayAtom resolving any references as necessary.
ToName | Attempts to get a name from the specified entry in a DictAtom or ArrayAtom resolving any references as necessary.
ToIndirectObject | Attempts to get an IndirectObject from the specified entry in a DictAtom or ArrayAtom resolving any references as necessary.
ToInt32Array | Attempts to convert an ArrayAtom into an array of ints, resolving any references as necessary.
ToDoubleArray | Attempts to convert an ArrayAtom into an array of doubles, resolving any references as necessary.
ToStringArray | Attempts to convert an ArrayAtom into an array of strings, resolving any references as necessary.
ToNameArray | Attempts to convert an ArrayAtom into an array of names, resolving any references as necessary.
ToInt32Dictionary | Attempts to convert a DictAtom into a Dictionary of ints, resolving any references as necessary.
ToDoubleDictionary | Attempts to convert a DictAtom into a Dictionary of doubles, resolving any references as necessary.
ToStringDictionary | Attempts to convert a DictAtom into a Dictionary of strings, resolving any references as necessary.
ToNameDictionary | Attempts to convert a DictAtom into a Dictionary of names, resolving any references as necessary.

Property | Description
Soup | The ObjectSoup used by this converter.


Objects Converter Converter Function. Create an Atom converter for a particular ObjectSoup. ABCpdf .NET PDF Library.

Converter Function

Create an Atom converter for a particular ObjectSoup.

Syntax

[C#]
Converter(ObjectSoup soup)

[Visual Basic]
Converter(soup As ObjectSoup)

Params
Name | Description
soup | The soup to use.

Notes

Create an Atom converter for a particular ObjectSoup.


Objects Converter ToBool Function. Attempts to get a boolean from the specified entry in a DictAtom or ArrayAtom resolving any references as necessary. ABCpdf .NET PDF Library.

ToBool Function

Attempts to get a boolean from the specified entry in a DictAtom or ArrayAtom resolving any references as necessary.

Syntax

[C#]
virtual bool? ToBool(Atom atom, int index)
virtual bool? ToBool(Atom atom, string key)
virtual bool? ToBool(Atom atom)

[Visual Basic]
Overridable Function ToBool(atom As Atom, index As int) As Boolean?
Overridable Function ToBool(atom As Atom, key As string) As Boolean?
Overridable Function ToBool(atom As Atom) As Boolean?

Params
Name | Description
atom | The DictAtom or ArrayAtom from which to obtain the value.
index | The zero based index from which the value should be obtained.
key | The key identifying the entry to be obtained.
return | The value.

Notes

Attempts to get a boolean from the specified atom resolving any references as necessary.

If the simple overload is used then the atom provided must resolve to a value of the correct type. If not then the return value will be null.

If a key is provided then the atom must resolve to a DictAtom and the entry in the DictAtom must resolve to a value of the correct type. If this is not the case or the key is null, then the return value will be null.

If an index is provided then the atom must resolve to an ArrayAtom and the indexed entry in the ArrayAtom must resolve to a value of the correct type. If this is not the case or if the index is not available, then the return value will be null.


Objects Converter ToInt32 Function. Attempts to get an int from the specified entry in a DictAtom or ArrayAtom resolving any references as necessary. ABCpdf .NET PDF Library.

ToInt32 Function

Attempts to get an int from the specified entry in a DictAtom or ArrayAtom resolving any references as necessary.

Syntax

[C#]
virtual int? ToInt32(Atom atom, int index)
virtual int? ToInt32(Atom atom, string key)
virtual int? ToInt32(Atom atom)

[Visual Basic]
Overridable Function ToInt32(atom As Atom, index As int) As Integer?
Overridable Function ToInt32(atom As Atom, key As string) As Integer?
Overridable Function ToInt32(atom As Atom) As Integer?

Params
Name | Description
atom | The DictAtom or ArrayAtom from which to obtain the value.
index | The zero based index from which the value should be obtained.
key | The key identifying the entry to be obtained.
return | The value.

Notes

Attempts to get an int from the specified atom resolving any references as necessary.

If the simple overload is used then the atom provided must resolve to a value of the correct type. If not then the return value will be null.

If a key is provided then the atom must resolve to a DictAtom and the entry in the DictAtom must resolve to a value of the correct type. If this is not the case or the key is null, then the return value will be null.

If an index is provided then the atom must resolve to an ArrayAtom and the indexed entry in the ArrayAtom must resolve to a value of the correct type. If this is not the case or if the index is not available, then the return value will be null.


Objects Converter ToDouble Function. Attempts to get a double from the specified entry in a DictAtom or ArrayAtom resolving any references as necessary. ABCpdf .NET PDF Library.

ToDouble Function

Attempts to get a double from the specified entry in a DictAtom or ArrayAtom resolving any references as necessary.

Syntax

[C#]
virtual double? ToDouble(Atom atom, int index)
virtual double? ToDouble(Atom atom, string key)
virtual double? ToDouble(Atom atom)

[Visual Basic]
Overridable Function ToDouble(atom As Atom, index As int) As Double?
Overridable Function ToDouble(atom As Atom, key As string) As Double?
Overridable Function ToDouble(atom As Atom) As Double?

Params
Name | Description
atom | The DictAtom or ArrayAtom from which to obtain the value.
index | The zero based index from which the value should be obtained.
key | The key identifying the entry to be obtained.
return | The value.

Notes

Attempts to get a double from the specified atom resolving any references as necessary.

If the simple overload is used then the atom provided must resolve to a value of the correct type. If not then the return value will be null.

If a key is provided then the atom must resolve to a DictAtom and the entry in the DictAtom must resolve to a value of the correct type. If this is not the case or the key is null, then the return value will be null.

If an index is provided then the atom must resolve to an ArrayAtom and the indexed entry in the ArrayAtom must resolve to a value of the correct type. If this is not the case or if the index is not available, then the return value will be null.


Objects Converter ToString Function. Attempts to get a string from the specified entry in a DictAtom or ArrayAtom resolving any references as necessary. ABCpdf .NET PDF Library.

ToString Function

Attempts to get a string from the specified entry in a DictAtom or ArrayAtom resolving any references as necessary.

Syntax

[C#]
virtual string ToString(Atom atom, int index)
virtual string ToString(Atom atom, string key)
virtual string ToString(Atom atom)

[Visual Basic]
Overridable Function ToString(atom As Atom, index As int) As string
Overridable Function ToString(atom As Atom, key As string) As string
Overridable Function ToString(atom As Atom) As string

Params
Name | Description
atom | The DictAtom or ArrayAtom from which to obtain the value.
index | The zero based index from which the value should be obtained.
key | The key identifying the entry to be obtained.
return | The value.

Notes

Attempts to get a string from the specified atom resolving any references as necessary.

If the simple overload is used then the atom provided must resolve to a value of the correct type. If not then the return value will be null.

If a key is provided then the atom must resolve to a DictAtom and the entry in the DictAtom must resolve to a value of the correct type. If this is not the case or the key is null, then the return value will be null.

If an index is provided then the atom must resolve to an ArrayAtom and the indexed entry in the ArrayAtom must resolve to a value of the correct type. If this is not the case or if the index is not available, then the return value will be null.


Objects Converter ToName Function. Attempts to get a name from the specified entry in a DictAtom or ArrayAtom resolving any references as necessary. ABCpdf .NET PDF Library.

ToName Function

Attempts to get a name from the specified entry in a DictAtom or ArrayAtom resolving any references as necessary.

Syntax

[C#]
virtual string ToName(Atom atom, int index)
virtual string ToName(Atom atom, string key)
virtual string ToName(Atom atom)

[Visual Basic]
Overridable Function ToName(atom As Atom, index As int) As string
Overridable Function ToName(atom As Atom, key As string) As string
Overridable Function ToName(atom As Atom) As string

Params
Name | Description
atom | The DictAtom or ArrayAtom from which to obtain the value.
index | The zero based index from which the value should be obtained.
key | The key identifying the entry to be obtained.
return | The value.

Notes

Attempts to get a name from the specified atom resolving any references as necessary.

If the simple overload is used then the atom provided must resolve to a value of the correct type. If not then the return value will be null.

If a key is provided then the atom must resolve to a DictAtom and the entry in the DictAtom must resolve to a value of the correct type. If this is not the case or the key is null, then the return value will be null.

If an index is provided then the atom must resolve to an ArrayAtom and the indexed entry in the ArrayAtom must resolve to a value of the correct type. If this is not the case or if the index is not available, then the return value will be null.


Objects Converter ToIndirectObject Function. Attempts to get an IndirectObject from the specified entry in a DictAtom or ArrayAtom resolving any references as necessary. ABCpdf .NET PDF Library.

ToIndirectObject Function

Attempts to get an IndirectObject from the specified entry in a DictAtom or ArrayAtom resolving any references as necessary.

Syntax

[C#]
virtual IndirectObject ToIndirectObject(Atom atom, int index)
virtual IndirectObject ToIndirectObject(Atom atom, string key)
virtual IndirectObject ToIndirectObject(Atom atom)

[Visual Basic]
Overridable Function ToIndirectObject(atom As Atom, index As int) As IndirectObject
Overridable Function ToIndirectObject(atom As Atom, key As string) As IndirectObject
Overridable Function ToIndirectObject(atom As Atom) As IndirectObject

Params
Name | Description
atom | The DictAtom or ArrayAtom from which to obtain the value.
index | The zero based index from which the value should be obtained.
key | The key identifying the entry to be obtained.
return | The value.

Notes

Attempts to get an IndirectObjectfrom the specified atom resolving any references as necessary.

If the simple overload is used then the atom provided must resolve to a value of the correct type. If not then the return value will be null.

If a key is provided then the atom must resolve to a DictAtom and the entry in the DictAtom must resolve to a value of the correct type. If this is not the case or the key is null, then the return value will be null.

If an index is provided then the atom must resolve to an ArrayAtom and the indexed entry in the ArrayAtom must resolve to a value of the correct type. If this is not the case or if the index is not available, then the return value will be null.


Objects Converter ToInt32Array Function. Attempts to convert an ArrayAtom into an array of ints, resolving any references as necessary. ABCpdf .NET PDF Library.

ToInt32Array Function

Attempts to convert an ArrayAtom into an array of ints, resolving any references as necessary.

Syntax

[C#]
virtual int[] ToInt32Array(Atom atom, int def)

[Visual Basic]
Overridable Function ToInt32Array(atom As Atom, def As int) As Integer[]

Params
Name | Description
atom | The ArrayAtom from which to obtain the values.
def | A default value for any entries which could not be converted to the correct type.
return | The array.

Notes

Attempts to convert an ArrayAtom into an array of ints, resolving any references as necessary.

If the atom does not resolve to an ArrayAtom, then the return value will be null.


Objects Converter ToDoubleArray Function. Attempts to convert an ArrayAtom into an array of doubles, resolving any references as necessary. ABCpdf .NET PDF Library.

ToDoubleArray Function

Attempts to convert an ArrayAtom into an array of doubles, resolving any references as necessary.

Syntax

[C#]
virtual double[] ToDoubleArray(Atom atom, double def)

[Visual Basic]
Overridable Function ToDoubleArray(atom As Atom, def As double) As Double[]

Params
Name | Description
atom | The ArrayAtom from which to obtain the values.
def | A default value for any entries which could not be converted to the correct type.
return | The array.

Notes

Attempts to convert an ArrayAtom into an array of doubles, resolving any references as necessary.

If the atom does not resolve to an ArrayAtom, then the return value will be null.


Objects Converter ToStringArray Function. Attempts to convert an ArrayAtom into an array of strings, resolving any references as necessary. ABCpdf .NET PDF Library.

ToStringArray Function

Attempts to convert an ArrayAtom into an array of strings, resolving any references as necessary.

Syntax

[C#]
virtual string[] ToStringArray(Atom atom)

[Visual Basic]
Overridable Function ToStringArray(atom As Atom) As string[]

Params
Name | Description
atom | The ArrayAtom from which to obtain the values.
return | The array.

Notes

Attempts to convert an ArrayAtom into an array of strings, resolving any references as necessary.

If the atom does not resolve to an ArrayAtom, then the return value will be null.

Any entries which could not be coverted to the correct type will be null.


Objects Converter ToNameArray Function. Attempts to convert an ArrayAtom into an array of names, resolving any references as necessary. ABCpdf .NET PDF Library.

ToNameArray Function

Attempts to convert an ArrayAtom into an array of names, resolving any references as necessary.

Syntax

[C#]
virtual string[] ToNameArray(Atom atom)

[Visual Basic]
Overridable Function ToNameArray(atom As Atom) As string[]

Params
Name | Description
atom | The ArrayAtom from which to obtain the values.
return | The array.

Notes

Attempts to convert an ArrayAtom into an array of names, resolving any references as necessary.

If the atom does not resolve to an ArrayAtom, then the return value will be null.

Any entries which could not be coverted to the correct type will be null.


Objects Converter ToInt32Dictionary Function. Attempts to convert a DictAtom into a Dictionary of ints, resolving any references as necessary. ABCpdf .NET PDF Library.

ToInt32Dictionary Function

Attempts to convert a DictAtom into a Dictionary of ints, resolving any references as necessary.

Syntax

[C#]
virtual Dictionary<string, int> ToInt32Dictionary(Atom atom, int def)

[Visual Basic]
Overridable Function ToInt32Dictionary(atom As Atom, def As int) As Dictionary<string, Integer>

Params
Name | Description
atom | The DictAtom from which to obtain the values.
def | A default value for any entries which could not be converted to the correct type.
return | The dictionary.

Notes

Attempts to convert a DictAtom into a Dictionary of ints, resolving any references as necessary.

If the atom does not resolve to an DictAtom, then the return value will be null.


Objects Converter ToDoubleDictionary Function. Attempts to convert a DictAtom into a Dictionary of doubles, resolving any references as necessary. ABCpdf .NET PDF Library.

ToDoubleDictionary Function

Attempts to convert a DictAtom into a Dictionary of doubles, resolving any references as necessary.

Syntax

[C#]
virtual Dictionary<string, double> ToDoubleDictionary(Atom atom, double def)

[Visual Basic]
Overridable Function ToDoubleDictionary(atom As Atom, def As double) As Dictionary<string, Double>

Params
Name | Description
atom | The DictAtom from which to obtain the values.
def | A default value for any entries which could not be converted to the correct type.
return | The dictionary.

Notes

Attempts to convert a DictAtom into a Dictionary of doubles, resolving any references as necessary.

If the atom does not resolve to an DictAtom, then the return value will be null.


Objects Converter ToStringDictionary Function. Attempts to convert a DictAtom into a Dictionary of strings, resolving any references as necessary. ABCpdf .NET PDF Library.

ToStringDictionary Function

Attempts to convert a DictAtom into a Dictionary of strings, resolving any references as necessary.

Syntax

[C#]
virtual Dictionary<string, string> ToStringDictionary(Atom atom)

[Visual Basic]
Overridable Function ToStringDictionary(atom As Atom) As Dictionary<string, string>

Params
Name | Description
atom | The DictAtom from which to obtain the values.
return | The dictionary.

Notes

Attempts to convert a DictAtom into a Dictionary of strings, resolving any references as necessary.

If the atom does not resolve to an DictAtom, then the return value will be null.

Any entries which could not be coverted to the correct type will be null.


Objects Converter ToNameDictionary Function. Attempts to convert a DictAtom into a Dictionary of names, resolving any references as necessary. ABCpdf .NET PDF Library.

ToNameDictionary Function

Attempts to convert a DictAtom into a Dictionary of names, resolving any references as necessary.

Syntax

[C#]
virtual Dictionary<string, string> ToNameDictionary(Atom atom)

[Visual Basic]
Overridable Function ToNameDictionary(atom As Atom) As Dictionary<string, string>

Params
Name | Description
atom | The DictAtom from which to obtain the values.
return | The dictionary.

Notes

Attempts to convert a DictAtom into a Dictionary of names, resolving any references as necessary.

If the atom does not resolve to an DictAtom, then the return value will be null.

Any entries which could not be coverted to the correct type will be null.


Objects Converter Soup Property. The ObjectSoup used by this converter. ABCpdf .NET PDF Library.

Soup Property

Type | Default Value | Read Only | Description
[C#] ObjectSoup [Visual Basic] ObjectSoup | null | No | The ObjectSoup used by this converter.

Notes

The ObjectSoup used by this converter.


Annotation Class

An Annotation such as a text note or hyperlink.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.CircleAnnotation
         WebSupergoo.ABCpdf12.Objects.D3DAnnotation
         WebSupergoo.ABCpdf12.Objects.FileAttachmentAnnotation
         WebSupergoo.ABCpdf12.Objects.FreeTextAnnotation
         WebSupergoo.ABCpdf12.Objects.InkAnnotation
         WebSupergoo.ABCpdf12.Objects.LineAnnotation
         WebSupergoo.ABCpdf12.Objects.LinkAnnotation
         WebSupergoo.ABCpdf12.Objects.PolygonAnnotation
         WebSupergoo.ABCpdf12.Objects.PolylineAnnotation
         WebSupergoo.ABCpdf12.Objects.PopupAnnotation
         WebSupergoo.ABCpdf12.Objects.RichMediaAnnotation
         WebSupergoo.ABCpdf12.Objects.ScreenAnnotation
         WebSupergoo.ABCpdf12.Objects.SquareAnnotation
         WebSupergoo.ABCpdf12.Objects.StampAnnotation
         WebSupergoo.ABCpdf12.Objects.TextAnnotation
         WebSupergoo.ABCpdf12.Objects.TextMarkupAnnotation

Method | Description
Focus | Prepare document for drawing at the annotation location.
GetFieldOptions | The field options for any form field associated with this annotation.
Stamp | Stamp this annotation into the page.
UpdateAppearance | Update the Appearance Stream for this annotation.
 | inherited methods...

Property | Description
AnnotationElement | An AnnotationElement for this annotation.
Border | The border appearance.
Color | The Color of the annotation.
Contents | The visible text of the annotation.
FieldBackgroundColor | The background color of the field.
FieldBorderColor | The border color of the field.
FieldRotation | The rotation of the annotation in degrees counterclockwise to the page.
FieldType | The field type for any form field associated with this annotation.
FieldValue | The field value for any form field associated with this annotation.
Flags | The Annotation Flags entry.
FullName | The full name of any form field associated with this annotation.
GetAppearance | The name for the state for choice fields which have names. This value may be null if this is not a choice field.
NormalAppearance | Gets or sets the normal appearance for the annotation.
Page | The Page on which this annotation is located.
Throws Exceptions Rect | The rectangle which defines the position and area of the annotation on the page.
SetAppearance | The name for the state for choice fields which have names. This value may be null if this is not a choice field.
SubType | The sub-type of Annotation.
TextDirection | The default text direction.
 | inherited properties...


Annotation Focus Function. Prepare document for drawing at the annotation location. ABCpdf .NET PDF Library.

Focus Function

Prepare document for drawing at the annotation location

Syntax

[C#]
bool Focus()

[Visual Basic]
Function Focus() As Boolean

Params
Name | Description
return | True if the focus operation was successful.

Notes

Use this method to focus on the Annotation.

This prepares the document for drawing at the Annotation location.

If the operation was successful then the function returns true. If not then it will return false.

The Doc.Page, Doc.Rect and Doc.Transform may all be changed as a result of calling this method.


Annotation GetFieldOptions Function. The field options for any form field associated with this annotation. ABCpdf .NET PDF Library.

GetFieldOptions Function

The field options for any form field associated with this annotation.

Syntax

[C#]
string[] GetFieldOptions()

[Visual Basic]
Function GetFieldOptions() As String()

Params
Name | Description
return | The list of field options.

Notes

This function gets the field options for any form field associated with this annotation.

Typically you assign a value using the FieldValue. Some fields such as Text fields will accept any value. Others such as Checkboxes and List Boxes accept only a limited range of options. You can obtain these options using this method.

The unmarked state of a Checkbox or Radio Button is always "Off". The marked state varies and is available via this function. This function will always return a one item arrray for this type of field.

The set of options for a Combo Box or List Box is available via this property. This function will return as many items as there are possible values.

Pushbuttons, Signatures and Text fields do not have options.


Annotation Stamp Function. Stamp this annotation into the page. ABCpdf .NET PDF Library.

Stamp Function

Stamp this annotation into the page.

Syntax

[C#]
void Stamp()

[Visual Basic]
Sub Stamp()

Params
Name | Description
none |

Notes

Use this method to permanently stamp an annotation into the page on which it is located.

When this method is called the annotation appearance is stamped permanently into the document and the annotation is deleted.

The annotation becomes a new layer on the page (see Doc.LayerCount) so you may wish to call Doc.Flatten on the affected page.


Annotation UpdateAppearance Function. Update the Appearance Stream for this annotation. ABCpdf .NET PDF Library.

UpdateAppearance Function

Update the Appearance Stream for this annotation.

Syntax

[C#]
void UpdateAppearance()

[Visual Basic]
Sub UpdateAppearance()

Params
Name | Description
none | n/a.

Notes

Update the Appearance Stream for this Annotation.

Annotations often have appearance streams which define how they appear on the page when displayed or printed. ABCpdf understands a variety of annotation types and can create an appropriate stream when requested.

Calling this function will result in the appearance stream being updated or (if one does not already exist) created.

Line Endings. Annotations such as lines, polylines and free text callouts may have line endings such as arrows, circles or squares.

By default the size of the line ending is proportional to the width of the line. However ABCpdf allows control over the line end size using an annotation ABCp_LEScaling entry. This is a second class custom tag as defined in the PDF Name Registry.

During the generation of the appearance stream this tag can be used to control the relative size of the line endings. It is legal for the tag to be left in the PDF so that ABCpdf will continue to use it for any further updates to the appearance stream. Alternatively it can be deleted and as long as the appearance stream is not updated, the line endings will remain the same size.

The LE entry is used to define line endings. The ABCp_LEScaling entry parallels the LE entry defining the relative sizes for the endings defined in the LE entry.

A Line annotation has an LE consisting of an array of two entries representing the type of finial to be used at the start and end of the line. In this case the ABCp_LEScaling is an array of two numbers defining the relative sizes of the start and end finials.

A Free text annotation functioning as a callout, has an LE entry consisting of a name representing the final to be used at the end of the line. In this case the ABCp_LEScaling is a number defining the relative sizes of the finial.

Positive numbers represent a scale factor - so two would indicate an ending twice the normal size. Negative numbers can be used to indicate absolute values so in this context negative two would represent an ending with a size of two points. The default value if you provide a null entry is one - no scaling.

You can set these values using simple ABCpdf calls such as doc.SetInfo(annot.ID, "/ABCp_LEScaling", "[-2 0.5]") and doc.SetInfo(annot.ID, "/ABCp_LEScaling:Num", "-2").

Ink Annotations. An ink annnotation represents something one might draw with a pen - a signature - a doodle - a scribble.

In PDF 1.7 points in the line are represented using an InkList entry. However it is left as 'implementation dependent' as to whether points in the InkList should be joined using straight lines or curves. ABCpdf uses straight lines.

In PDF 2.0 a new Path entry was introduced which allowed you to specify straight lines and curves. This should have improved matters but in fact it has made them worse. The InkList is still there because it is a required entry but the specification does not make clear whether the Path should be used in preference to the InkList or as well as it. The InkList allows multiple discontinuous lines but the Path allows only one so it is not clear what one should do in terms of a conflict. The specification states that the current graphics state should control path width and dash pattern but annotations do not have a graphics state. For these reasons ABCpdf does not currently use the Path entry.


Annotation AnnotationElement Property. An AnnotationElement for this annotation. ABCpdf .NET PDF Library.

AnnotationElement Property

Type | Default Value | Read Only | Description
[C#] AnnotationElement [Visual Basic] AnnotationElement | n/a | Yes | An AnnotationElement for this annotation.

Notes

An AnnotationElement for this annotation.

This can be used for modifying the properties of the annotation.


Annotation Border Property. The border appearance. ABCpdf .NET PDF Library.

Border Property

Type | Default Value | Read Only | Description
[C#] ArrayAtom [Visual Basic] ArrayAtom | n/a | No | The border appearance

Notes

The border determines the visible appearance of the border around the annotation.

The border is an ArrayAtom contaiining three or four elements. The first three elements describe the horizontal corner radius, the vertical corner radius and the border width. If the corners are zero then the border has rectangular rather than rounded corners. If the border width is zero then there is no border.

The last optional element is a dash array to be used in drawing dashed borders. This conforms to the standard dash array format which indicates alternatingly the length of lines and gaps. So [2 1] would indicate two on, one off, two on, one off... Longer arrays can be used for more complex dash patterns.

If this property is null then a solid rectangular border of width one will be drawn. This is equivalent to the following code.

[C#]

annot.Border = (ArrayAtom)Atom.FromString("[0 0 1");

[Visual Basic]
annot.Border = DirectCast(Atom.FromString("[0 0 1]"), ArrayAtom)

After changing this property you will need to call UpdateAppearance to realize the change.


Annotation Color Property. The Color of the annotation. ABCpdf .NET PDF Library.

Color Property

Type | Default Value | Read Only | Description
[C#] XColor [Visual Basic] XColor | n/a | Yes | The Color of the annotation.

Notes

The Color of the annotation. This color is used for the following purposes.

  • The background of the annotation’s icon when closed.
  • The title bar of the annotation’s pop-up window.
  • The border of a link annotation


Annotation Contents Property. The visible text of the annotation. ABCpdf .NET PDF Library.

Contents Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | n/a | Yes | The visible text of the annotation.

Notes

The visible text of the annotation.

If the annotation subtype does not display text then this field should contain an alternative description of the annotation contents.


Annotation FieldBackgroundColor Property. The background color of the field. ABCpdf .NET PDF Library.

FieldBackgroundColor Property

Type | Default Value | Read Only | Description
[C#] XColor [Visual Basic] XColor | n/a | No | The background color of the field.

Notes

This property is used to access or change the background color of a field.

This property is only valid if this annotation is associated with a form field.

If you assign a color to this property the color supplied must be grayscale, RGB or CMYK. A value of null indicates that the background is transparent.

When you set this property a clone of the XColor you assign is created to avoid one XColor being shared by multiple annotations.

After changing this property you will need to call UpdateAppearance to realize the change.


Annotation FieldBorderColor Property. The border color of the field. ABCpdf .NET PDF Library.

FieldBorderColor Property

Type | Default Value | Read Only | Description
[C#] XColor [Visual Basic] XColor | n/a | No | The border color of the field.

Notes

This property is used to access or change the border color of a field.

This property is only valid if this annotation is associated with a form field.

If you assign a color to this property the color supplied must be grayscale, RGB or CMYK. A value of null indicates that the border is transparent.

When you set this property a clone of the XColor you assign is created to avoid one XColor being shared by multiple annotations.

After changing this property you will need to call UpdateAppearance to realize the change.


Annotation FieldRotation Property. The rotation of the annotation in degrees counterclockwise to the page. ABCpdf .NET PDF Library.

FieldRotation Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | No | The rotation of the annotation in degrees counterclockwise to the page.

Notes

This property is used to access or change the rotation of the annotation in degrees counterclockwise to the page. This rotation must be a multiple of 90.

This property is only valid if this annotation is associated with a form field.

If you assign a color to this property the color supplied must be grayscale, RGB or CMYK. A value of null indicates that the border is transparent.

When you set this property a clone of the XColor you assign is created to avoid one XColor being shared by multiple annotations.

After changing this property you will need to call UpdateAppearance to realize the change.


Annotation FieldType Property. The field type for any form field associated with this annotation. ABCpdf .NET PDF Library.

FieldType Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | n/a | Yes | The field type for any form field associated with this annotation.

Notes

The field type for any form field associated with this annotation.

The following field types are available:

  • "Pushbutton"
  • "Checkbox"
  • "Radio"
  • "Text"
  • "List"
  • "Combo"
  • "Signature"
  • "Unknown"

More details of these field types can be found in the Section 8.6.3 of the Adobe PDF Specification.


Annotation FieldValue Property. The field value for any form field associated with this annotation. ABCpdf .NET PDF Library.

FieldValue Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | n/a | No | The field value for any form field associated with this annotation.

Notes

The field value for any form field associated with this annotation.

You may wish to assign or query the form field value using this property.

Checkboxes and Radio Buttons have a value which is either "Off" or the on-state of the control as accessible via GetFieldOptions.

Text fields have a free-text value.

Combo Boxes and List Boxes have values restricted to a set of selections as accessible via GetFieldOptions.

Pushbuttons and Signatures do not have a value.


Annotation Flags Property. The Annotation Flags entry. ABCpdf .NET PDF Library.

Flags Property

Type | Default Value | Read Only | Description
[C#] AnnotationFlags [Visual Basic] AnnotationFlags | n/a | No | The Annotation Flags entry

Notes

This property is used to access or change the flags for the annotation.

The AnnotationFlags type is a flags type enumeration so the different values can be combined together using bitwise operations. It may take the following values:

  • Invisible (Do not display the annotation if it does not belong to one of the standard types and no special handler is available)
  • Hidden (Do not display or print the annotation or allow it to interact with the user, regardless of its type or whether an annotation handler is available)
  • Print (Print the annotation when the page is printed. Typically used to hide pushbuttons when a page is printed)
  • NoZoom (Do not scale the annotation as the zoom level of the page is changed. The top left of the annotation on the page remains fixed regardless of the page zoom level)
  • NoRotate (Do not rotate the annotation as the page is rotated. The top left of the annotation on the page remains fixed regardless of the page rotation)
  • NoView (Do not show the annotation on the screen or allow it to interact with the user. The annotation may be printed if the Print flag is set)
  • ReadOnly (Do not allow the annotation to interact with the user)
  • Locked (Do not allow the annotation to be moved, deleted or otherwise modified. However the content may be changed even if this property is set)
  • ToggleNoView (Invert the interpretation of the NoView flag for certain events)
  • LockedContents (Do not allow the contents of the annotation to be modified. Other annotation properties such as size and location may be modified)

For code showing how to check, set or clear flags see the FontObject.Flags property.


Annotation FullName Property. The full name of any form field associated with this annotation. ABCpdf .NET PDF Library.

FullName Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | n/a | Yes | The full name of any form field associated with this annotation.

Notes

The full name of any form field associated with this annotation.

Note that the PDF specification does not require that full names are unique.


Annotation GetAppearance Property. The name for the state for choice fields which have names. This value may be null if this is not a choice field. ABCpdf .NET PDF Library.

GetAppearance Function

Get a particular appearance from the annotation.

Syntax

[C#]
virtual FormXObject GetAppearance(string state, string name)

[Visual Basic]
Overridable Function GetAppearance(state As string, name As string) As FormXObject

Params
Name | Description
state | The state may be N, D, or R. These values represent the normal, down and rollover states respectively.
name | The name for the state for choice fields which have names. This value may be null if this is not a choice field.
return | The appearance.

Notes

Get a particular appearance from the annotation.


Annotation NormalAppearance Property. Gets or sets the normal appearance for the annotation. ABCpdf .NET PDF Library.

NormalAppearance Property

Type | Default Value | Read Only | Description
[C#] FormXObject [Visual Basic] FormXObject | null | No | Gets or sets the normal appearance for the annotation.

Notes

Gets or sets the normal appearance for the annotation.


Annotation Page Property. The Page on which this annotation is located. ABCpdf .NET PDF Library.

Page Property

Type | Default | Read Only | Description
[C#] Page [Visual Basic] Page | n/a | No | The Page on which this annotation is located.

Notes

The Page on which this annotation is located.


Annotation Rect Property. The rectangle which defines the position and area of the annotation on the page. ABCpdf .NET PDF Library.

Rect Property

Type | Default | Read Only | Description
[C#] XRect [Visual Basic] XRect | n/a | No | The rectangle which defines the position and area of the annotation on the page.

Throws Exceptions may throw NullReferenceException()

Notes

The XRect which defines the position and area of the annotation on the page.

This rectangle is encoded in PDF coordinates rather than any abstracted coordinate space.

This property must always have a value. Attempting to assign a null value to this property will result in a NullReferenceException being thrown.


Annotation SetAppearance Property. The name for the state for choice fields which have names. This value may be null if this is not a choice field. ABCpdf .NET PDF Library.

SetAppearance Function

Set a particular appearance for the annotation.

Syntax

[C#]
virtual void SetAppearance(string state, string name, FormXObject form)

[Visual Basic]
Overridable Function SetAppearance(state As string, name As string, form As FormXObject) As void

Params
Name | Description
state | The state may be N, D, or R. These values represent the normal, down and rollover states respectively.
name | The name for the state for choice fields which have names. This value may be null if this is not a choice field.
form | The appearance. Pass null to remove the appearance.
return | The appearance.

Notes

Set a particular appearance for the annotation.


Annotation SubType Property. The sub-type of Annotation. ABCpdf .NET PDF Library.

SubType Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | n/a | Yes | The sub-type of Annotation.

Notes

The sub-type of annotation.

This may be 'Text', 'Link', 'Widget' or any of the many supported types listed in Section 8.4.5 of the Adobe PDF Specification.


Annotation TextDirection Property. The default text direction. ABCpdf .NET PDF Library.

TextDirection Property

Type | Default Value | Read Only | Description
[C#] XTextStyle.DirectionType [Visual Basic] XTextStyle.DirectionType | DirectionType.Default | No | The default text direction

Notes

This property specifies the default primary text direction. For the details of each value, please refer to XTextStyle.Direction.

The value of this property is not saved to the PDF file and it exists purely to determine the way that appearances are generated for annotations containing text.

If you are using Hebrew or Arabic you may wish to set this value to left-to-right to provide support to bi-directional text and contextual ligatures.

In general you will not want to set the primary direction to right-to-left as this is something that Acrobat does not support and may result in field changes when, in Acrobat, you click into a field to edit the text.


Bookmark Class

A bookmark or outline item.

PDF documents typically provide a list of bookmarks for easy navigation between pages. In Acrobat this navigation structure is available under the Bookmarks tab. The PDF specification refers to this structure as the document outline.

The document outline comprises of a hierarchy of bookmarks. The bookmark at the top of the hierarchy is available via the Doc.Bookmark property. Typically a bookmark triggers navigation to a particular page but in some cases it may trigger a different and more complex type of action.

Every bookmark holds a collection of all its child bookmarks. As with all collections you can use the Count property to determine the number of items contained and you can iterate through the collection using the standard methods appropriate to the language you are coding in.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Bookmark

Implements: IList<Bookmark>, ICollection<Bookmark>, IEnumerable<Bookmark>, IList, ICollection, IEnumerable

Method | Description
CopyTo | Copies the Bookmarks into an array.
Add | Adds a Bookmark to the end of the list.
Clear | Removes all Bookmarks from the list.
Contains | Determines whether the list contains a specific Bookmark.
IndexOf | Determines the index of a specific Bookmark.
Throws Exceptions Insert | Inserts a Bookmark into the list at the specified position.
Remove | Removes a Bookmark from the list.
RemoveAt | Remove the Bookmark at the specified location.
GetEnumerator | Gets an enumerator for the Collection.
Throws Exceptions Adopt | Adopt a specified Bookmark.
Refresh | Refresh and reload the document Bookmarks.
 | inherited methods...

Property | Description
Count | The number of Bookmarks in the collection.
Throws Exceptions Item | Get or set the Bookmark at the specified index.
Open | Whether the bookmark appears open or closed.
Page | The destination Page associated with this bookmark.
PageID | The destination Page ID associated with this bookmark.
Parent | The parent of this Bookmark.
Title | The bookmark title to be displayed on screen.
 | inherited properties...


Bookmark CopyTo Function. Copies the Bookmarks into an array. ABCpdf .NET PDF Library.

CopyTo Function

Copies the Bookmarks into an array.

Syntax

[C#]
void CopyTo(Bookmark[] array, int index)

[Visual Basic]
Sub CopyTo(array As Bookmark(), index As Integer)

Params
Name | Description
array | The array that is the destination for the elements.
index | The zero-based index in array at which copying begins.

Notes

Copies the elements of the Collection to an array starting at a particular array index.

The array must be one-dimensional and have zero-based indexing.


Bookmark Add Function. Adds a Bookmark to the end of the list. ABCpdf .NET PDF Library.

Add Function

Adds a Bookmark to the end of the list.

Syntax

[C#]
int Add(Bookmark bookmark)
int Add(string title)

[Visual Basic]
Function Add(bookmark As Bookmark) As Integer
Function Add(title As String) As Integer

Params
Name | Description
bookmark | The bookmark to be added.
title | The title for the bookmark to be added.
return | The position in which the new element was inserted.

Notes

This method adds an item to the end of the list.

You can add a Bookmark directly or you can use one of the overloaded operators to add a bookmark with a specified title.

When you add a string this is encapsulated within a new Bookmark which is then inserted.

Bookmarks can exist in only one place at a time. If the Bookmark supplied is already contained by another object then a Clone of the Bookmark is added.


Bookmark Clear Function. Removes all Bookmarks from the list. ABCpdf .NET PDF Library.

Clear Function

Removes all Bookmarks from the list.

Syntax

[C#]
void Clear()

[Visual Basic]
Sub Clear()

Params
Name | Description
none |

Notes

Removes all Bookmarks from the list.


Bookmark Contains Function. Determines whether the list contains a specific Bookmark. ABCpdf .NET PDF Library.

Contains Function

Determines whether the list contains a specific Bookmark.

Syntax

[C#]
bool Contains(Bookmark value)

[Visual Basic]
Function Contains(value As Bookmark) As Boolean

Params
Name | Description
value | The object to locate.
return | True if the object is found, otherwise false.

Notes

Determines whether the Collection contains a specific Bookmark.


Bookmark IndexOf Function. Determines the index of a specific Bookmark. ABCpdf .NET PDF Library.

IndexOf Function

Determines the index of a specific Bookmark.

Syntax

[C#]
int IndexOf(Bookmark value)
int IndexOf(string value)

[Visual Basic]
Function IndexOf(value As Bookmark) As Integer
Function IndexOf(value As String) As Integer

Params
Name | Description
value | The object or the title of the object to locate in the Collection.
return | If found, the index of value, otherwise -1.

Notes

Determines the index of a specific Bookmark in the list.


Bookmark Insert Function. Inserts a Bookmark into the list at the specified position. ABCpdf .NET PDF Library.

Insert Function

Inserts a Bookmark into the list at the specified position.

Syntax

[C#]
void Insert(int index, Bookmark bookmark)
void Insert(int index, string title)

[Visual Basic]
Sub Insert(index As Integer, bookmark As Bookmark)
Sub Insert(index As Integer, title As String)

Throws Exceptions may throw ArgumentOutOfRangeException()

Params
Name | Description
index | The zero-based index at which value should be inserted.
bookmark | The bookmark to be added.
title | The title for the bookmark to be added.

Notes

Inserts an item into the list at the specified position.

You can insert a Bookmark directly or you can use one of the overloaded operators to insert a bookmark with a specified title.

When you insert a string this is encapsulated within a new Bookmark which is then inserted.

Bookmarks can exist in only one place at a time. If the Bookmark supplied is already contained by another object then a Clone of the Bookmark is added.

If the index equals the number of items in the array then the bookmark is appended to the end.

If the index is not a valid index this method throws an ArgumentOutOfRangeException.


Bookmark Remove Function. Removes a Bookmark from the list. ABCpdf .NET PDF Library.

Remove Function

Removes a Bookmark from the list.

Syntax

[C#]
bool Remove(Bookmark value)

[Visual Basic]
Function Remove(value As Bookmark) As Boolean

Params
Name | Description
value | The Bookmark to be removed.
return | True if the Bookmark is removed, otherwise false.

Notes

When a Bookmark is removed the elements that follow the removed element move up to occupy the vacated spot.


Bookmark RemoveAt Function. Remove the Bookmark at the specified location. ABCpdf .NET PDF Library.

RemoveAt Method

Remove the Bookmark at the specified location.

Syntax

[C#]
void RemoveAt(int index)

[Visual Basic]
Sub RemoveAt(index As Integer)

Params
Name | Description
index | The zero based index specifying the Bookmark to be removed.

Notes

Use this method to remove the Bookmark at the specified location.

The Bookmarks that follow the removed Bookmark move up to occupy the empty spot.


Bookmark GetEnumerator Function. Gets an enumerator for the Collection. ABCpdf .NET PDF Library.

GetEnumerator Function

Gets an enumerator for the Collection.

Syntax

[C#]
IEnumerator<Bookmark> GetEnumerator()

[Visual Basic]
Function GetEnumerator() As IEnumerator(Of Bookmark)

Params
Name | Description
return | The enumerator for the collection.

Notes

Gets a Bookmark enumerator for the Collection.


Bookmark Adopt Function. Adopt a specified Bookmark. ABCpdf .NET PDF Library.

Adopt Method

Adopt a specified Bookmark.

Syntax

[C#]
void Adopt(Bookmark value)

[Visual Basic]
Sub Adopt(value As Bookmark)

Throws Exceptions may throw Exception()

Params
Name | Description
value | The bookmark to be adopted.

Notes

Use this method to move bookmarks within the bookmark hierarchy.

The bookmark to be adopted is detached from the bookmark hierarchy. Then it is added at the end of the bookmark collection for the current object.

Some Adopt operations are not possible. For example a child cannot adopt its parent. In these cases the field structure will be left unchanged and an exception thrown.


Bookmark Refresh Function. Refresh and reload the document Bookmarks. ABCpdf .NET PDF Library.

Refresh Method

Refresh and reload the document Bookmarks.

Syntax

[C#]
void Refresh()

[Visual Basic]
Sub Refresh()

Params
Name | Description
return | n/a.

Notes

Use this method to refresh and reload all Bookmarks in the list.

When a bookmark is first referenced the bookmark data from the PDF is cached. This allows a level of optimization which would not otherwise be possible.

However if you are using the low level functionality to modify the bookmark structure the cache will not reflect your changes. In this situation you can force the bookmarks to be reloaded by calling Refresh.


Bookmark Count Property. The number of Bookmarks in the collection. ABCpdf .NET PDF Library.

Count Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | See description. | Yes | The number of Bookmarks in the collection.

Notes

The number of Bookmarks in the Collection.

As with all Collections you can use the Count property to determine the number of items contained and you can iterate through the collection using the standard methods appropriate to the language you are coding in.


Bookmark Item Property. Get or set the Bookmark at the specified index. ABCpdf .NET PDF Library.

Item Property

Type | Default | Read Only | Description
[C#] Bookmark this[int index] [Visual Basic] Default Property Item(index As Integer) As Bookmark | n/a | No | Get or set the Bookmark at the specified index.

Throws Exceptions may throw ArgumentOutOfRangeException()

Notes

Gets or sets the Bookmark at the specified index. In C# this property is the indexer for the class.

If the index is not a valid index this property throws an ArgumentOutOfRangeException.


Bookmark Open Property. Whether the bookmark appears open or closed. ABCpdf .NET PDF Library.

Open Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether the bookmark appears open or closed.

Notes

This property determines if the bookmark appears open or closed.

When a bookmark is open all its children are visible in a tree below it. When it is closed its children are hidden. Clients can toggle the state of the bookmark by clicking on it.

This property determines the default state.


Bookmark Page Property. The destination Page associated with this bookmark. ABCpdf .NET PDF Library.

Page Property

Type | Default Value | Read Only | Description
[C#] Page [Visual Basic] Page | 0 | No | The destination Page associated with this bookmark.

Notes

When activated a bookmark will trigger an action. In most cases this will be a navigation action resulting in a new page being displayed.

The Page object for the destination page is available via this property.

Occasionally you may come across bookmarks which have more complicated actions. In these cases this property will be null.


Bookmark PageID Property. The destination Page ID associated with this bookmark. ABCpdf .NET PDF Library.

PageID Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | The destination Page ID associated with this bookmark.

Notes

When activated a bookmark will trigger an action. In most cases this will be a navigation action resulting in a new page being displayed.

The Page ID for the destination page is available via this property.

Occasionally you may come across bookmarks which have more complicated actions. In these cases this property will be zero.


Bookmark Parent Property. The parent of this Bookmark. ABCpdf .NET PDF Library.

Parent Property

Type | Default Value | Read Only | Description
[C#] Bookmark [Visual Basic] Bookmark | n/a | Yes | The parent of this Bookmark.

Notes

Bookmarks exist in a hierarchy.

This property allows you to find the bookmark above this one in the hierarchy.

The top level outline item has no parent so in this case the property will be null.


Bookmark Title Property. The bookmark title to be displayed on screen. ABCpdf .NET PDF Library.

Title Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "" | No | The bookmark title to be displayed on screen.

Notes

This property determines the title of the bookmark.

The title is the text that appears in the bookmarks tab.


Catalog Class

The Catalog for the document.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Catalog

Method | Description
AnalyzeContent | Perform whole document analysis of page contents.
GetEmbeddedFiles | Gets all the embedded files in this document.
GetFieldNames | The names of all the eForm fields in the document.
GetFields | Get all the eForm fields in the document.
GetFonts | Gets all the fonts in this document.
 | inherited methods...

Property | Description
Metadata | Any document level Metadata.
Outline | The root Outline object.
Pages | The root Pages object.
 | inherited properties...


Catalog AnalyzeContent Function. Perform whole document analysis of page contents. ABCpdf .NET PDF Library.

AnalyzeContent Function

Perform whole document analysis of page contents.

Syntax

[C#]
void AnalyzeContent()
[Visual Basic]
Function AnalyzeContent()

Params
Name | Description
none |

Notes

This function scans the document and performs analysis of the contents.

Scanning the document content involves decompressing and parsing all the content in the document. As such it can be an expensive and time consuming process for large or complex documents.

For this reason the analysis is cached the first time this function is called. If you later change the content it is your responsibility to call this function to ensure that the analysis is updated.

Whole document analysis enables certain other optimizations such as Font.Subset.


Catalog GetEmbeddedFiles Function. Gets all the embedded files in this document. ABCpdf .NET PDF Library.

GetEmbeddedFiles Function

Gets all the embedded files in this document

Syntax

[C#]
IDictionary<string, FileSpecification> GetEmbeddedFiles()

[Visual Basic]
Function GetEmbeddedFiles() As IDictionary<string, FileSpecification>

Params
Name | Description
return | A set of names and the file associated with each name.

Notes

Gets all the embedded files in this document.

PDF documents can contain a set of named files. These files can then be referenced by name elsewhere in the document.

The most common case in which named files are used is in the case of PDF portfolios. Adobe now uses the name Portfolio for this type of document but in the PDF specification they are known as Portable Collections. While the names may vary, the two are the same.

PDF Portfolios appear as one PDF document but actually contain many. Typically the first document represents the visible face of the collection when opened. After the collection is open you can switch between the embedded PDFs.

PDF portfolios can be used to represent a folder of PDFs. For example you might find a portable collection being used to display multiple emails within a single PDF Portfolio.

Example

The example below show how to extract all the files embedded in a PDF portfolio. See the FileSpecification constructor for the creation of portfolios.

[C#]

using (Doc doc = new Doc()) {
  XReadOptions ro = new XReadOptions();
  ro.OpenPortfolios = false;
  doc.Read(Server.MapPath("Portfolio1.pdf"), ro);
  var files = doc.ObjectSoup.Catalog.GetEmbeddedFiles();
  foreach (var pair in files) {
    FileSpecification fileSpec = pair.Value;
    fileSpec.Rationalize();
    EmbeddedFile file = fileSpec.EmbeddedFile;
    if ((file != null) && (file.Decompress())) {
      string name = "Portfolio_" + fileSpec.Uri;
      string path = name;
      File.WriteAllBytes(path, file.GetData());
    }
  }
}

[Visual Basic]
Using doc As New Doc()
  Dim ro As New XReadOptions()
  ro.OpenPortfolios = False
  doc.Read(Server.MapPath("Portfolio1.pdf"), ro)
  Dim files = doc.ObjectSoup.Catalog.GetEmbeddedFiles()
  For Each pair As var In files
    Dim fileSpec As FileSpecification = pair.Value
    fileSpec.Rationalize()
    Dim file__1 As EmbeddedFile = fileSpec.EmbeddedFile
    If (file__1 <> Nothing) AndAlso (file__1.Decompress()) Then
      Dim name As String = "Portfolio_" + fileSpec.Uri
      Dim path As String = name
      File.WriteAllBytes(path, file__1.GetData())
    End If
  Next
End Using


Catalog GetFieldNames Function. The names of all the eForm fields in the document. ABCpdf .NET PDF Library.

GetFieldNames Function

The names of all the eForm fields in the document.

Syntax

[C#]
string[] GetFieldNames()

[Visual Basic]
Function GetFieldNames() As String()

Params
Name | Description
return | The names of all the eForm fields in the document.

Notes

This function scans the field tree and extracts the full name of every field in the document.


Catalog GetFields Function. Get all the eForm fields in the document. ABCpdf .NET PDF Library.

GetFields Function

Get all the eForm fields in the document.

Syntax

[C#]
IndirectObject[] GetFields()
[Visual Basic]
Function GetFields() As IndirectObject()

Params
Name | Description
return | All the eForm fields in the document.

Notes

This function scans the field tree and builds an array of all the fields in the document.

Most fields are Annotations which means they have a visible appearance on the page. All fields are IndirectObjects.


Catalog GetFonts Function. Gets all the fonts in this document. ABCpdf .NET PDF Library.

GetFonts Function

Gets all the fonts in this document.

Syntax

[C#]
FontObject[] GetFonts()
[Visual Basic]
Function GetFonts() As FontObject()

Params
Name | Description
return | All the fonts in the document.

Notes

This function scans the document and builds an array of all the fonts.


Catalog Metadata Property. Any document level Metadata. ABCpdf .NET PDF Library.

Metadata Property

Type | Default | Read Only | Description
[C#] Metadata [Visual Basic] Metadata | n/a | No | Any document level Metadata.

Notes

Any document level Metadata.

The Metadata object holds XMP metadata such as Title, Author, Subject, Keywords, Creator, Creation Date and Modification Date.

There are multiple places that document level metadata can be stored in a PDF. The most commonly used are the Info entry of the Trailer and the Metadata entry of the Catalog.

The Info entry is the older and most widely recognized location. The Metadata entry is a more recent XML based store introduced in PDF 1.4. It is important that information within these stores is consistent. If the information is inconsistent then you will find that the metadata reported by different applications is different.

To try and reduce the amount of confusion caused by multiple metadata entries, PDF 2.0 deprecated all Info entries apart from the CreationDate and ModDate. To be PDF 2.0 compliant you should put all metadata into the Metadata entry rather than the Info one.

Example

This example shows how to insert document properties. Document properties can be viewed from Acrobat Reader and most commonly provide information on the document origin.

Complex XMP metadata can be constructed using the Adobe XMP Toolkit. However in most cases you will only want simple metadata so you can use the use the standard Metadata object properties.

Here we load an existing PDF and set the Title and Author.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/book.pdf"));
  Metadata md = doc.ObjectSoup.Catalog.Metadata;
  if (md == null) {
    md = new Metadata(doc.ObjectSoup);
    doc.ObjectSoup.Catalog.Metadata = md;
  }
  md.InfoSubject = "Finn Family Moomintroll";
  md.InfoAuthor = "Tove Jansson";
  doc.Save(Server.MapPath("metadata.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/book.pdf"))
  Dim md As Metadata = doc.ObjectSoup.Catalog.Metadata
  If md = Nothing Then
    md = New Metadata(doc.ObjectSoup)
    doc.ObjectSoup.Catalog.Metadata = md
  End If
  md.InfoSubject = "Finn Family Moomintroll"
  md.InfoAuthor = "Tove Jansson"
  doc.Save(Server.MapPath("metadata.pdf"))
End Using


Catalog Outline Property. The root Outline object. ABCpdf .NET PDF Library.

Outline Property

Type | Default | Read Only | Description
[C#] Outline [Visual Basic] Outline | n/a | Yes | The root Outline object.

Notes

The root Outline object.

The Outline object holds the structure of the document.


Catalog Pages Property. The root Pages object. ABCpdf .NET PDF Library.

Pages Property

Type | Default | Read Only | Description
[C#] Pages [Visual Basic] Pages | n/a | Yes | The root Pages object.

Notes

The root Pages object.

The Pages object holds references to every page in the document.


ColorSpace Class

A color space for an object such as a PixMap.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.ColorSpace

Method | Description
ColorSpace | Construct a ColorSpace.
 | inherited methods...

Property | Description
ColorSpaceType | The type of color space.
Components | The number of color components in the color space.
IccProfile | Any ICC Color Profile associated with this color space.
BaseColorSpaceType | The base type of color space.
Name | Any name associated with the color space.
Gamma | The gamma correction for the color space.
BlackPoint | The black point for the color space specified in CIE 1931 XYZ space.
WhitePoint | The white point for the color space specified in CIE 1931 XYZ space.
 | inherited properties...


ColorSpace ColorSpace Function. Construct a ColorSpace. ABCpdf .NET PDF Library.

ColorSpace Constructor

Construct a ColorSpace.

Syntax

[C#]
ColorSpace(ObjectSoup soup)
ColorSpace(ObjectSoup soup, ColorSpaceType space)

[Visual Basic]
Sub New(soup As ObjectSoup)
Sub New(soup As ObjectSoup, space As ColorSpaceType)

Params
Name | Description
soup | The ObjectSoup to contain the newly created StreamObject.
space | The type of color space required.

Notes

Create a ColorSpace.

If a color space is not specified the default of DeviceRGB will be used.

Example

See the PixMap.Recolor function.


ColorSpace ColorSpaceType Property. The type of color space. ABCpdf .NET PDF Library.

ColorSpaceType Property

Type | Default | Read Only | Description
[C#] ColorSpaceType [Visual Basic] ColorSpaceType | n/a | No | The type of color space.

Notes

The ColorSpaceType enumeration may take the following values:

  • None
  • DeviceGray
  • DeviceRGB
  • DeviceCMYK
  • CalGray
  • CalRGB
  • ICCBased
  • Lab
  • Indexed
  • Pattern
  • Separation
  • DeviceN

Device color spaces are device dependent color spaces. This means that output color will vary depending on the output medium. For example a DeviceRGB value may look different on one monitor than it does on another.

Cal, ICC and Lab color spaces are device independent color spaces. They try to define colors in terms of how they should look rather than how they should be produced. The goal is to allow colors to be reproduced accurately on different devices within the capabilities of the destination device.

The Indexed color space is used for palettized color. Each item in the palette is defined in terms of a base color space such as DeviceRGB. Palettes can hold up to 256 entries. The base color space can be determined using the BaseColorSpaceType property.

Pattern color spaces are special color spaces used for defining repeating patterns.

Separation and DeviceN color spaces define colors in terms of different base colors. Separations specify one color only. DeviceN color spaces define multiple different colors. For example using a DeviceN color space you could define an image to be printed using a combination of Gold, Silver and Black inks.

The None color space represents an unknown or undefined color space. As such you cannot set this property to be None. Attempting to do so will result in a default DeviceRGB color space.

More details of these color space types can be found in Section 4.5 of the Adobe PDF Specification.


ColorSpace Components Property. The number of color components in the color space. ABCpdf .NET PDF Library.

Components Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The number of color components in the color space.

Notes

Different color spaces have different numbers of components.

For example RGB color spaces have three components and CMYK color spaces have four.

This property allows you to determine the number of color components in the color space.

Indexed color spaces define colors via a palette. So although a color value is determined via a single index into a palette, the number of components is determined by the number of color components in the palette.

For example the number of components in an indexed RGB color space is three.

Pattern color spaces are special and have no components.


ColorSpace IccProfile Property. Any ICC Color Profile associated with this color space. ABCpdf .NET PDF Library.

IccProfile Property

Type | Default | Read Only | Description
[C#] IccProfile [Visual Basic] IccProfile | n/a | No | Any ICC Color Profile associated with this color space.

Notes

Any IccProfile describing an ICC Color Profile associated with this color space.

Querying the value of this property will never raise an exception.

Assigning a new value to this property automatically results in the IccProfile being decompressed, validated, recompressed and (if it is not already there) added to the same ObjectSoup as the ColorSpace.

The ColorSpaceType and Components properties will change to reflect the color space of the new profile.

An exception will be thrown if the assignation is not possible. This may happen if the ColorSpace is not in an ObjectSoup or if the IccProfile is not valid.

Example

See the PixMap.Recolor function.


ColorSpace BaseColorSpaceType Property. The base type of color space. ABCpdf .NET PDF Library.

BaseColorSpaceType Property

Type | Default | Read Only | Description
[C#] ColorSpaceType [Visual Basic] ColorSpaceType | n/a | Yes | The base type of color space.

Notes

The base color space is relevant for cases in which the ColorSpaceType property is Indexed.

An Indexed color space contains a palette of colors indexed by number. Each item in the palette is a color in a different color space. As such the Indexed color space has a base color space in which the palette colors are defined.

This property allows you to determine the base color space for an Indexed color space. If the color space is not Indexed then this property is equal to the ColorSpaceType property.


ColorSpace Name Property. Any name associated with the color space. ABCpdf .NET PDF Library.

Name Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | n/a | Yes | Any name associated with the color space.

Notes

Any name associated with the color space.

Names are relevant only for Separation color spaces. They typically refer to the name of a spot color.


ColorSpace Gamma Property. The gamma correction for the color space. ABCpdf .NET PDF Library.

Gamma Property

Type | Default Value | Read Only | Description
[C#] ArrayAtom [Visual Basic] ArrayAtom | n/a | No | The gamma correction for the color space

Notes

The gamma correction for the color space.

This property is only valid for color spaces in which the ColorSpaceType is CallGray or CalRGB.

Gamma is defined for each component of a calibrated color space. So for a CalGray color space it has one entry and for a CalRGB color space it has three.

This means that for a CalGray color space this property will be a NumAtom and for a CalRGB color space it will be an ArrayAtom with three entries.

Each gamma entry must be positive and is generally greater than or equal to one.

Example

In this example we show how to use the Gamma property with a calibrated grayscale color space.

[C#]

using (Doc doc = new Doc()) {
  doc.Width = 80;
  doc.Rect.Inset(50, 50);
  ColorSpace cs = new ColorSpace(doc.ObjectSoup, ColorSpaceType.CalGray);
  ((NumAtom)cs.Gamma).Real = 1.2;
  doc.ColorSpace = cs.ID;
  doc.Color.SetComponents(0.9); // gray
  doc.AddOval(true);
  doc.Save(Server.MapPath("examplecalgraycolorspace.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Width = 80
  doc.Rect.Inset(50, 50)
  Dim cs As New ColorSpace(doc.ObjectSoup, ColorSpaceType.CalGray)
  DirectCast(cs.Gamma, NumAtom).Real = 1.2
  doc.ColorSpace = cs.ID
  doc.Color.SetComponents(0.9)
  ' gray
  doc.AddOval(True)
  doc.Save(Server.MapPath("examplecalgraycolorspace.pdf"))
End Using

examplecalgraycolorspace.pdf


ColorSpace BlackPoint Property. The black point for the color space specified in CIE 1931 XYZ space. ABCpdf .NET PDF Library.

BlackPoint Property

Type | Default Value | Read Only | Description
[C#] XColor [Visual Basic] XColor | n/a | No | The black point for the color space specified in CIE 1931 XYZ space

Notes

The black point for the color space specified in CIE 1931 XYZ space.

This property is only valid for color spaces in which the ColorSpaceType is CallGray, CalRGB or Lab.

All components for this valud must be non-negative. The default for this peroperty is 0 0 0.

When you set this property a clone of the XColor you assign is created to avoid one XColor being shared by multiple color spaces.

Example

See the WhitePoint property.


ColorSpace WhitePoint Property. The white point for the color space specified in CIE 1931 XYZ space. ABCpdf .NET PDF Library.

WhitePoint Property

Type | Default Value | Read Only | Description
[C#] XColor [Visual Basic] XColor | n/a | No | The white point for the color space specified in CIE 1931 XYZ space

Notes

The white point for the color space specified in CIE 1931 XYZ space.

This property is only valid for color spaces in which the ColorSpaceType is CallGray, CalRGB or Lab.

X and Y must be positive and Z must be one. The default for this peroperty is 0 0 0.

When you set this property a clone of the XColor you assign is created to avoid one XColor being shared by multiple color spaces.

Example

In this example we show how to use the WhitePoint and BlackPoint with a calibrated RGB color space.

[C#]

using (Doc doc = new Doc()) {
  doc.Width = 80;
  doc.Rect.Inset(50, 50);
  ColorSpace cs = new ColorSpace(doc.ObjectSoup, ColorSpaceType.CalRGB);
  cs.WhitePoint.SetComponents(0.9, 1.0, 1.1);
  cs.BlackPoint = XColor.FromComponents(0.1, 0.1, 0.1);
  doc.ColorSpace = cs.ID;
  doc.Color.SetComponents(0.9, 0.1, 0.1); // red
  doc.AddOval(true);
  doc.Save(Server.MapPath("examplecalrgbcolorspace.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Width = 80
  doc.Rect.Inset(50, 50)
  Dim cs As New ColorSpace(doc.ObjectSoup, ColorSpaceType.CalRGB)
  cs.WhitePoint.SetComponents(0.9, 1.0, 1.1)
  cs.BlackPoint = XColor.FromComponents(0.1, 0.1, 0.1)
  doc.ColorSpace = cs.ID
  doc.Color.SetComponents(0.9, 0.1, 0.1)
  ' red
  doc.AddOval(True)
  doc.Save(Server.MapPath("examplecalrgbcolorspace.pdf"))
End Using

examplecalrgbcolorspace.pdf


Objects D3DStream

D3DStream Class

"A 3D stream.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.StreamObject
         WebSupergoo.ABCpdf12.Objects.D3DStream

Implements: IEquatable<D3DStream>

Method | Description
D3DStream | D3DStream constructor.
Equals | Test whether the two D3DStream objects are the same.
SetFile3D | Set the 3D content of the stream from data embedded in a file.
 | inherited methods...

Property | Description
 | inherited properties...


Objects D3DStream D3DStream Function. D3DStream constructor. ABCpdf .NET PDF Library.

D3DStream Function

D3DStream constructor.

Syntax

[C#]
D3DStream(ObjectSoup soup)
D3DStream(ObjectSoup soup, string path)
D3DStream(ObjectSoup soup, byte[] data)

[Visual Basic]
D3DStream(soup As ObjectSoup)
D3DStream(soup As ObjectSoup, path As string)
D3DStream(soup As ObjectSoup, data() As Byte)

Params
Name | Description
soup | The ObjectSoup to contain the newly created D3DStream.
path | A path to a file containing data which should be placed in the D3DStream.
data | An array of bytes which should be placed in the D3DStream.

Notes

D3DStream constructor.


Objects D3DStream Equals Function. Test whether the two D3DStream objects are the same. ABCpdf .NET PDF Library.

Equals Function

Test whether the two D3DStream objects are the same.

Syntax

[C#]
virtual bool Equals(D3DStream other)

[Visual Basic]
Overridable Function Equals(other As D3DStream) As Boolean

Params
Name | Description
other | The D3DStream to test against.
return | Whether the D3DStream objects are equal.

Notes

Test whether the two D3DStream objects are the same.


Objects D3DStream SetFile3D Function. Set the 3D content of the stream from data embedded in a file. ABCpdf .NET PDF Library.

SetFile3D Function

Set the 3D content of the stream from data embedded in a file.

Syntax

[C#]
virtual void SetFile3D(string path)

[Visual Basic]
Overridable Function SetFile3D(path As string) As void

Params
Name | Description
path | A path to a file containing 3D data in OBJ, U3D or PRC format.

Notes

Set the 3D content of the stream from data embedded in a file.


EmbeddedFile Class

An EmbeddedFile represents a file stream embedded inside a PDF document.

It includees a small amount of metadata such as, optionally, the file creation and modification date. However it is primarily related to file data..

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.StreamObject
         WebSupergoo.ABCpdf12.Objects.EmbeddedFile

Method | Description
EmbeddedFile | EmbeddedFile Constructor.
Throws Exceptions UpdateMetadata | Update metadata for the embedded file.
 | inherited methods...

Property | Description
Checksum | The 16 byte checksum for the embedded file.
CreationDate | The creation date of the embedded file.
MacCreator | The Macintosh file creator - a four char code represented as an integer.
MacResFork | The Macintosh resource forks stream for this file.
MacType | The Macintosh file type - a four char code represented as an integer.
ModificationDate | The modification date of the embedded file.
Size | The size of the embedded file.
Subtype | The subtype of the embedded file.
 | inherited properties...


EmbeddedFile EmbeddedFile Function. EmbeddedFile Constructor. ABCpdf .NET PDF Library.

EmbeddedFile Function

EmbeddedFile Constructor

Syntax

[C#]
EmbeddedFile(ObjectSoup soup)
EmbeddedFile(ObjectSoup soup, string path)
EmbeddedFile(ObjectSoup soup, byte[] data)

[Visual Basic]
Sub New(soup As ObjectSoup)
Sub New(soup As ObjectSoup, path As String)
Sub New(soup As ObjectSoup, data() As Byte)

Params
Name | Description
soup | The ObjectSoup to contain the newly created EmbeddedFile.
path | A path to a file containing data which should be placed in the EmbeddedFile.
data | An array of bytes which should be placed in the EmbeddedFile.

Notes

Create an EmbeddedFile.

This constructor which takes a path to a file will embed and compress the file data using using the CompressFlate function. It will also insert appropriate metadata using the UpdateMetadata function.

The constructor which takes an array of data will similarly embed and compress the data. However since there is no file path metadata will not be assigned.


EmbeddedFile UpdateMetadata Function. Update metadata for the embedded file. ABCpdf .NET PDF Library.

UpdateMetadata Function

Update metadata for the embedded file.

Syntax

[C#]
void UpdateMetadata(string path)

[Visual Basic]
Sub UpdateMetadata(path As String)

Throws Exceptions may throw Exception()

Params
Name | Description
path | A path to a file containing data. If null is passed the data will be cleared.

Notes

Update metadata like the ModificationDate, CreationDate and Size to reflect the file values.

This EmbeddedFile must be part of an ObjectSoup or an exception will be thrown.


EmbeddedFile Checksum Property. The 16 byte checksum for the embedded file. ABCpdf .NET PDF Library.

Checksum Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | null | No | The 16 byte checksum for the embedded file

Notes

The 16 byte checksum for the embedded file.

f there is no such checksum the value will be null.


EmbeddedFile CreationDate Property. The creation date of the embedded file. ABCpdf .NET PDF Library.

CreationDate Property

Type | Default Value | Read Only | Description
[C#] DateTime? [Visual Basic] DateTime? | null | No | The creation date of the embedded file

Notes

The creation date of the embedded file.

If there is no such date the value will be null.


EmbeddedFile MacCreator Property. The Macintosh file creator - a four char code represented as an integer. ABCpdf .NET PDF Library.

MacCreator Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Nullable(Of Integer) | null | No | The Macintosh file creator - a four char code represented as an integer

Notes

The Macintosh file creator - a four char code represented as an integer.

If there is no creator the value will be null.


EmbeddedFile MacResFork Property. The Macintosh resource forks stream for this file. ABCpdf .NET PDF Library.

MacResFork Property

Type | Default Value | Read Only | Description
[C#] StreamObject [Visual Basic] StreamObject | null | No | The Macintosh resource forks stream for this file

Notes

The Macintosh resource forks stream for this file.

If there is no resource fork the value will be null.


EmbeddedFile MacType Property. The Macintosh file type - a four char code represented as an integer. ABCpdf .NET PDF Library.

MacType Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Nullable(Of Integer) | null | No | The Macintosh file type - a four char code represented as an integer

Notes

The Macintosh file type - a four char code represented as an integer.

If there is no type the value will be null.


EmbeddedFile ModificationDate Property. The modification date of the embedded file. ABCpdf .NET PDF Library.

ModificationDate Property

Type | Default Value | Read Only | Description
[C#] DateTime? [Visual Basic] DateTime? | null | No | The modification date of the embedded file

Notes

The modification date of the embedded file.

If there is no such date the value will be null.


EmbeddedFile Size Property. The size of the embedded file. ABCpdf .NET PDF Library.

Size Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Nullable(Of Integer) | null | No | The size of the embedded file

Notes

The size of the embedded file.

If there is no size the value will be null.


EmbeddedFile Subtype Property. The subtype of the embedded file. ABCpdf .NET PDF Library.

Subtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | null | No | The subtype of the embedded file

Notes

The subtype of the embedded file.

This property is represented via a NameAtom and hence it cannot take an empty string. As such, setting this property to an empty string will set it to null.


Field Class

Represents a field in a document.

The PDF specification makes a distinction between a field (in terms of a named value) and the visible appearance of the field on the document.

So not every field has a visible appearance. Those that do can be located using the Page and Rect properties. The value of the field can be modified using the Value property.

Fields exist within a hierarchy. Fields have children and their children can have children in turn. You can drill down through the hierarchy using the Kids property.

Alternatively - given a fully qualified name - you can use the XForm level methods to obtain references directly.

Note that the Field object is an abstraction of the underlying objects defined in the document. As such the Object ID may refer to an Annotation Widget or it may refer to a Field or it may refer to a hybrid Widget Field as defined in the PDF specification.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Field

Method | Description
Focus | Prepare document for drawing at the field location.
GetAnnotations | Gets all the Annotations referenced by this field or its children.
GetKids | Gets a set of Fields that are descendents of this one.
GetExportValues | Gets the export values for this field.
SetFont | Sets the font and font size to be used for text.
Stamp | Stamp this field into the document.
UpdateAppearance | Update the appearance of all the Annotations associated with this field.
 | inherited methods...

Property | Description
DefaultAppearance | The default appearance (DA) used for the text.
FieldType | The field type.
Flags | The Field Flags (Ff) entry.
Format | The field format.
Kids | All the immediate children of this field.
MultiSelect | Whether the field supports multiple selections.
Name | The fully qualified field name.
Options | The field options.
Throws Exceptions Page | The Page on which the field appears.
Throws Exceptions PageID | The ID of the page on which the field appears.
Parent | The parent of this field.
PartialName | The partial field name.
Throws Exceptions Rect | The location and size of the field.
TextAlignment | The alignment for the text.
TextColor | The color used for the text.
TextFont | The font used for the text.
TextSize | The font size used for the text.
Value | The field value.
 | inherited properties...


Field Focus Function. Prepare document for drawing at the field location. ABCpdf .NET PDF Library.

Focus Function

Prepare document for drawing at the field location.

Syntax

[C#]
bool Focus()

[Visual Basic]
Function Focus() As Boolean

Params
Name | Description
return | True if the focus operation was successful.

Notes

Use this method to focus on the field.

This prepares the document for drawing at the field location.

If the operation was successful then the function returns true. If the field has no visible location it will return false.

The Doc.Page, Doc.Rect and Doc.Transform may all be changed as a result of calling this method.


Field GetAnnotations Function. Gets all the Annotations referenced by this field or its children. ABCpdf .NET PDF Library.

GetAnnotations Function

Gets all the Annotations referenced by this field or its children

Syntax

[C#]
Annotation[] GetAnnotations()

[Visual Basic]
Overridable GetAnnotations() As Annotation()

Params
Name | Description
none |

Notes

Gets all the Annotations referenced by this field or its children.


Field GetKids Function. Gets a set of Fields that are descendents of this one. ABCpdf .NET PDF Library.

GetKids Function

Gets a set of Fields that are descendents of this one.

Syntax

[C#]
Field[] GetKids(int maximumDepth)

[Visual Basic]
Function GetKids(maximumDepth As Integer) As Field()

Params
Name | Description
maximumDepth | The maximum depth to search.

Notes

Gets a set of Fields that are descendents of this one.

The maximum depth parameter allows you to control the depth to which the field tree is searched. One for immediate children, two for children and grandchildren, etc.

Set the maximumDepth to Int32.MaxValue if you wish to retrieve all the fields under this one.


Field GetExportValues Function. Gets the export values for this field. ABCpdf .NET PDF Library.

GetExportValues Function

Gets the export values for this field.

Syntax

[C#]
string[] GetExportValues()

[Visual Basic]
Function GetExportValues() As String()

Params
Name | Description
return | An array of strings - one for each option. The size of the array is always equal to the number of Options.

Notes

Gets the export values for this field.

Choice fields such as Combo boxes and Lists have a value selected from one of their Options. However it is possible to specify an export value which is different from the value of field. The export value will be used if the form data is exported or submitted in some way so it is purely for external use. This function allows you to get the export values from the field.

Please note that export values are only meaningful for fields of FieldType FieldType.Combo or FieldType.List and they are only relevant for form export.


Field SetFont Function. Sets the font and font size to be used for text. ABCpdf .NET PDF Library.

SetFont Function

Sets the font and font size to be used for text

Syntax

[C#]
vitual void SetFont(FontObject font, double size)

[Visual Basic]
Sub SetFont(font As FontObject, size As Double)

Params
Name | Description
font | The font to be assigned to the field.
size | The font size to be assigned to the field.

Notes

Sets the font and font size to be used for text.

This function works by changing the DefaultAppearance for the field using the specified FontObject and size.

Properties such ase the TextFont and TextSize get the effective value which may be inherited. Calling this funtion sets the value on this item itself which will override any inherited value.

Passing a font value of null will remove both the font and size from the item itself though a value may be still be present if it is inherited from a parent field or from document defaults.

A zero size font indicates that the font should scale so that it fits the size of the field. Negative font heights appear the same as positive ones but are best avoided as they are likely to cause confusion.

The appearance of the field is not updated until you change the Value or call UpdateAppearance.


Field Stamp Function. Stamp this field into the document. ABCpdf .NET PDF Library.

Stamp Method

Stamp this field into the document.

Syntax

[C#]
void Stamp()

[Visual Basic]
Sub Stamp()

Params
Name | Description
return | n/a.

Notes

Use this method to permanently stamp a field into the document.

When this method is called the field appearance is stamped permanently into the document and the field is deleted.

The field becomes a new layer on the page (see Doc.LayerCount) so you may wish to call Doc.Flatten on the affected page.

You can use the XForm.Stamp method to stamp all fields into the document.


Field UpdateAppearance Function. Update the appearance of all the Annotations associated with this field. ABCpdf .NET PDF Library.

UpdateAppearance Function

Update the appearance of all the Annotations associated with this field

Syntax

[C#]
void UpdateAppearance()

[Visual Basic]
Sub UpdateAppearance()

Params
Name | Description
none | n/a

Notes

Update the appearance of all the Annotations associated with this field.

A field may have more than one appearance on one or more pages. Each appearance is represented as an Annotation. When a field is changed in a way which may impact the visual rendition on the page, the appearance of all the Annotations associated with that field need to be updated.

When you update the Value this happens automatically. However if you change other properties such as the TextColor you will need to make an explicit call to ensure the appearance streams are updated.


Field DefaultAppearance Property. The default appearance (DA) used for the text. ABCpdf .NET PDF Library.

DefaultAppearance Property

Type | Default Value | Read Only | Description
[C#] ArrayAtom [Visual Basic] ArrayAtom | n/a | No | The default appearance (DA) used for the text

Notes

The default appearance (DA) used for the text.

The ArrayAtom is a sequence of PDF parameters and operators which makes up a complete drawing sequence.

This property controls the base set of drawing instructions used for controlling the appearance of variable text in a field. Getting this property gets the effective value which may be inherited. Setting this property sets the value on this item itself.

Similarly setting this property to null will remove the property on the item itself but the value may continue to be inherited. The appearance of the field is not updated until you change the Value or call UpdateAppearance.


Field FieldType Property. The field type. ABCpdf .NET PDF Library.

FieldType Property

Type | Default Value | Read Only | Description
[C#] FieldType [Visual Basic] FieldType | See description. | Yes | The field type.

Notes

The FieldType enumeration may take the following values:

  • Pushbutton
  • Checkbox
  • Radio
  • Text
  • List
  • Combo
  • Signature
  • Unknown

More details of these field types can be found in Section 8.6.3 of the Adobe PDF Specification.


Field Flags Property. The Field Flags (Ff) entry. ABCpdf .NET PDF Library.

Flags Property

Type | Default Value | Read Only | Description
[C#] FieldFlags [Visual Basic] FieldFlags | n/a | No | The Field Flags (Ff) entry

Notes

This property is used to access or change the flags (Ff entry) for the field.

The FieldFlags type is a flags type enumeration so the different values can be combined together using bitwise operations. It may take the following values:

  • ReadOnly (Do not let the user change the value of the field)
  • Required (Require that the field has a value at the time it is exported by a form submission action)
  • NoExport (Do not export the value of the field as part of a form submission action)
  • NoToggleToOff (This is used for radio buttons and specifies that exactly one button shall be selected at all times)
  • Radio (Indicates whether the field is a radio button or a checkbox. This field is ignored if the Pushbutton flag is set)
  • Pushbutton (Whether this field is a pushbutton that stores no permanent value)
  • RadiosInUnison (Allow radio buttons with the same 'on' value to turn on and off together)
  • Multiline (Allow a text field to contain multiple lines of text)
  • Password (Display text field as a password box in which the text contents are obscured)
  • FileSelect (Display a text field that allows a file to be selected. When the form is submitted the contents of the file will be used as the value of the field)
  • DoNotSpellCheck (Text in this text or choice field shall not be spell checked)
  • DoNotScroll (Text in this text field shall not scroll. Once text has been entered which fills the field it shall accept no further characters)
  • Comb (Use the MaxLen property to equally space out text field characters into a comb-like slot position)
  • RichText (The value of this text field shall be a rich text string)
  • Combo (Whether this field is a combo or list field)
  • Edit (Whether field shall present an editable text box in addition to a list)
  • Sort (Whether entries in the list shall be put into alphabetical order)
  • MultiSelect (Whether more than one entry in the list can be selected at the same time)
  • CommitOnSelChange (A change to the value of this field will be committed as soon as it is made)

The ReadOnly, Required and NoExport flags are used by all field types.

The NoToggleToOff, Radio, Pushbutton and RadiosInUnison flags are used by button fields.

The Multiline, Password, FileSelect, DoNotSpellCheck, DoNotScroll, Comb and RichText flags are used by text fields.

The Combo, Edit, Sort, MultiSelect, DoNotSpellCheck and CommitOnSelChange are used by choice fields.

For code shoing how to check, set or clear flags see the FontObject.Flags property.


Field Format Property. The field format. ABCpdf .NET PDF Library.

Format Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | See description. | Yes | The field format.

Notes

The format for this field.

The PDF specification does not define how fields should be formatted. Acrobat uses a set of standard JavaScripts to perform field formatting.

This property reflects the JavaScript formatting function which is being used and the values which are being passed to it. A typical value might be:

AFNumber_Format(2, 3, 0, 0, "", true);

This defines a number format with two decimal places. Other typical formatting functions you will see include AFPercent_Format, AFSpecial_Format, AFDate_Format and AFTime_Format.

For a definitive guide to these formatting functions you should see the JavaScripts which come installed with your version of Acrobat. However as of early 2019, the following are defined.

AFNumber_Format(decimals, separator, negative, unused, currency, prepend);
AFPercent_Format(decimals, separator);
AFSpecial_Format(special_type)
AFDate_Format(date_type)
AFDate_FormatEx(date_time_format)
AFTime_Format(time_type)
AFTime_FormatEx(date_time_format)

Name Description Example
decimals

The number of figures to display after the decimal point.

eg for "2" the output might be "1,234.567".

 For th
separator

A number indicating the style of separators for thousands and decimal points.

  • 0 - Thousands separated using commas and decimals separated using a period. eg "1,234.56"
  • 1 - Decimals separated using a period. eg "1234.56"
  • 2 - Thousands separated using periods and decimals separated using a comma. eg "1.234,56"
  • 3 - Decimals separated using a comma. eg "1234,56"
negative

A number indicating the style for negative numbers.

  • 0 - A preceeding dash indicate negative numbers. eg "-1,234.56"
  • 1 - Black for positive and red for negative numbers. eg "1,234.56"
  • 2 - Negative numbers placed in parentheses. eg "(1.234,56)"
  • 3 - Negative numbers placed in parentheses. Also black for positive and red for negative. eg "(1.234,56)"
unused

This parameter is currently unused.
currency

A string indicating the currency symbol to be added to numbers.

eg for "$" the output might be "$1,234.56".
prepend

A boolean which; if true, indicates that the currency symbol should be prepended; and if false, that it should be appended.

eg for "false" the output might be "1,234.56 €".
special_type

A number indicating a fixed format style used for structures such as telephone numbers and zip codes.

  • 0 - Five digit zip code. eg "12345"
  • 1 - Zip plus-four code. eg "12345-6789"
  • 2 - A long or short telephone number depending on the number of digits. eg "(123) 456--7890" or "456--7890"
  • 3 - Social security number. eg "123-45-6789"
date_type

A number indicating a format style used to indicate a date.

See date_time_format below for details of the format.

  • 0 - "m/d"
  • 1 - "m/d/yy"
  • 2 - "mm/dd/yy"
  • 3 - "mm/yy"
  • 4 - "d-mmm"
  • 5 - "d-mmm-yy"
  • 6 - "dd-mmm-yy"
  • 7 - "yy-mm-dd"
  • 8 - "mmm-yy"
  • 9 - "mmmm-yy"
  • 10 - "mmm d, yyyy"
  • 11 - "mmmm d, yyyy"
  • 12 - "m/d/yy h-MM tt"
  • 13 - "m/d/yy HH-MM"
time_type

A number indicating a format style used to indicate a time.

See date_time_format below for details of the format.

  • 0 - "HH:MM"
  • 1 - "h:MM tt"
  • 2 - "HH:MM:ss"
  • 3 - "h:MM:ss tt"
date_time_format

A string indicating style used to format a date or time.

See date_type above for examples of the types of styles you can use.

The "m" and "mm" sequences indicate the month using a one and two digit number respectively - the former being of limited use. The "mmm" and "mmmm" sequence indicates the month using a short three character and full name respectively.

The "d" and "dd" sequences indicates the ordinal day of the month (the former being of limited use) while the "ddd" and "dddd" sequences indicate the day of the week using a short three character and full name respectively.

The "yy" indicates the short form of the year and the "yyyy" selector indicates the long form of the year.

The "h", "hh", "H" and "HH" sequences indicate the hours. The upper case versions work on the twenty-four hour clock and the lower case ones on the twelve hour clock. The one character selectors indicate the hour using one character (obviously of limited use) and the two character selectors indicate it using two characters.

The "MM" selector indicates the number of minutes past the current hour.

The "s" and "ss" selectors indicate the number of seconds past the current minute. The former uses one digit - of limited use - and the latter uses two.

The "t" and "tt" indicate the time relative to the meridiem - am or pm - using one digit or two characters respectively.


Field Kids Property. All the immediate children of this field. ABCpdf .NET PDF Library.

Kids Property

Type | Default Value | Read Only | Description
[C#] Fields [Visual Basic] Fields | See description. | Yes | All the immediate children of this field.

Notes

This property holds the immediate children of this field.

Items in this collection can be referenced by partial field name or by zero based index.

As with all collections you can use the Count property to determine the number of items contained and you can iterate through the collection using the standard methods appropriate to the language you are coding in.


Field MultiSelect Property. Whether the field supports multiple selections. ABCpdf .NET PDF Library.

MultiSelect Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | See description. | Yes | Whether the field supports multiple selections.

Notes

This property allows you to determine if the the field supports multiple values.

Most fields have a single value. A text box contains one item of text. A radio button group has one selected button. A checkbox can be checked or clear.

However some kinds of fields can hold multiple values. For example a list box can be used to select multiple items. If this is the case then the MultiSelect property will be set to true.

If the field supports multiple selection then the Value of the field will be a comma delimited list of the items which are selected.


Field Name Property. The fully qualified field name. ABCpdf .NET PDF Library.

Name Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | See description. | Yes | The fully qualified field name.

Notes

The fully qualified field name for this field.

See the XForm object for details of how fully qualified names are constructed.


Field Options Property. The field options. ABCpdf .NET PDF Library.

Options Property

Type Default Value Read Only Description
[C#]
string[]

[Visual Basic]
String() 		See description. Yes The field options.

Notes

The options available for the value of this field.

Typically you assign a value using the Value property. Some fields such as Text fields will accept any value. Others such as Checkboxes and List Boxes accept only a limited range of options. The field options tell you what options are available for a particular field.

The unmarked state of a Checkbox or Radio Button is always "Off". The marked state varies and is available via item zero of this property.

The set of options for a Combo Box or List Box can be obtained directly via this property.

Pushbuttons, Signatures and Text fields do not have options.


Field Page Property. The Page on which the field appears. ABCpdf .NET PDF Library.

Page Property

Type | Default Value | Read Only | Description
[C#] Page [Visual Basic] Page | See description. | No | The Page on which the field appears.

Throws Exceptions may throw ArgumentOutOfRangeException()

Notes

This property reflects the page on which this field is located.

This property is only valid if the fields has one single visible appearance on the page. If you are unsure whether your field will always map to one visible appearance it is better to call GetAnnotations and work with the Annotation.Page of each of the items in the array. If there is only one item in the array then this indicates that the field has one one single visible appearance on the page.

The most common case in which a field does not have a single visible appearance is in the case of radio buttons. In this case the field describes the radio button group and the children of the field are the visible buttons. Be aware that it is possible to spread radio buttons across more than one page.

This value may be null if the field does not have a visible appearance.

If this field does not have one single visible appearance on the page, attempting to assign a value to this property will result in an ArgumentOutOfRangeException being thrown.


Field PageID Property. The ID of the page on which the field appears. ABCpdf .NET PDF Library.

PageID Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | See description. | No | The ID of the page on which the field appears.

Throws Exceptions may throw ArgumentOutOfRangeException()

Notes

This property reflects the page on which this field is located.

This property is only valid if the fields has one single visible appearance on the page. If you are unsure whether your field will always map to one visible appearance it is better to call GetAnnotations and work with the Annotation.Page of each of the items in the array. If there is only one item in the array then this indicates that the field has one one single visible appearance on the page.

The most common case in which a field does not have a single visible appearance is in the case of radio buttons. In this case the field describes the radio button group and the children of the field are the visible buttons. Be aware that it is possible to spread radio buttons across more than one page.

This value may be zero if the field does not have a visible appearance.

If this field does not have one single visible appearance on the page, attempting to assign a value to this property will result in an ArgumentOutOfRangeException being thrown.


Field Parent Property. The parent of this field. ABCpdf .NET PDF Library.

Parent Property

Type | Default Value | Read Only | Description
[C#] Field [Visual Basic] Field | See description. | Yes | The parent of this field.

Notes

This property holds the parent of this field.

Each field may have a number of children which you can access using the Kids property. Each child will have one parent which you can access using the Parent property. Fields at the top of the hierarchy will have a null parent.


Field PartialName Property. The partial field name. ABCpdf .NET PDF Library.

PartialName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | See description. | Yes | The partial field name.

Notes

The partial name for this field.

See the XForm object for details of how partial and fully qualified names are related.


Field Rect Property. The location and size of the field. ABCpdf .NET PDF Library.

Rect Property

Type | Default Value | Read Only | Description
[C#] XRect [Visual Basic] XRect | See description. | No | The location and size of the field.

Throws Exceptions may throw NullReferenceException()

Throws Exceptions may throw ArgumentOutOfRangeException()

Notes

This property reflects the position and area of the field on the page.

This property is only valid if the fields has one single visible appearance on the page. If you are unsure whether your field will always map to one visible appearance it is better to call GetAnnotations and work with the Annotation.Rect of each of the items in the array. If there is only one item in the array then this indicates that the field has one one single visible appearance on the page.

The most common case in which a field does not have a single visible appearance is in the case of radio buttons. In this case the field describes the radio button group and the children of the field are the visible buttons. Be aware that it is possible to spread radio buttons across more than one page.

This rectangle will be empty if the field does not have one single visible appearance on the page.

This property must always have a value. Attempting to assign a null value to this property will result in a NullReferenceException being thrown.

If this field has no visible appearance, attempting to assign a value will result in an ArgumentOutOfRangeException being thrown.


Field TextAlignment Property. The alignment for the text. ABCpdf .NET PDF Library.

TextAlignment Property

Type | Default Value | Read Only | Description
[C#] AlignmentType [Visual Basic] AlignmentType | n/a | No | The alignment for the text

Notes

The alignment for the text.

The AlignmentType enumeration may take the following values:

  • Left
  • Center
  • Right

Getting this property gets the effective value which may be inherited. Setting this property sets the alignment on this item itself.

This feature is referred to as quadding within the Adobe PDF Specification. We call it alignment because quadding is not normal terminology.

The appearance of the field is not updated until you change the Value or call UpdateAppearance.


Field TextColor Property. The color used for the text. ABCpdf .NET PDF Library.

TextColor Property

Type | Default Value | Read Only | Description
[C#] XColor [Visual Basic] XColor | n/a | No | The color used for the text

Notes

The color used for the text.

This is derived from the DefaultAppearance for the field.

Getting this property gets the effective value which may be inherited. Setting this property sets the value on this item itself. When you set this property a clone of the XColor you assign is created to avoid one XColor being shared by multiple fields.

The appearance of the field is not updated until you change the Value or call UpdateAppearance.


Field TextFont Property. The font used for the text. ABCpdf .NET PDF Library.

TextFont Property

Type | Default Value | Read Only | Description
[C#] FontObject [Visual Basic] FontObject | n/a | Yes | The font used for the text

Notes

The font used for the text.

The FontObject that comprises this property is derived from the DefaultAppearance for the field.

Getting this property gets the effective value which may be inherited from a parent field or from document defaults. To change this property use the SetFont function.


Field TextSize Property. The font size used for the text. ABCpdf .NET PDF Library.

TextSize Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | n/a | Yes | The font size used for the text

Notes

The font size used for the text.

This is derived from the DefaultAppearance for the field.

Getting this property gets the effective value which may be inherited from a parent field or from document defaults. To change this property use the SetFont function.

The value zero has a special significance and indicates that the text in the field should be scaled to fit the area available.


Field Value Property. The field value. ABCpdf .NET PDF Library.

Value Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "" | No | The field value.

Notes

This property allows you access to the value of the field.

You may wish to assign or query the form field value using this property.

  • Text fields have a free-text value.
  • Checkboxes and Radio Buttons have a value which is either "Off" or the on-state of the control as specified in the Options.
  • Combo Boxes and List Boxes have values restricted to a set of selections as specified in the Options property.
  • Pushbuttons and Signatures do not have a value.

Some fields are associated with JavaScript which may be used for validation or formatting. In the case that you assign a value which causes an exception in the JavaScript, that exception will be propagated up the chain and will cause a corresponding C# exception to be raised. If you do not want to run such script, set the Doc.Form.UseFieldScript property to false.

Common Operations.

Set the value of a text field:

[C#]

theField.Value = "Mr Jones";

[Visual Basic]
theField.Value = "Mr Jones"

Set a checkbox:

[C#]

theField.Value = theField.Options[0];

[Visual Basic]
theField.Value = theField.Options(0)

Clear a checkbox:

[C#]

theField.Value = "Off";

[Visual Basic]
theField.Value = "Off"

Set the fifth Radio Button in a group:

[C#]

theField.Value = theField.Options[4];

[Visual Basic]
theField.Value = theField.Options(4)

Multiline Form Fields Tip.

When inserting carriage returns into multiline form fields use carriage returns (\r) only.

Using line feeds (\n) or a carriage return linefeed combination (\r\n) is less compatible with older versions of Acrobat.


Fields Class

A class encapsulating a collection of Fields.

System.Object
   WebSupergoo.ABCpdf12.Objects.Fields

Implements: IList<Field>, ICollection<Field>, IEnumerable<Field>, IList, ICollection, IEnumerable

Method | Description
CopyTo | Copies the items into a collection.
Throws Exceptions Add | Add an item to the end of the collection.
Throws Exceptions Clear | Removes all items from the collection.
Contains | Determines whether the collection contains a specific item.
IndexOf | Determines the index of a specific item.
Throws Exceptions Insert | Inserts an item into the collection at the specified position.
Throws Exceptions Remove | Removes an item from the collection.
Throws Exceptions RemoveAt | Removes an item at a specified position from the collection.
GetEnumerator | Gets an enumerator for the Collection.

Property | Description
Count | The number of items in the collection.
IsRoot | Whether this is the root element of the Fields tree.
Throws Exceptions Item | Get or set the item at the specified index.


Fields CopyTo Function. Copies the items into a collection. ABCpdf .NET PDF Library.

CopyTo Function

Copies the items into a collection.

Syntax

[C#]
void CopyTo(Field[] array, int index)

[Visual Basic]
Sub CopyTo(array As Field(), index As Integer)

Params
Name | Description
array | The array that is the destination for the elements.
index | The zero-based index in array at which copying begins.

Notes

Copies the elements of the collection to an array starting at a particular array index.

The array must be one-dimensional and have zero-based indexing.


Fields Add Function. Add an item to the end of the collection. ABCpdf .NET PDF Library.

Add Function

Add an item to the end of the collection.

Syntax

[C#]
int Add(Field field)

[Visual Basic]
Function Add(field As Field) As Integer

Throws Exceptions may throw NotSupportedException()

Params
Name | Description
field | The item to be added.

Notes

This method adds an item to the collection.

All Fields collections are read only so calling this function will generate a NotSupportedException.


Fields Clear Function. Removes all items from the collection. ABCpdf .NET PDF Library.

Clear Function

Removes all items from the collection.

Syntax

[C#]
void Clear()

[Visual Basic]
Sub Clear()

Throws Exceptions may throw NotSupportedException()

Params
Name | Description
none |

Notes

Removes all items from the collection.

All Fields collections are read only so calling this function will generate a NotSupportedException.


Fields Contains Function. Determines whether the collection contains a specific item. ABCpdf .NET PDF Library.

Contains Function

Determines whether the collection contains a specific item.

Syntax

[C#]
bool Contains(Field value)

[Visual Basic]
Function Contains(value As Field) As Boolean

Params
Name | Description
value | The object to locate.
return | True if the object is found, otherwise false.

Notes

Determines whether the collection contains a specific item.


Fields IndexOf Function. Determines the index of a specific item. ABCpdf .NET PDF Library.

IndexOf Function

Determines the index of a specific item.

Syntax

[C#]
int IndexOf(Field value)

[Visual Basic]
Function IndexOf(value As Field) As Integer

Params
Name | Description
value | The object to locate in the collection.
return | If found, the index of value, otherwise -1.

Notes

Determines the index of a specific item in the collection.


Fields Insert Function. Inserts an item into the collection at the specified position. ABCpdf .NET PDF Library.

Insert Function

Inserts an item into the collection at the specified position.

Syntax

[C#]
void Insert(int index, Field value)

[Visual Basic]
Sub Insert(index As Integer, value As Field)

Throws Exceptions may throw NotSupportedException()

Params
Name | Description
index | The zero-based index at which value should be inserted.
value | The item to insert into the array.

Notes

Inserts an item into the collection at the specified position.

All Fields collections are read only so calling this function will generate a NotSupportedException.


Fields Remove Function. Removes an item from the collection. ABCpdf .NET PDF Library.

Remove Function

Removes an item from the collection.

Syntax

[C#]
bool Remove(Field value)

[Visual Basic]
Function Remove(value As Field) As Boolean

Throws Exceptions may throw NotSupportedException()

Params
Name | Description
value | The item to be removed.
return | True if the item is removed, otherwise false.

Notes

Removes an item from the collection.

All Fields collections are read only so calling this function will generate a NotSupportedException.


Fields RemoveAt Function. Removes an item at a specified position from the collection. ABCpdf .NET PDF Library.

RemoveAt Function

Removes an item at a specified position from the collection.

Syntax

[C#]
void RemoveAt(int index)

[Visual Basic]
Sub RemoveAt(index As Integer)

Throws Exceptions may throw NotSupportedException()

Params
Name | Description
index | The zero-based index of the item to remove.

Notes

Removes an item from the collection.

All Fields collections are read only so calling this function will generate a NotSupportedException..


Fields GetEnumerator Function. Gets an enumerator for the Collection. ABCpdf .NET PDF Library.

GetEnumerator Function

Gets an enumerator for the Collection.

Syntax

[C#]
IEnumerator<Field> GetEnumerator()

[Visual Basic]
Function GetEnumerator() As IEnumerator(Of Field)

Params
Name | Description
return | The enumerator for the collection.

Notes

Gets a Field enumerator for the Collection.


Fields Count Property. The number of items in the collection. ABCpdf .NET PDF Library.

Count Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The number of items in the collection.

Notes

The number of items in the collection.

All Fields collections are read only so this value will be constant.


Fields IsRoot Property. Whether this is the root element of the Fields tree. ABCpdf .NET PDF Library.

IsRoot Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | n/a | Yes | Whether this is the root element of the Fields tree.

Notes

Whether this is the root element of the Fields tree.


Fields Item Property. Get or set the item at the specified index. ABCpdf .NET PDF Library.

Item Property

Type | Default | Read Only | Description
[C#] Field this[int index] Field this[string name] [Visual Basic] Default Property Item(index As Integer) As Field Default Property Item(name As String) As Field | n/a | No | Get or set the item at the specified index.

Throws Exceptions may throw ArgumentOutOfRangeException()
Throws Exceptions may throw NotSupportedException()

Notes

Gets or sets the item at the specified location. In C# this property is the indexer for the class.

The index specified may be a zero based numeric index. If the index is not a valid index this property throws an ArgumentOutOfRangeException.

Alternatively it may be a string specifying a field name. If the name is not one which matches a Field in the collection then a null value will be returned.

All Fields collections are read only so attempting to assign an item using this function will generate a NotSupportedException.


FileSpecification Class

A file specification represents the name and location of a file and optionally may also include references to embedded data.

The crucial properties of this class are Uri and EmbeddedFile. All other methods and properties are organized around backwards compatibility with obsolete entries so you are unlikely to need them when constructing new documents..

If you have an old PDF which contains obsolete entries, the Rationalize method will attempt to make the entries compliant. So again you should only need the Rationalize method and the Uri and EmbeddedFile properties.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.FileSpecification

Method | Description
FileSpecification | FileSpecification Constructor.
GetPath | Get the path to the file for the specified platform.
Rationalize | Removes any obsolescent and redundant entries.
SetPath | Set the path to the file for the specified platform.

Property | Description
Description | A description of the file for use in a user interface.
EmbeddedFile | The embedded file if one has been embedded in the PDF.
EmbeddedFiles | The set of embedded files if a set has been embedded in the PDF.
Platform | The default platform being used for the file specification.
Throws Exceptions Uri | The URI to the file.
Volatile | Whether the file changes frequently.


FileSpecification FileSpecification Function. FileSpecification Constructor. ABCpdf .NET PDF Library.

FileSpecification Function

FileSpecification Constructor

Syntax

[C#]
FileSpecification(ObjectSoup soup)
FileSpecification(ObjectSoup soup, string path)

[Visual Basic]
Sub New(soup As ObjectSoup)
Sub New(soup As ObjectSoup, path As String)

Params
Name | Description
soup | The ObjectSoup to contain the newly created FileSpecification.
path | A file to embed within the file specification.

Notes

Create a FileSpecification.

This constructor which takes a path to a file will embed and compress the file data using using the CompressFlate function. It will also insert appropriate metadata using the EmbeddedFileUpdateMetadata function.

The constructor which takes an array of data will similarly embed and compress the data. However since there is no file path metadata will not be assigned.

Example

The example below shows how to combine a set of PDF documents into a portfolio. See the Catalog.GetEmbeddedFiles function for how to extract files from a portfolio.

[C#]

string[] files = {
  "SignedDocument.pdf",
  "spaceshuttle.pdf",
  "Authorization.pdf",
  "Portfolio1.pdf",
};
using (Doc doc = new Doc()) {
  List<Tuple<string, FileSpecification>> fileSpecs = new List<Tuple<string, FileSpecification>>();
  foreach (string file in files) {
    byte[] data = null;
    using (Doc subDoc = new Doc()) {
      subDoc.Read(Server.MapPath(file));
      data = subDoc.GetData();
    }
    EmbeddedFile embedFile = new EmbeddedFile(doc.ObjectSoup, data);
    embedFile.CompressFlate();
    FileSpecification fileSpec = new FileSpecification(doc.ObjectSoup);
    fileSpec.EmbeddedFile = embedFile;
    fileSpec.Uri = file;
    string name = Path.GetFileName(file);
    fileSpecs.Add(new Tuple<string, FileSpecification>(name, fileSpec));
  }
  fileSpecs.Sort((a, b) => a.Item1.CompareTo(b.Item1));
  // we do not really need to delete existing files but we do so as an example
  doc.SetInfo(doc.Root, "/Names*/EmbeddedFiles*/Names:Del", "");
  foreach (Tuple<string, FileSpecification> fileSpec in fileSpecs) {
    doc.SetInfo(doc.Root, "/Names*/EmbeddedFiles*/Names*[]:Text", fileSpec.Item1);
    doc.SetInfo(doc.Root, "/Names*/EmbeddedFiles*/Names*[]:Ref", fileSpec.Item2.ID);
  }
  doc.SetInfo(doc.Root, "/Names*/EmbeddedFiles*/Limits*[]:Ref", fileSpecs[0].Item1);
  doc.SetInfo(doc.Root, "/Names*/EmbeddedFiles*/Limits*[]:Ref", fileSpecs[fileSpecs.Count - 1].Item1);
  doc.SetInfo(doc.Root, "/Collection*/D:Text", files[0]);
  doc.Save(Server.MapPath("createportfolio.pdf"));
}

[Visual Basic]
Dim files As String() = {"SignedDocument.pdf", "spaceshuttle.pdf", "Authorization.pdf", "Portfolio1.pdf"}
Using doc As New Doc()
  Dim fileSpecs As New List(Of Tuple(Of String, FileSpecification))()
  For Each file As String In files
    Dim data As Byte() = Nothing
    Using subDoc As New Doc()
      subDoc.Read(Server.MapPath(file))
      data = subDoc.GetData()
    End Using
    Dim embedFile As New EmbeddedFile(doc.ObjectSoup, data)
    embedFile.CompressFlate()
    Dim fileSpec As New FileSpecification(doc.ObjectSoup)
    fileSpec.EmbeddedFile = embedFile
    fileSpec.Uri = file
    Dim name As String = Path.GetFileName(file)
    fileSpecs.Add(New Tuple(Of String, FileSpecification)(name, fileSpec))
  Next
  fileSpecs.Sort(Function(a, b) a.Item1.CompareTo(b.Item1))
  ' we do not really need to delete existing files but we do so as an example
  doc.SetInfo(doc.Root, "/Names*/EmbeddedFiles*/Names:Del", "")
  For Each fileSpec As Tuple(Of String, FileSpecification) In fileSpecs
    doc.SetInfo(doc.Root, "/Names*/EmbeddedFiles*/Names*[]:Text", fileSpec.Item1)
    doc.SetInfo(doc.Root, "/Names*/EmbeddedFiles*/Names*[]:Ref", fileSpec.Item2.ID)
  Next
  doc.SetInfo(doc.Root, "/Names*/EmbeddedFiles*/Limits*[]:Ref", fileSpecs(0).Item1)
  doc.SetInfo(doc.Root, "/Names*/EmbeddedFiles*/Limits*[]:Ref", fileSpecs(fileSpecs.Count - 1).Item1)
  doc.SetInfo(doc.Root, "/Collection*/D:Text", files(0))
  doc.Save(Server.MapPath("createportfolio.pdf"))
End Using


FileSpecification GetPath Function. Get the path to the file for the specified platform. ABCpdf .NET PDF Library.

GetPath Function

Get the path to the file for the specified platform

Syntax

[C#]
string GetPath(string platform)

[Visual Basic]
Function GetPath(platform As String) As String

Params
Name | Description
platform | The platform name.
return | The file path.

Notes

This method is provided for low level control over obsolete entries contained in old PDF documents.

So in general you should be using the Rationalize method and the Uri property rather than this method.

A FileSpecification may hold multiple paths to a file.

Each path is specific to a platform such as Mac, Windows or Unix. For further details see the Platform property.

This function allolws you to retrieve the path for the specified platform.

If there is no matching path then null will be returned.


FileSpecification Rationalize Function. Removes any obsolescent and redundant entries. ABCpdf .NET PDF Library.

Rationalize Function

Removes any obsolescent and redundant entries.

Syntax

[C#]
void Rationalize()

[Visual Basic]
Sub Rationalize()

Params
Name | Description
none | n/a

Notes

Removes any obsolescent and redundant entries.

This will converts the object to be compliant with the changes recommended in the PDF 1.7 standard.


FileSpecification SetPath Function. Set the path to the file for the specified platform. ABCpdf .NET PDF Library.

SetPath Function

Set the path to the file for the specified platform

Syntax

[C#]
string SetPath(string platform, string path)

[Visual Basic]
Function SetPath(platform As String, path As String) As String

Params
Name | Description
platform | The platform name.
path | The file path.

Notes

This method is provided for low level control over obsolete entries contained in old PDF documents.

So in general you should be using the Rationalize method and the Uri property rather than this method.

A FileSpecification may hold multiple paths to a file.

Each path is specific to a platform such as Mac, Windows or Unix. For further details see the Platform property.

This function allolws you to set the path for the specified platform.

Setting to null will remove the path.


FileSpecification Description Property. A description of the file for use in a user interface. ABCpdf .NET PDF Library.

Description Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | null | No | A description of the file for use in a user interface

Notes

A description of the file for use in a user interface.


FileSpecification EmbeddedFile Property. The embedded file if one has been embedded in the PDF. ABCpdf .NET PDF Library.

EmbeddedFile Property

Type | Default Value | Read Only | Description
[C#] EmbeddedFile [Visual Basic] EmbeddedFile | null | No | The embedded file if one has been embedded in the PDF

Notes

The embedded file if one has been embedded in the PDF.

If a file has not been embedded then the URL needs to be intepreted in the context of the current PDF to locate the external file.

Setting this property will clear the EmbeddedFiles property if one is present.

This property requires reference to other objects in the ObjectSoup. If this object is not part of an ObjectSoup this property will always be null.


FileSpecification EmbeddedFiles Property. The set of embedded files if a set has been embedded in the PDF. ABCpdf .NET PDF Library.

EmbeddedFiles Property

Type | Default Value | Read Only | Description
[C#] Tuple<string, EmbeddedFile>[] [Visual Basic] Tuple<string, EmbeddedFile>[] | null | No | The set of embedded files if a set has been embedded in the PDF

Notes

The set of embedded files if a set has been embedded in the PDF.

Normally a file specification will refer to one file. However in some situations it may be necessary to allow it to refer to multiple. For example if a CMYK image is available as four color separations then it may be useful to be able to embed four different files to make up the whole data set. Each file will need a name so this property reflects both the name and the content of each file.

If the EmbeddedFiles property has a value, then the first file in the array should always be the same as the EmbeddedFile property. For this reason setting this property will also set the EmbeddedFile property to be equal to the first file in the array. If there are no items in the array then the EmbeddedFile property will be cleared.

This property requires reference to other objects in the ObjectSoup. If this object is not part of an ObjectSoup this property will always be null.


FileSpecification Platform Property. The default platform being used for the file specification. ABCpdf .NET PDF Library.

Platform Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | nulll | No | The default platform being used for the file specification

Notes

The default platform being used for the file specification.

For historic reasons PDF has supported multiple different files for multiple different platforms. This was appropriate when files were often non-interoperable and would not port easily between machines.

Fortunately this state of affairs is now unusual and only the default "UF" platform is commonly used. Adobe do not specify what the initials stand for, but it is likely to be Unicode File, though it could be Universal File or URL File.

While you are unlikely to wish to create documents which use these obsolescent platforms, you may find old documents that use them. This method allows you to access information specified by platform. Appropriate selectors are "UF", "F", "DOS", "Mac" or "Unix" as per the descriptions in the Adobe PDF Specification. You can use the Platforms property to deterine which are being used.

The defaut of "UF" provides access via the standard settings as specified in the PDF 1.7 specification.


FileSpecification Uri Property. The URI to the file. ABCpdf .NET PDF Library.

Uri Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | null | No | The URI to the file

Throws Exceptions may throw Exception()

Notes

The URI to the file.

For the default plaform, attempting to set this property to a value which is not a valid URI will result in an exception being thrown. To convert a standard Windows path to a URI use (new System.Uri(path).AbsouteUri.

For some values of the Platform property (e.g. Mac, DOS, Unix) raw file paths can be used. However these are obsolete and while you may see PDFs which contain them, you would be inadvised to generate new documents containing these structures.


FileSpecification Volatile Property. Whether the file changes frequently. ABCpdf .NET PDF Library.

Volatile Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether the file changes frequently.

Notes

This property indicates whether the file changes frequently and needs to be reloaded each time it is used, or if it is not and may be cached.


FontObject Class

A specific font as used in the document.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.FontObject

Method | Description
S» Throws Exceptions GetEncoding | Obtain a standard encoding dictionary for use with PDF text operators.
EmbedFont | Search for and embed a font file into this font object.
Throws Exceptions EncodeText | Encode text for use with PDF text operators.
GetVerticalMetric | Get the vertical metric for a character.
RegenerateToUnicode | Attempt to regenerate a ToUnicode map.
Subset | Subset a previously embedded font.
UnembedSimpleFont | Unembed the font if this is a simple operation.

Property | Description
BaseFont | The PostScript name of the font.
EmbeddedFont | The embedded font file.
IsComposite | Whether the font is a complex composite font.
IsIdentity | Whether the font is a composite glyph encoded identity font.
IsSubset | Whether the font contains an embedded subset.
IsVertical | Whether the font is for vertical writing.
WritingMode | Gets the font writing mode.
Widths | The widths of the characters in the font.
CharToEncoding | The Unicode to glyph mapping table for all the characters in the font.
CheckGlyphs | Whether to exclude invalid glyphs from our lookup tables.
DefaultWidth | The default character width.
EncodingToChar | The glyph to Unicode mapping table for all the characters in the font.
EncodingToString | The glyph to Unicode string mapping table.
Flags | The Font Descriptor Flags entry.
FontAscender | The ascender for the glyphs in this font.
FontAscent | The ascent for the glyphs in this font.
FontBBox | The bounding box for the glyphs in this font.
FontDescender | The descender for the glyphs in this font.
FontDescent | The descent for the glyphs in this font.
FontLineGap | The line gap for the glyphs in this font.
FontLineSpacing | The line spacing for the glyphs in this font.
IsDescendent | Whether the font is a descendent of a complex composite font.
NativeWidths | The character widths indexed by native character code.


FontObject GetEncoding Function. Obtain a standard encoding dictionary for use with PDF text operators. ABCpdf .NET PDF Library.

GetEncoding Function

Obtain a standard encoding dictionary for use with PDF text operators.

Syntax

[C#]
static Dictionary<char, char> GetEncoding(LanguageType type, bool vertical)

[Visual Basic]
Shared Function GetEncoding(type As LanguageType, vertical As Boolean) As Dictionary(Of Char, Char)

Throws Exceptions may throw Exception()

Params
Name | Description
type | The language type for the desired encoding.
vertical | Whether the writing direction should be horizontal or vertical.
return | A dictionary mapping Unicode values to native character IDs.

Notes

Use this method to obtain a standard encoding dictionary for use with PDF text operators.

Note that the encoding dictionary is defined purely by the language and direction provided as arguments to this function. It is your responsibility to ensure that the returned encoding dictionary is only used with fonts that already have this encoding. If instead you need to encode text using the font encoding specific to this particular font see the EncodeText method.

Since the Unicode LanguageType is already Unicode the encoding for this type is identity. For this reason an exception will be thrown if an encoding for this type is requested.

See the Fonts and Languages section for details on language types.


FontObject EmbedFont Function. Search for and embed a font file into this font object. ABCpdf .NET PDF Library.

EmbedFont Function

Search for and embed a font file into this font object

Syntax

[C#]
bool EmbedFont()

[Visual Basic]
Function EmbedFont() As Boolean

Params
Name | Description
return | Whether the font was embedded successfully.

Notes

Search for and embed a font file into this font object.

If an existing font file is already embedded it will be replaced. If you wish to subset the font you will need to call the Subset method after embedding the font.

Calling this function on Identity encoded fonts should be done with great caution as these types of fonts rely on glyph indexes and are thus specific to a particular font file.


FontObject EncodeText Function. Encode text for use with PDF text operators. ABCpdf .NET PDF Library.

EncodeText Function

Encode text for use with PDF text operators.

Syntax

[C#]
string EncodeText(string text, EncodingSupport support)
string EncodeText(string text, EncodingSupport support, out int outCount)

[Visual Basic]
Function EncodeText(text As String, support As EncodingSupport)
Function EncodeText(text As String, support As EncodingSupport, <Out> ByRef outCount As Integer)

Throws Exceptions may throw Exception()

Params
Name | Description
text | The text to be encoded.
support | The way in which characters not included in the font are to be encoded.
outCount | The number of characters in (parameter) text that are encoded in the return value.
return | The PDF string containing the encoded text.

Notes

Use this method to convert Unicode text into PDF string for use with the Tj or the TJ operator.

The EncodingSupport enumeration can take any of the following values:

  • All – encode all text.
  • NoneIfAnyNotSupported – encode nothing if any character is not included in the font.
  • SupportedPrefix – encode up to and excluding the first character not included in the font.

Note that the encoding for a font is constructed and cached at the time the font is first created. So changing the encoding for the font will not result in a corresponding change of behavior from this method. If this is something you need to do then you will need to create an entirely new font.


FontObject GetVerticalMetric Function. Get the vertical metric for a character. ABCpdf .NET PDF Library.

GetVerticalMetric Function

Get the vertical metric for a character.

Syntax

[C#]
virtual VerticalMetric GetVerticalMetric(int code)

[Visual Basic]
Overridable Function GetVerticalMetric(code As int) As VerticalMetric

Params
Name | Description
code | The native character code to get metrics for.
return | The vertical metrics.

Notes

Get the vertical metric for a character indexed by native character code.

The VerticalMetric structure consists of:

  • Position - a vector or point used for positioning the glyph.
  • Displacement - a vector or point to use for advancing the current text insertion point so that the next glyph can be positioned

Vertical metrics are only used when the IsVertical property is true.


FontObject RegenerateToUnicode Function. Attempt to regenerate a ToUnicode map. ABCpdf .NET PDF Library.

RegenerateToUnicode Function

Attempt to regenerate a ToUnicode map.

Syntax

[C#]
bool RegenerateToUnicode()

[Visual Basic]
Function RegenerateToUnicode() As Boolean

Params
Name | Description
return | Whether a new ToUnicode map was inserted.

Notes

Attempt to regenerate a ToUnicode map using embedded font data as a key.

Complex fonts are generally embedded using an identity encoding which references characters by glyph index rather than character code. Because glyph indexes are specific to a particular font, to extract text from the PDF you need a table mapping the glyph indexed to character codes. This map is called the ToUnicode map.

Well behaved PDF producers will insert a ToUnicode map for all fonts that they embed. However some font producers may fail to do so. This means that copying or extracting text from such a PDF will result in gibberish.

In some cases it is possible to regenerate the ToUnicode map from the embedded font data. This function attempts to do so and returns true if a new ToUnicode map was inserted. This function only works on composite fonts and calling it on other types of fonts will not do anything.


FontObject Subset Function. Subset a previously embedded font. ABCpdf .NET PDF Library.

Subset Function

Subset a previously embedded font.

Syntax

[C#]
bool Subset()
bool Subset(string characters)

[Visual Basic]
Function Subset() As Boolean
Function Subset(characters as String) As Boolean

Params
Name | Description
characters | The character set to be used for the subsetting.
return | Whether subsetting was performed succesfully.

Notes

Use this method to subset a previously embedded font.

Many PDF producers are not efficient at subsetting fonts. Subsetting previously embedded fonts can be a time consuming operation but can also result in a significant reduction in file size.

If you provide a character set string then this is a relatively fast operation. However if you do not pass a character set then one has to be constructed and to do this it is necessary to analyze the entire document to determine what characters are being used. In this case if a call to Catalog.AnalyzeContent has not already been made then one will be triggered.

This call will subset embedded TrueType and CFF fonts (Compact Font Format). If the font is referenced or if the font is not one of these types then this function will return false.


FontObject UnembedSimpleFont Function. Unembed the font if this is a simple operation. ABCpdf .NET PDF Library.

UnembedFont Function

Unembed the font if this is a simple operation.

Syntax

[C#]
int UnembedSimpleFont()

[Visual Basic]
UnembedSimpleFont() As Integer

Params
Name | Description
return | The number of bytes of font data that were removed as a result of this call.

Notes

Unembed the font if this is a simple operation.

Latin based fonts can often be unembedded as a simple and fast operation. However Unicode and symbolic fonts are more complex to unembed and cannot be simply removed from the document. To unembed a composite font you need to use the ReduceSizeOperation class.

This function returns the number of bytes of font data that were removed as a result of this call. Note that it is possible for multiple font objects to reference the same embedded font. In this case each call to unembed will return the same number and the actual font will only actually be removed from the document if all references to it are released.


FontObject BaseFont Property. The PostScript name of the font. ABCpdf .NET PDF Library.

BaseFont Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] string | n/a | Yes | The PostScript name of the font.

Notes

The PostScript name of the font.


FontObject EmbeddedFont Property. The embedded font file. ABCpdf .NET PDF Library.

EmbeddedFont Property

Type | Default | Read Only | Description
[C#] StreamObject [Visual Basic] StreamObject | n/a | Yes | The embedded font file.

Notes

The embedded font file.

Font files may be in a number of different formats such as TrueType, OpenType or Type 1 - PostScript.


FontObject IsComposite Property. Whether the font is a complex composite font. ABCpdf .NET PDF Library.

IsComposite Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] bool | n/a | Yes | Whether the font is a complex composite font.

Notes

Whether the font is a complex composite font.

Composite fonts are typically used for non-ASCII characters and complex writing systems.


FontObject IsIdentity Property. Whether the font is a composite glyph encoded identity font. ABCpdf .NET PDF Library.

IsIdentity Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | n/a | Yes | Whether the font is a composite glyph encoded identity font

Notes

Whether the font is a composite glyph encoded identity font.

The normal way to identify a character in a font is to use a standard such as ASCII. Language encodings such as Latin work this way.

For characters outside this range the PDF format allows you to reference font glyphs directly using the glyph index within the font. This is known as an identity encoding. Language encodings such as Unicode work this way.

Identity encodings are very flexible but they do hardwire the document to a particular font file and as such the font must be embdded. Care should be taken when operating on identty encoded embedded font files.


FontObject IsSubset Property. Whether the font contains an embedded subset. ABCpdf .NET PDF Library.

IsSubset Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] bool | n/a | Yes | Whether the font contains an embedded subset.

Notes

Whether the font contains an embedded subset.


FontObject IsVertical Property. Whether the font is for vertical writing. ABCpdf .NET PDF Library.

IsVertical Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] bool | n/a | Yes | Whether the font is for vertical writing.

Notes

Whether the font is for vertical writing.

Some languages may be written vertically instead of horizontally. As well as the direction of flow often there are often specific forms of characters for the different directions.


FontObject WritingMode Property. Gets the font writing mode. ABCpdf .NET PDF Library.

WritingMode Property

Type | Default | Read Only | Description
[C#] WritingModeType [Visual Basic] WritingModeType | n/a | Yes | Gets the font writing mode.

Notes

Gets the font writing mode.

The WritingModeType enum has two possible values:

  • Horizontal
  • Vertical


FontObject Widths Property. The widths of the characters in the font. ABCpdf .NET PDF Library.

Widths Property

Type | Default | Read Only | Description
[C#] IDictionary<char, int> [Visual Basic] IDictionary<char, int> | n/a | Yes | The widths of the characters in the font.

Notes

The character widths for all the characters in the font.

The array is indexable by Unicode value. For example to find the width of a space (ASCII 32) you would simply reference item 32 in the collection. The values are measured in in 1000ths of a PDF unit.

Font subsetting can result in characters being partially or completely removed from a font. ABCpdf will attempt to ensure that the Widths collection only contains entries for valid characters. However sometimes it is difficult to tell and as such you cannot rely on a character being present simply because it has a width.

Example

The example below shows how to add text on a curve and text flowing round a circle.

[C#]

string theFont = "Comic Sans MS";
string theText = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae...";
string theTitle = "Commentarii de Bello Gallico";
using (Doc doc = new Doc()) {
  doc.FontSize = 36;
  doc.TextStyle.Kerning = XTextStyle.KerningType.None;
  doc.Font = doc.EmbedFont(theFont, LanguageType.Latin, false, true, false);
  // add some radial text in the top middle of the page
  double cx = doc.MediaBox.Width * 0.5;
  double cy = doc.MediaBox.Height * 0.6;
  double r = doc.MediaBox.Width * 0.3;
  CurvedText.AddRadial(doc, theText, cx, cy, r, 225, true, false);
  // add some curved text to a rectangle
  double width = doc.MeasureText(theTitle);
  doc.Rect.SetRect(100, 100, width, doc.FontSize * 1.5);
  doc.FrameRect();
  CurvedText.AddCurved(doc, theTitle);
  // save
  doc.Save(Server.MapPath("ExampleCurvedText.pdf"));
}

[Visual Basic]
Dim theFont As String = "Comic Sans MS"
Dim theText As String = "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae..."
Dim theTitle As String = "Commentarii de Bello Gallico"
Using doc As New Doc()
  doc.FontSize = 36
  doc.TextStyle.Kerning = XTextStyle.KerningType.None
  doc.Font = doc.EmbedFont(theFont, LanguageType.Latin, False, True, False)
  ' add some radial text in the top middle of the page
  Dim cx As Double = doc.MediaBox.Width * 0.5
  Dim cy As Double = doc.MediaBox.Height * 0.6
  Dim r As Double = doc.MediaBox.Width * 0.3
  CurvedText.AddRadial(doc, theText, cx, cy, r, 225, _
    True, False)
  ' add some curved text to a rectangle
  Dim width As Double = doc.MeasureText(theTitle)
  doc.Rect.SetRect(100, 100, width, doc.FontSize * 1.5)
  doc.FrameRect()
  CurvedText.AddCurved(doc, theTitle)
  ' save
  doc.Save(Server.MapPath("ExampleCurvedText.pdf"))
End Using

[C#]

class CurvedText {
  public static void AddCurved(Doc doc, string text) {
    double halfWidth = doc.Rect.Width / 2;
    double height = doc.Rect.Height - doc.TextStyle.Size;
    double radius = ((halfWidth * halfWidth) + (height * height)) / (2 * height);
    double centerX = doc.Rect.Left + halfWidth;
    double centerY = doc.Rect.Bottom + radius + doc.TextStyle.Size;
    double alpha = Math.Asin(halfWidth / radius) - Math.PI;
    AddRadial(doc, text, centerX, centerY, radius, RadiansToDegrees(alpha), true, false);
  }

  public static void AddRadial(Doc doc, string text, double centerX, double centerY, double radius, double startAngleDegrees, bool inside, bool clockwise) {
    FontObject font = doc.ObjectSoup[doc.Font] as FontObject;
    IDictionary<char, int> widths = font.Widths;
    int n = text.Length;
    double a = DegreesToRadians(startAngleDegrees);
    double fontWidthToRadians = doc.TextStyle.Size / (radius * 1000);
    doc.Rect.String = doc.MediaBox.String;
    for (int i = 0; i < n; i++) {
      // work out position
      double x = centerX + (Math.Sin(a) * radius);
      double y = centerY + (Math.Cos(a) * radius);
      // add a character
      doc.Pos.X = x;
      doc.Pos.Y = y;
      doc.Transform.Reset();
      double charRotation = inside ? RadiansToDegrees(-a) + 180 : RadiansToDegrees(-a);
      doc.Transform.Rotate(charRotation, x, y);
      doc.AddText(text[i].ToString());
      // increment angle
      double da = Convert.ToDouble(widths[text[i]]) * fontWidthToRadians;
      a += clockwise ? da : -da;
    }
    doc.Transform.Reset();
  }

  private static double DegreesToRadians(double degrees) {
    return degrees * Math.PI / 180;
  }

  private static double RadiansToDegrees(double radians) {
    return radians * 180 / Math.PI;
  }
}

[Visual Basic]
Private Class CurvedText
  Public Shared Sub AddCurved(doc As Doc, text As String)
    Dim halfWidth As Double = doc.Rect.Width / 2
    Dim height As Double = doc.Rect.Height - doc.TextStyle.Size
    Dim radius As Double = ((halfWidth * halfWidth) + (height * height)) / (2 * height)
    Dim centerX As Double = doc.Rect.Left + halfWidth
    Dim centerY As Double = doc.Rect.Bottom + radius + doc.TextStyle.Size
    Dim alpha As Double = Math.Asin(halfWidth / radius) - Math.PI
    AddRadial(doc, text, centerX, centerY, radius, RadiansToDegrees(alpha), _
      True, False)
  End Sub

  Public Shared Sub AddRadial(doc As Doc, text As String, centerX As Double, centerY As Double, radius As Double, startAngleDegrees As Double, _
    inside As Boolean, clockwise As Boolean)
    Dim font As FontObject = TryCast(doc.ObjectSoup(doc.Font), FontObject)
    Dim widths As IDictionary(Of Char, Integer) = font.Widths
    Dim n As Integer = text.Length
    Dim a As Double = DegreesToRadians(startAngleDegrees)
    Dim fontWidthToRadians As Double = doc.TextStyle.Size / (radius * 1000)
    doc.Rect.String = doc.MediaBox.[String]
    Dim i As Integer = 0
    While i < n
      ' work out position
      Dim x As Double = centerX + (Math.Sin(a) * radius)
      Dim y As Double = centerY + (Math.Cos(a) * radius)
      ' add a character
      doc.Pos.X = x
      doc.Pos.Y = y
      doc.Transform.Reset()
      Dim charRotation As Double = If(inside, RadiansToDegrees(-a) + 180, RadiansToDegrees(-a))
      doc.Transform.Rotate(charRotation, x, y)
      doc.AddText(text(i).ToString())
      ' increment angle
      Dim da As Double = Convert.ToDouble(widths(text(i))) * fontWidthToRadians
      a += If(clockwise, da, -da)
      System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
    End While
    doc.Transform.Reset()
  End Sub

  Private Shared Function DegreesToRadians(degrees As Double) As Double
    Return degrees * Math.PI / 180
  End Function

  Private Shared Function RadiansToDegrees(radians As Double) As Double
    Return radians * 180 / Math.PI
  End Function
End Class

ExampleCurvedText.pdf


FontObject CharToEncoding Property. The Unicode to glyph mapping table for all the characters in the font. ABCpdf .NET PDF Library.

CharToEncoding Property

Type | Default Value | Read Only | Description
[C#] IDictionary<char, char> [Visual Basic] IDictionary<char, char> | n/a | Yes | The Unicode to glyph mapping table for all the characters in the font

Notes

The Unicode to glyph mapping table for all the characters in the font.

In this context, the glyph value is the value which occurs in the content stream when using this font. While the encoding used is often similar to ASCII, it may vary cionsiderably depending on the way the font has been included in the PDF.

To map from the glyph encoding to a Unicode character see EncodingToChar.


FontObject CheckGlyphs Property. Whether to exclude invalid glyphs from our lookup tables. ABCpdf .NET PDF Library.

CheckGlyphs Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to exclude invalid glyphs from our lookup tables

Notes

Whether to exclude invalid glyphs from our lookup tables.

When fonts are subsetted the glyphs in the tables may be rendered invalid because they are not used. The encoding continues to exist but the information required to draw the glyphs has been lost. As such it is not a good idea to attempt to use these glyphs even though they may appear to be part of the font.

By default we attempt to detect such glyphs and exclude them from any operations or font properties such as the EncodingToChar and CharToEncoding mappings. This prevents them being used inadvertently.


FontObject DefaultWidth Property. The default character width. ABCpdf .NET PDF Library.

DefaultWidth Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | Yes | The default character width.

Notes
The default character width in thousandths of a unit for any character which does not have a defined width.


FontObject EncodingToChar Property. The glyph to Unicode mapping table for all the characters in the font. ABCpdf .NET PDF Library.

EncodingToChar Property

Type | Default Value | Read Only | Description
[C#] IDictionary<char, char> [Visual Basic] IDictionary<char, char> | 0? | No? | The glyph to Unicode mapping table for all the characters in the font

Notes

The glyph to Unicode mapping table for all the characters in the font.

In this context, the glyph value is the value which occurs in the content stream when using this font. While the encoding used is often similar to ASCII it may vary cionsiderably depending on the way the font has been included in the PDF.

Typically you would use the StringAtom Decode or DecodeDoubleByte methods to allow text operator parameters to be decoded into the base text encoding. These can then be passed through the FontObject EncodingToChar and EncodingToString properties to allow mapping from the text encoding through to Unicode values.

To map from a Unicode character to the glyph encoding see CharToEncoding.


FontObject EncodingToString Property. The glyph to Unicode string mapping table. ABCpdf .NET PDF Library.

EncodingToString Property

Type | Default Value | Read Only | Description
[C#] IDictionary<char, string> [Visual Basic] IDictionary<Char, String> | n/a | Yes | The glyph to Unicode string mapping table.

Notes

The glyph to Unicode string mapping table for all the characters in the font that contain one.

Most glyphs map to a single Unicode character. However in some circumstances it may be necessary to map one glyph to a sequence of characters. For example the sequence "ffl" may be represented as one glyph in a font. If there is no Unicode encoding for this type of ligature then it will need to map back to a string rather than a single Unicode character.

Typically you would use the StringAtom Decode or DecodeDoubleByte methods to allow text operator parameters to be decoded into the base text encoding. These can then be passed through the FontObject EncodingToChar and EncodingToString properties to allow mapping from the text encoding through to Unicode values.

String encodings are unusual and this property is normally empty. If it is populated it should be viewed as a supplement and an override for the EncodingToChar and CharToEncoding mappings.


FontObject Flags Property. The Font Descriptor Flags entry. ABCpdf .NET PDF Library.

Flags Property

Type | Default Value | Read Only | Description
[C#] FontFlags [Visual Basic] FontFlags | n/a | No | The Font Descriptor Flags entry

Notes

The Font Descriptor Flags entry.

The FontFlags type is a flags type enumeration so the different values can be combined together using bitwise operations. It may take the following values:

  • FixedPitch (All glyphs have the same width; as opposed to proportional or variable-pitch fonts, which have different widths)
  • Serif (Glyphs have serifs - short strokes drawn at an angle on the top and bottom of glyph stems. Sans serif fonts do not have serifs)
  • Symbolic (Font contains glyphs outside the Adobe standard Latin character set. This flag and the Nonsymbolic flag are mutually exclusive)
  • Script (Glyphs look like cursive handwriting)
  • Nonsymbolic (Font uses the Adobe standard Latin character set or a subset of it)
  • Italic (Glyphs have slanted dominant vertical strokes)
  • AllCap (Font contains no lowercase letters)
  • SmallCap (Lower case letters in this font look like smaller versions of their upper case equivalents)
  • ForceBold (Whether bold glyphs shall be painted with extra pixels even at very small text sizes)

The flags detailed here are descriptive. So reading them from an existent font object will provide information on the style. However changing them will not necessarily change it. If the font is referenced then the viewing application will need to find an appropriate system font and it should try to take account of these flags. However if the fonts is embedded then changing the flags will not change the underlying embedded font. Make sure you understand these concepts before you change these values.

How do I manipulate flags enumerations?

To check a flag you can write code of the following form:

[C#]

bool isSymbolic = font.Flags.HasFlag(FontObject.FontFlags.Symbolic);

[Visual Basic]
Dim isSymbolic As Boolean = font.Flags.HasFlag(FontObject.FontFlags.Symbolic)

To set the flag:

[C#]

font.Flags |= FontObject.FontFlags.Symbolic;

[Visual Basic]
font.Flags = font.Flags Or FontObject.FontFlags.Symbolic

To clear the flag:

[C#]

font.Flags &= !FontObject.FontFlags.Symbolic;

[Visual Basic]
font.Flags = font.Flags And Not FontObject.FontFlags.Symbolic


FontObject FontAscender Property. The ascender for the glyphs in this font. ABCpdf .NET PDF Library.

FontAscender Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer |  | Yes | The ascender for the glyphs in this font

Notes

The ascender for the glyphs in this font.

This corresponds to the sTypoAscender entry in the 'OS/2' TrueType table.


FontObject FontAscent Property. The ascent for the glyphs in this font. ABCpdf .NET PDF Library.

FontAscent Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The ascent for the glyphs in this font

Notes

The ascent for the glyphs in this font.

This corresponds to the usWinAscent entry in the 'OS/2' TrueType table.


FontObject FontBBox Property. The bounding box for the glyphs in this font. ABCpdf .NET PDF Library.

FontBBox Property

Type | Default Value | Read Only | Description
[C#] XRect [Visual Basic] XRect | n/a | Yes | The bounding box for the glyphs in this font

Notes

The bounding box for the glyphs in this font.

This XRect corresponds to the xMin, xMax, yMin and yMax entries in the 'head' TrueType table.

The PDF format only supports a limited range of metrics so FontObjects read from PDF may contain some approximations compared with 'live' FontObjects which have been added using the Doc.AddFont or Doc.EmbedFont methods.


FontObject FontDescender Property. The descender for the glyphs in this font. ABCpdf .NET PDF Library.

FontDescender Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The descender for the glyphs in this font

Notes

The descender for the glyphs in this font.

This corresponds to the sTypoDescender entry in the 'OS/2' TrueType table.


FontObject FontDescent Property. The descent for the glyphs in this font. ABCpdf .NET PDF Library.

FontDescent Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The descent for the glyphs in this font

Notes

The descent for the glyphs in this font.

This corresponds to the usWinDescent entry in the 'OS/2' TrueType table.


FontObject FontLineGap Property. The line gap for the glyphs in this font. ABCpdf .NET PDF Library.

FontLineGap Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The line gap for the glyphs in this font

Notes

The line gap for the glyphs in this font.

This corresponds to the sTypoLineGap entry in the 'OS/2' TrueType table.


FontObject FontLineSpacing Property. The line spacing for the glyphs in this font. ABCpdf .NET PDF Library.

FontLineSpacing Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The line spacing for the glyphs in this font

Notes

The line spacing for the glyphs in this font.

This broadly reflects the distance in 1000ths between the bottom of the lowest descender and the top of the highest ascender on two subsequent lines. We follow Microsoft best practice on this metric and vary the calculations depending on whether bit 7 of the fsSelection entry in the 'OS/2' TrueType table is set or not. However it is worth noting that many items of software including Microsoft flagship products do not.

The PDF format only supports a limited range of metrics so FontObjects read from PDF may contain some approximations compared with 'live' FontObjects which have been added using the Doc.AddFont or Doc.EmbedFont methods.


FontObject IsDescendent Property. Whether the font is a descendent of a complex composite font. ABCpdf .NET PDF Library.

IsDescendent Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] bool | n/a | Yes | Whether the font is a descendent of a complex composite font.

Notes

Whether the font is a descendent of a complex composite font.

Composite fonts are typically used for non-ASCII characters and complex writing systems.


FontObject NativeWidths Property. The character widths indexed by native character code. ABCpdf .NET PDF Library.

NativeWidths Property

Type | Default Value | Read Only | Description
[C#] IDictionary<int, int> [Visual Basic] IDictionary<int, int> | n/a | Yes | The character widths indexed by native character code.

Notes

The character widths in thousandths of a unit for characters in the font.

These values are indexed by native character code. If there is no entry for a particular character you should use the DefaultWidth.


FormXObject Class

A Form XObject is a self contained stream of graphics operations which can be referenced as a group.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.StreamObject
         WebSupergoo.ABCpdf12.Objects.FormXObject

Method | Description
AddResource | Add a particular type of resource.
GetResourceMap | Get a dictionary mapping the names of a particular type of resource to Atoms.
 | inherited methods...

Property | Description
BBox | The rect defining the bounding box of the graphic.
Matrix | The transformation matrix used for mapping the Form XObject space into user space.
 | inherited properties...


FormXObject AddResource Function. Add a particular type of resource. ABCpdf .NET PDF Library.

AddResource Function

Add a particular type of resource

Syntax

[C#]
string AddResource(IndirectObject resource, string type, string name)

[Visual Basic]
Function AddResource(resource As IndirectObject, type As String, name As String) As String

Params
Name | Description
resource | The resource to be added.
type | The type of resource.
name | The format of the name that should be used.

Notes

Add a particular type of resource to the Form XObject.

Form XObjects may contain default resources usable by the page content stream. The most common resource types are "Font", "XObject" and "ColorSpace". For further details see the PDF Specification.

This method allows you to add new resources to the Form XObject. You may supply your own name for the resource but if the name is already in use, it may need to be modified. For this reason the function returns the value which was actually used for the addition.


FormXObject GetResourceMap Function. Get a dictionary mapping the names of a particular type of resource to Atoms. ABCpdf .NET PDF Library.

GetResourceMap Function

Get a dictionary mapping the names of a particular type of resource to Atoms

Syntax

[C#]
IDictionary<string, Atom> GetResourceMap(string type)
IDictionary<string, Atom> GetResourceMap(string type, bool includeXObjects, bool includePatterns, ISet<int> skip, ISet<Atom> set)

[Visual Basic]
Function GetResourceMap(type As String) As IDictionary(Of string, Atom)
Function GetResourceMap(type As String, includeXObjects As Boolean, includePatterns As Boolean, skip As ISet{Of Integer}, set As System.Collections.Generic.ISet{Of Atom}) As IDictionary(Of string, Atom)

Params
Name | Description
type | The type of resource to be indexed.
includeXObjects | Whether to include resources from other Form XObjects referenced from this one.
includePatterns | Whether to include resources from Patterns referenced from this Form XObject.
skip | A set of IDs indicating IndirectObjects that should be skipped. This value may be null if you do not want to skip any items.
set | A set of IDs of all the resources that have been encountered. The set of resources is generally the same as the set of items in the returned dictionary, but may not be if resource names have clashed. This value may be null if you are not interested in the set.

Notes

Get a dictionary mapping the names of a particular type of resource to Atoms. The Atoms returned are typically RefAtom objects referring to an IndirectObject. However some resource types (notably color spaces) may be referred to direct.

It is unusual to look up just one resource name. Typically one has a sequence of resource names from a content stream which all need resolving. For this reason it is best to use this function to obtain a map which can then be cached.


FormXObject BBox Property. The rect defining the bounding box of the graphic. ABCpdf .NET PDF Library.

BBox Property

Type | Default Value | Read Only | Description
[C#] XRect [Visual Basic] XRect | n/a | No | The rect defining the bounding box of the graphic

Notes

The rect defining the bounding box of the graphic.

Content will be clipped to this area.


FormXObject Matrix Property. The transformation matrix used for mapping the Form XObject space into user space. ABCpdf .NET PDF Library.

Matrix Property

Type | Default Value | Read Only | Description
[C#] XTransform [Visual Basic] XTransform | n/a | No | The transformation matrix used for mapping the Form XObject space into user space

Notes

The transformation matrix used for mapping the Form XObject space into user space.

This entry may be null which signifies the identity matrix.


GraphicLayer Class

A generic graphic layer appearing on a page of the document.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.StreamObject
         WebSupergoo.ABCpdf12.Objects.Layer
            WebSupergoo.ABCpdf12.Objects.GraphicLayer

Method | Description
 | inherited methods...

Property | Description
 | inherited properties...


ContentStreamScanner GraphicsState Class

GraphicsState Class

A pre-specified graphics state.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.GraphicsState

Method | Description
 | inherited methods...

Property | Description
 | inherited properties...


IccProfile Class

An ICC Color Profile for a particular ColorSpace.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.StreamObject
         WebSupergoo.ABCpdf12.Objects.IccProfile

Method | Description
Throws Exceptions IccProfile | IccProfile Constructor.
Throws Exceptions SetData | Set the raw binary content of the stream.
UpdateProfile | Updates this object to reflect the values contained within the embedded ICC color profile data.
 | inherited methods...

Property | Description
AlternateColorSpaceType | The alternate color space for this ICC color profile.
 | inherited properties...


IccProfile IccProfile Function. IccProfile Constructor. ABCpdf .NET PDF Library.

IccProfile Constructor

IccProfile Constructor.

Syntax

[C#]
IccProfile(ObjectSoup soup, byte[] data)
IccProfile(ObjectSoup soup, string path)

[Visual Basic]
Sub New(soup As ObjectSoup, data() As Byte)
Sub New(soup As ObjectSoup, path As String)

Throws Exceptions may throw Exception()

Params
Name | Description
soup | The ObjectSoup to contain the newly created IccProfile.
data | An ICC profile stored in an array of bytes.
path | A path to an ICC file.

Notes

Create an IccProfile object.

If the content provided is not a valid ICC profile then an exception will be thrown.

Example

See the PixMap.Recolor function.


IccProfile SetData Function. Set the raw binary content of the stream. ABCpdf .NET PDF Library.

SetData Function

Set the raw binary content of the stream.

Syntax

[C#]
override void SetData(byte[] value)

[Visual Basic]
Overrides Sub SetData(value() As Byte)

Throws Exceptions may throw Exception()

Params
Name | Description
value | The raw binary content of the stream.

Notes

Set the raw binary content of the stream.

This function overrides the StreamObject.SetData function.

If the StreamObject currently contains compressed data or if the content provided is not a valid ICC profile then an exception will be thrown.


IccProfile UpdateProfile Function. Updates this object to reflect the values contained within the embedded ICC color profile data. ABCpdf .NET PDF Library.

UpdateProfile Function

Updates this object to reflect the values contained within the embedded ICC color profile data

Syntax

[C#]
bool UpdateProfile()

[Visual Basic]
Overridable UpdateProfile() As Boolean

Params
Name | Description
return | Whether the operation was successful.

Notes

Updates this object to reflect the values contained within the embedded ICC color profile data.

If the ICC profile was absent or corrupt then the return value will be false.


IccProfile AlternateColorSpaceType Property. The alternate color space for this ICC color profile. ABCpdf .NET PDF Library.

AlternateColorSpaceType Property

Type | Default Value | Read Only | Description
[C#] ColorSpaceType [Visual Basic] ColorSpaceType | n/a | Yes | The alternate color space for this ICC color profile

Notes

The alternate color space for this ICC color profile.

The alternate color space generally indicates the base color space type such as DeviceRGB or DeviceCMYK. This is useful to know if you are attempting to find out the core type of color space referenced by an ICC color profile.

In the situation that no alternate color space is available, one can be generated using the UpdateProfile function.


ImageLayer Class

A generic bitmap layer appearing on a page of the document.

The actual bitmap data is held separately in a PixMap object. The ImageLayer merely references the bitmap and describes where and how it should be drawn. This is analogous to the way that images are embedded in HTML.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.StreamObject
         WebSupergoo.ABCpdf12.Objects.Layer
            WebSupergoo.ABCpdf12.Objects.ImageLayer

Method | Description
 | inherited methods...

Property | Description
ImageName | The name used to identify the PixMap in the Page resources.
PixMap | The PixMap containing the image data.
 | inherited properties...


ImageLayer ImageName Property. The name used to identify the PixMap in the Page resources. ABCpdf .NET PDF Library.

ImageName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | n/a | Yes | The name used to identify the PixMap in the Page resources

Notes

The name used to identify the PixMap in the Page resources.


ImageLayer PixMap Property. The PixMap containing the image data. ABCpdf .NET PDF Library.

PixMap Property

Type | Default | Read Only | Description
[C#] PixMap [Visual Basic] PixMap | n/a | Yes | The PixMap containing the image data.

Notes

The PixMap containing the image data.


Layer Class

A layer of visible content on a page.

Each time content is added to a page a new layer is created. Different kinds of layers are created for different types of content. For example the AddText method will result in the creation of a TextLayer and the AddImage one will produce an ImageLayer.

A layer corresponds to a stream object referenced from the Page Contents array. The Page.Flatten method concatenates all the stream and then compresses them to save space.

Note that this type of layer is an ABCpdf construct that you cannot detect using Acrobat. Acrobat layers are something completely different and are more precisely known as Optional Content Groups (OCGs). See the Doc.Layer property for details of how to construct and manipulate this type of optional layer.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.StreamObject
         WebSupergoo.ABCpdf12.Objects.Layer
            WebSupergoo.ABCpdf12.Objects.GraphicLayer
            WebSupergoo.ABCpdf12.Objects.ImageLayer
            WebSupergoo.ABCpdf12.Objects.TextLayer
            WebSupergoo.ABCpdf12.Objects.ViewLayer

Method | Description
 | inherited methods...

Property | Description
BaseRect | The untransformed rect defining the bounds of the visible content on the page.
Page | The Page on which the Layer is located.
Rect | The transformed rect defining the bounds of the visible content.
Transform | The transform which has been applied to the visible content.
 | inherited properties...


Layer BaseRect Property. The untransformed rect defining the bounds of the visible content on the page. ABCpdf .NET PDF Library.

BaseRect Property

Type | Default Value | Read Only | Description
[C#] XRect [Visual Basic] XRect | n/a | No | The untransformed rect defining the bounds of the visible content on the page

Notes

The untransformed XRect defining the bounds of the visible content on the page.

This rectangle is encoded in PDF coordinates rather than any abstracted coordinate space.

You can change this value but this does not alter the content on the page.


Layer Page Property. The Page on which the Layer is located. ABCpdf .NET PDF Library.

Page Property

Type | Default Value | Read Only | Description
[C#] Page [Visual Basic] Page | n/a | Yes | The Page on which the Layer is located

Notes

The Page on which the Layer is located.

While Layers are normally only referenced from one page, it is possible to reference them from multiple. This property reflects the orginal Page for which this layer was created.


Layer Rect Property. The transformed rect defining the bounds of the visible content. ABCpdf .NET PDF Library.

Rect Property

Type | Default | Read Only | Description
[C#] XRect [Visual Basic] XRect | n/a | Yes | The transformed rect defining the bounds of the visible content.

Notes

The transformed XRect defining the bounds of the visible content.

This rectangle is encoded in PDF coordinates rather than any abstracted coordinate space.


Layer Transform Property. The transform which has been applied to the visible content. ABCpdf .NET PDF Library.

Transform Property

Type | Default Value | Read Only | Description
[C#] XTransform [Visual Basic] XTransform | n/a | Yes | The transform which has been applied to the visible content

Notes

The transform which has been applied to the visible content.


Metadata Class

An XMP Metadata stream.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.StreamObject
         WebSupergoo.ABCpdf12.Objects.Metadata

Method | Description
Metadata | Metadata constructor.
Equals | Test whether the two Metadata objects are the same.
 | inherited methods...

Property | Description
InfoTitle | The Title entry within the Metadata.
InfoAuthor | The Author entry within the Metadata.
InfoSubject | The Subject entry within the Metadata.
InfoKeywords | The Keywords entry within the Metadata.
InfoCreator | The Creator entry within the Metadata.
InfoProducer | The Producer entry within the Metadata.
InfoCreationDate | The CreationDate entry within the Metadata.
InfoModDate | The ModDate entry within the Metadata.
 | inherited properties...


Metadata Metadata Function. Metadata constructor. ABCpdf .NET PDF Library.

Metadata Function

Metadata constructor

Syntax

[C#]
Metadata(objectSoup soup)
Metadata(objectSoup soup, string path)
Metadata(objectSoup soup, byte[] data)

[Visual Basic]
Metadata(soup As ObjectSoup)
Metadata(soup As ObjectSoup, path As Stringpath)
Metadata(soup As ObjectSoup, data() As Byte)

Params
Name | Description
soup | The ObjectSoup to contain the newly created Metadata.
path | A path to a file containing data which should be placed in the Metadata.
data | An array of bytes which should be placed in the Metadata.

Notes

Metadata constructor.


Metadata Equals Function. Test whether the two Metadata objects are the same. ABCpdf .NET PDF Library.

Equals Function

Test whether the two Metadata objects are the same

Syntax

[C#]
virtual bool Equals(Metadata other)

[Visual Basic]
Overridable Function Equals(other As Metadata) As Boolean

Params
Name | Description
other | The Metadata to test against.
return | Whether the Metadata objects are equal.

Notes

Test whether the two Metadata objects are the same.


Metadata InfoTitle Property. The Title entry within the Metadata. ABCpdf .NET PDF Library.

InfoTitle Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | The Title entry within the Metadata

Notes

The Title entry within the Metadata.

This corresponds to the dc:title entry.


Metadata InfoAuthor Property. The Author entry within the Metadata. ABCpdf .NET PDF Library.

InfoAuthor Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | The Author entry within the Metadata

Notes

The Author entry within the Metadata.

This corresponds to the dc:creator entry.

The PDF 2.0 Specification states that this corresponds to the dc:author entry, but this seems to be a mistake since all related specifications and indeed all examples in the PDF 2.0 specification use the dc:creator.


Metadata InfoSubject Property. The Subject entry within the Metadata. ABCpdf .NET PDF Library.

InfoSubject Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | The Subject entry within the Metadata

Notes

The Subject entry within the Metadata.

This corresponds to the dc:description entry.


Metadata InfoKeywords Property. The Keywords entry within the Metadata. ABCpdf .NET PDF Library.

InfoKeywords Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | The Keywords entry within the Metadata

Notes

The Keywords entry within the Metadata.

This corresponds to the pdf:Keywords entry.


Metadata InfoCreator Property. The Creator entry within the Metadata. ABCpdf .NET PDF Library.

InfoCreator Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | The Creator entry within the Metadata

Notes

The Creator entry within the Metadata.

This corresponds to the xmp:CreatorTool entry.


Metadata InfoProducer Property. The Producer entry within the Metadata. ABCpdf .NET PDF Library.

InfoProducer Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | The Producer entry within the Metadata

Notes

The Producer entry within the Metadata.

This corresponds to the pdf:Producer entry.


Metadata InfoCreationDate Property. The CreationDate entry within the Metadata. ABCpdf .NET PDF Library.

InfoCreationDate Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | The CreationDate entry within the Metadata

Notes

The CreationDate entry within the Metadata.

This corresponds to the xmp:CreateDate entry.

Use StringAtom.StringToDate and DateToString to convert between DateTime and string formats.


Metadata InfoModDate Property. The ModDate entry within the Metadata. ABCpdf .NET PDF Library.

InfoModDate Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | The ModDate entry within the Metadata

Notes

The ModDate entry within the Metadata.

This corresponds to the xmp:ModifyDate entry.

Use StringAtom.StringToDate and DateToString to convert between DateTime and string formats.


Outline Class

The top level outline item.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Bookmark
         WebSupergoo.ABCpdf12.Objects.Outline

Method | Description
 | inherited methods...

Property | Description
 | inherited properties...


Page Class

A visible page within the document.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Page

Method | Description
Throws Exceptions DeInline | Makes any inline images into external images.
Detach | Detaches a content stream from the page.
Flatten | Flatten and compress the page content stream.
GetAnnotations | Gets all the Annotations on the page.
GetLayers | Gets all the content Layers for the page.
GetNamedSeparations | Gets all the named separations referenced by the page.
GetResourcesByType | Get all the resources of a named type, optionally including any used by referenced objects.
GetResourceMap | Get a dictionary mapping the names of a particular type of resource to Atoms.
GetText | Extract content from the current page in a specified format.
Throws Exceptions Recolor | Converts the page from one color space to another.
Throws Exceptions VectorizeText | Replaces the text on the page with glyph outlines.
AddLayer | Add a content layer at the front of the page.
AddResource | Add a particular type of resource to the page.
Throws Exceptions GetBitmap | Render one or more layers on the current page.
GetContentData | Gets the decompressed content data from the page.
MakeFormXObject | Makes a FormXObject out of the page.
Rotate | Rotates the page by a multiple of ninety degrees.
StampFormXObjects | Removes all Form XObjects from the page by embedding them into the page content.
Transform | Transform the page contents and page bounding boxes.

Property | Description
ArtBox | The ArtBox for the page.
BleedBox | The BleedBox for the page.
Throws Exceptions CropBox | The CropBox for the page.
Throws Exceptions MediaBox | The MediaBox for the page.
PageNumber | The number of the page in the document.
Parent | The parent of this page.
Rotation | The number of degrees to rotate the page before display.
Thumbnail | The Thumbnail for the page.
TrimBox | The TrimBox for the page.


Page DeInline Function. Makes any inline images into external images. ABCpdf .NET PDF Library.

DeInline Function

Makes any inline images into external images.

Syntax

[C#]
void DeInline(bool convertAnnotations)
void DeInline(bool convertAnnotations, out PixMap[] detachedPixMaps)

[Visual Basic]
Sub DeInline(convertAnnotations As Boolean)
Sub DeInline(convertAnnotations As Boolean, <Out> ByRef detachedPixMaps As PixMap())

Throws Exceptions may throw Exception()

Params
Name | Description
convertAnnotations | Whether to convert the color space of annotation appearance streams.
detachedPixMaps | All the PixMaps which were extracted as a result of the call.

Notes

Makes any inline images into external images.

Images in PDF documents are generally held as external object and are then referenced from the page content stream. However it is also possible to inline small images and embed the binary image data directly into the PDF content stream. This is not always desirable as it complicates certain types of PDF processing.

This method allows you to extract such inline images and convert them into standard external PixMap objects.


Page Detach Function. Detaches a content stream from the page. ABCpdf .NET PDF Library.

Detach Function

Detaches a content stream from the page.

Syntax

[C#]
void Detach(StreamObject layer)

[Visual Basic]
Sub Detach(layer As StreamObject)

Params
Name | Description
layer | The stream to detach from the page.

Notes

Detaches a content stream from the page.

The layer is not deleted it is simply that any reference to it is removed from the page.


Page Flatten Function. Flatten and compress the page content stream. ABCpdf .NET PDF Library.

Flatten Function

Flatten and compress the page content stream.

Syntax

[C#]
bool Flatten()
bool Flatten(bool force)
bool Flatten(bool force, bool compress)

[Visual Basic]
Function Flatten() As Boolean
Function Flatten(force As Boolean) As Boolean
Function Flatten(force As Boolean, compress As Boolean) As Boolean

Params
Name | Description
force | Whether to force the flattening even if the streams contain extra information which might be lost - default false.
compress | Whether to compress the resulting stream or whether to leave it as undetermined compression - default true. This value is only relevant if force is true.
return | Whether the page is flat.

Notes

Objects added to a page are stored as individual layers. Calling this method combines all the layers on the current page and then re-compresses the layer data.

This method is the same as the Doc.Flatten method. However the 'force' parameter can be used to force the page to be flattened even when the Doc.Flatten method would be more cautious.

The Doc.Flatten method is cautious because different layers can be tagged with different information. Flattening the page will result in this type of information being lost. This type of tagging is not something that is defined in the PDF specification but it is possible that various third party applications may make use of proprietary techniques like this to add extra information to the document.

However for some types of operations a failure to flatten the page can be very inconvenient. For example it is possible to split PDF drawing operations over more than one content stream. If you are analyzing and updating a page using the Doc.GetText method to identify the locations of PDF operators, it can be very tiresome to deal with this type of construct.


Page GetAnnotations Function. Gets all the Annotations on the page. ABCpdf .NET PDF Library.

GetAnnotations Function

Gets all the Annotations on the page.

Syntax

[C#]
Annotation[] GetAnnotations()

[Visual Basic]
Function GetAnnotations() As Annotation()

Params
Name | Description
return | An array of all the Annotations on the page.

Notes

Gets all the Annotations on the page.


Page GetLayers Function. Gets all the content Layers for the page. ABCpdf .NET PDF Library.

GetLayers Function

Gets all the content Layers for the page.

Syntax

[C#]
StreamObject[] GetLayers()

[Visual Basic]
Function GetLayers() As StreamObject()

Params
Name | Description
return | An array of all the content Layers on the page.

Notes

Gets all the content Layers for the page.


Page GetNamedSeparations Function. Gets all the named separations referenced by the page. ABCpdf .NET PDF Library.

GetNamedSeparations Function

Gets all the named separations referenced by the page.

Syntax

[C#]
string[] GetNamedSeparations()

[Visual Basic]
Function GetNamedSeparations() As String()

Params
Name | Description
return | An array of the names of the separations.

Notes

Gets the names of all the separations referenced by the page.

In general named separations (ink names) are referenced on a page because they are used on that page.

However this is not a necessary truth. A spot color separation can be referenced but never used.


Page GetResourcesByType Function. Get all the resources of a named type, optionally including any used by referenced objects. ABCpdf .NET PDF Library.

GetResourcesByType Function

Get all the resources of a named type, optionally including any used by referenced objects.

Syntax

[C#]
ISet<Atom> GetResourcesByType(string type, bool annotations, bool patterns, bool xobjects, bool parents, ISet<int> skip)

[Visual Basic]
Function GetResourcesByType(type As String, annotations As Boolean, patterns As Boolean, xobjects As Boolean, parents As Boolean, skip As ISet(Of Integer)) As ISet(Of Atom)

Params
Name | Description
type | The type of resource to be found.
annotations | Whether to include resources in annotations.
patterns | Whether to include resources in pattern dictionaries.
xobjects | Whether to include resources in referenced Form XObjects.
parents | Whether to include resources in parent objects.
skip | A set of IndirectObject IDs that should be skipped when performing the scan. May be null.
return | A set of matching resource Atoms.

Notes

Get all the resources of a named type, optionally including any used by referenced objects.

This can, for example, be used to find all the FontObjects referenced in the "Font" section of the page. Optionally you can include annotations, patterns, Form XObjects and parent objects in the scan and generally this is something you will want to do.

If you are performing multiple operations of this type you may wish to include a set of IndirectObject IDs that should be skipped. On return the set will have been updated and all the new IndirectObjects that have been scanned will have been added.


Page GetResourceMap Function. Get a dictionary mapping the names of a particular type of resource to Atoms. ABCpdf .NET PDF Library.

GetResourceMap Function

Get a dictionary mapping the names of a particular type of resource to Atoms.

Syntax

[C#]
IDictionary<string, Atom> GetResourceMap(int id, string type)

[Visual Basic]
Function GetResourceMap(int id, string type) As IDictionary(Of Atom)

Params
Name | Description
id | The ID of the resource containing object. This is typically the Page ID but you may also use a Form XObject ID.
type | The type of resource to be found - Font, XObject, ExtGState, ColorSpace, Pattern, Shading or ProcSet.
return | A dictionary mapping resource names to Atoms.

Notes

Get a dictionary mapping the names of a particular type of resource to Atoms. The Atoms returned are typically RefAtom objects referring to an IndirectObject. However some resource types (notably color spaces) may be referred to direct.

It is unusual to look up just one resource name. Typically one has a sequence of resource names from a content stream which all need resolving. For this reason it is best to use this function to obtain a map which can then be cached.

For resources referenced from the content stream of a page you should pass the ID of the page as this is the containing object. For resources referenced from a Form XObject stream you should pass the ID of the Form XObject as this is the containing object.


Page GetText Function. Extract content from the current page in a specified format. ABCpdf .NET PDF Library.

GetText Function

Extract content from the current page in a specified format.

Syntax

[C#]
string GetText(TextType type, bool includeAnnotations)
string GetText(TextType type, bool includeAnnotations, bool includePaths, bool includeText, bool includeImages, bool includeColors)
string GetText(TextType type, bool includeAnnotations, bool includePaths, bool includeText, bool includeImages, bool includeColors, bool useMinimumLineWidth, bool autoRotate)

[Visual Basic]
Function GetText(type As TextType, includeAnnotations As Boolean) As String
Function GetText(type As TextType, includeAnnotations As Boolean, includePaths As Boolean, includeText As Boolean, includeImages As Boolean, includeColors As Boolean) As String
Function GetText(type As TextType, includeAnnotations As Boolean, includePaths As Boolean, includeText As Boolean, includeImages As Boolean, includeColors As Boolean, useMinimumLineWidth As Boolean, autoRotate As Boolean) As String

Params
Name | Description
type | The format in which to return the content.
includeAnnotations | Whether to include field and annotation text.
includePaths | Whether to include graphics paths and path operators in the output (ignored for Text and RawText). Default true.
includeText | Whether to include text and text operators in the output (ignored for Text and RawText). Default true.
includeImages | Whether to include image placeholders in the output (ignored for Text and RawText). Default true.
includeColors | Whether to include colors and color operators in the output (ignored for Text and RawText). Default true.
useMinimumLineWidth | Whether to use the Rendering.MinimumLineWidth property (ignored for Text and RawText). Default false.
autoRotate | Whether to rotate PDF pages which are tagged as to be rotated for viewing (ignored for Text and RawText). Default false.
return | An array of the names of the separations.

Notes

The TextType enumeration may take the following values:

  • Text
  • RawText
  • Svg
  • SvgPlus
  • SvgPlus2

Text is in layout order, which may not be the same as reading order. ABCpdf will make sensible assumptions on how items of text should be combined, but some situations are ambiguous. The TextType.Text format provides sophisticated text analysis and interpolation for a more human readable output. The TextType.RawText format is faster and simpler and provides a more literal interpretation of the text in the document.

SVG is an XML based format for representing vector graphics. Because SVG is standard XML, it's easy to parse and gives you the precise position of each item of text on the page. The way that ABCpdf constructs the SVG should make it easy to extract any information you require. ABCpdf currently supports SVG text, paths and image placeholders.

For example, a simple "Hello World" PDF might produce the following content:

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="612" height="792" x="0" y="0">
<text x="0" y="76.8" font-size="96" font-family="Times-Roman" >Hello World</text>
</svg>

SVG+ and SVG+2 are annotated forms of SVG which include details of the PDF operators and how they relate to the items of content in the SVG. They can be very useful if you are trying to deconstruct a page and determine how objects in the PDF relate to objects in the SVG. In SVG+, SVG elements appear before the pdf elements for their generating operators, and the pdf elements for the Do operator on Form XObjects are not generated. In SVG+2, SVG elements appear after the pdf elements of their generating operators, and the pdf elements for the Do operator on Form XObjects are generated.

For example, you could use SVG+ to identify the section of a PDF stream that relates to a particular word on a page. You could then replace the text show operator for that word with another one. Effectively, you'd be performing a low-level Search/Replace on the PDF document. However, you should note that this would not mean that your layout would automatically adjust if - for example - you were to replace a short word with a long one.

There is no official standard for SVG+, but if you are familiar with the PDF specification, it should be easy enough to understand.

For example, a simple "Hello World" PDF might produce the following content:

<?xml version="1.0" standalone="no"?>
<!DOCTYPE
              svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
              width="612" height="792" x="0" y="0">
<pdf pdf_Op="q"
              pdf_StreamID="5" pdf_StreamOffset="0" pdf_StreamLength="1"
              />
<pdf pdf_Op="BT" pdf_StreamID="5" pdf_StreamOffset="3"
              pdf_StreamLength="2" />
<pdf pdf_Op="0 Tr" pdf_StreamID="5"
              pdf_StreamOffset="7" pdf_StreamLength="4" />
<pdf
              pdf_Op="/Fabc6 96 Tf" pdf_StreamID="5" pdf_StreamOffset="13"
              pdf_StreamLength="12" />
<pdf pdf_Op="0 0 0 rg"
              pdf_StreamID="5" pdf_StreamOffset="27" pdf_StreamLength="8"
              />
<pdf pdf_Op="1 0 0 1 0 715.2 Tm" pdf_StreamID="5"
              pdf_StreamOffset="37" pdf_StreamLength="18" />
<pdf
              pdf_Op="0 Ts" pdf_StreamID="5" pdf_StreamOffset="57"
              pdf_StreamLength="4" />
<text x="0" y="76.8" font-size="96"
              font-family="Times-Roman" pdf_CTM="1 0 0 1 0 0" pdf_TM="1 0 0 1 0
              715.2" pdf_Trm="96 0 0 96 0 715.2" pdf_Tf="Fabc6" pdf_Tz="100"
              pdf_Ts="0" pdf_w1000="5027" pdf_Op="(Hello World) Tj"
              pdf_StreamID="5" pdf_StreamOffset="63" pdf_StreamLength="16"
              >Hello World</text>
<pdf />
<pdf pdf_Op="ET"
              pdf_StreamID="5" pdf_StreamOffset="81" pdf_StreamLength="2"
              />
<pdf pdf_Op="Q" pdf_StreamID="5" pdf_StreamOffset="85"
              pdf_StreamLength="1" />
</svg>

The operators within the PDF stream are detailed in the SVG. For example, the first 'q' operator is located in Object ID 5 at offset 0 and has a length of 1 byte. The 'Tj' operator which shows "Hello World" is at offset 63 and has length 16. The Current Transformation Matrix (CTM), the Text Matrix (TM), and other important PDF state values are shown.

Unfortunately, the XML specification was designed in such a way that it does not allow all ASCII values to be represented. There are certain ranges of characters that are completely banned, and this is true even if you attempt to use entity references to include them. Given that the PDF specification allows a broader range of values, you need to consider how you represent characters outside the XML range. For the pdf_Op attribute, all such characters are moved into the U+E000 Unicode private use area. So to convert this string to a PDF format string, you just need to coerce any such character to a byte. This is only relevant to the pdf_Op attribute.


Page Recolor Function. Converts the page from one color space to another. ABCpdf .NET PDF Library.

Recolor Function

Converts the page from one color space to another.

Syntax

[C#]
void Recolor(ColorSpace space, bool convertAnnotations)
void Recolor(ColorSpace space, bool convertAnnotations, out PixMap[] recoloredPixMaps)

[Visual Basic]
Sub Recolor(space As ColorSpace, convertAnnotations As Boolean)
Sub Recolor(space As ColorSpace, convertAnnotations As Boolean, <Out> ByRef recoloredPixMaps As PixMap())

Throws Exceptions may throw Exception()

Params
Name | Description
space | The destination color space.
convertAnnotations | Whether to convert the color space of annotation appearance streams.
recoloredPixMaps | All the PixMaps which were recolored as a result of the call.

Notes

Converts the page from one color space to another.

All images used on the page are converted to the new color space. All color operators used in the page content stream are converted to the new color space.

Annotations and fields are not part of the page but instead float over the page. You can choose whether to convert the appearance stream of any annotations or leave them in their native color space.

Colors can only be sensibly mapped from one color space to another if we know something about the characteristics of the color space. If your color spaces do not contain this information (e.g. if they are device color spaces) then ABCpdf will use a default color profile.

An exception will be thrown if the operation is not possible. This may happen if the Page is not in an ObjectSoup or if the ColorSpace object is in some way invalid.

As part of the Recolor process it is necessary to call PixMap.Recolor on all the images used on the page. After the Recolor process has been completed these PixMap objects will no longer be compressed. You may wish to compress them using the StreamObject.Compress method.


Page VectorizeText Function. Replaces the text on the page with glyph outlines. ABCpdf .NET PDF Library.

VectorizeText Function

Replaces the text on the page with glyph outlines.

Syntax

[C#]
void VectorizeText()
[Visual Basic]
Sub VectorizeText()

Throws Exceptions may throw Exception()

Params
Name | Description
none |

Notes

Use this method to vectorize the text (i.e. replace the text with equivalent glyph polygon outlines).

Example

[C#]

using (Doc doc = new Doc()) {
  doc.FontSize = 96;
  doc.AddText("Hello World");
  foreach (Page page in doc.ObjectSoup.Catalog.Pages.GetPageArrayAll())
    page.VectorizeText();
  doc.Save(Server.MapPath("VectorizedText.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.FontSize = 96
  doc.AddText("Hello World")
  For Each page As Page In doc.ObjectSoup.Catalog.Pages.GetPageArrayAll()
    page.VectorizeText()
  Next
  doc.Save(Server.MapPath("VectorizedText.pdf"))
End Using


Page AddLayer Function. Add a content layer at the front of the page. ABCpdf .NET PDF Library.

AddLayer Function

Add a content layer at the front of the page

Syntax

[C#]
void AddLayer(StreamObject layer)

[Visual Basic]
Sub AddLayer(layer As StreamObject)

Params
Name | Description
layer | The layer to be added.

Notes

Add a content layer at the front of the page.

The StreamObject that is supplied should contain PDF drawing operations. You will need to ensure that any resources that are referenced in this content stream have been added to the resources of the page using a method such as AddResource.


Page AddResource Function. Add a particular type of resource to the page. ABCpdf .NET PDF Library.

AddResource Function

Add a particular type of resource to the page

Syntax

[C#]
string AddResource(IndirectObject resource, string type, string name)

[Visual Basic]
Function AddResource(resource As IndirectObject, type As String, name As String) As String

Params
Name | Description
resource | The resource to be added.
type | The type of resource.
name | The format of the name that should be used.

Notes

Add a particular type of resource to the page.

Pages may contain default resources usable by the page content stream. The most common resource types are "Font", "XObject" and "ColorSpace". For further details see the PDF Specification.

This method allows you to add new resources to the page. You may supply your own name for the resource but if the name is already in use, it may need to be modified. For this reason the function returns the value which was actually used for the addition.


Page GetBitmap Function. Render one or more layers on the current page. ABCpdf .NET PDF Library.

GetBitmap Function

Render one or more layers on the current page

Syntax

[C#]
System.Drawing.Bitmap GetBitmap(Layer[] layers)

[Visual Basic]
Function GetBitmap(layers() As Layer) As System.Drawing.Bitmap

Throws Exceptions may throw Exception()

Params
Name | Description
layers | The layers to be rendered.
return | The System.Drawing.Bitmap containing the image of the layers.

Notes

Render one or more layers on the current page.

This function renders a set of layers and returns the result as a System.Drawing.Bitmap. The Bitmap covers the smallest possible area which encompasses all the layers provided.

If this Page is not in a Doc then an exception will be raised. The function will return null if the layers argument is null or empty or the output Bitmap would be smaller than one pixel in area.

Rendering options such as resolution are taken directly from the current Doc.Rendering settings. However automatic page rotation (XRendering.AutoRotate) is disabled so that a Layer can be rendered and then re-inserted into the page as a raster copy of itself.

Note that a layer can exist on multiple pages and indeed can be rendered in the context of a page that does not currently contain it. However layers typically contain references to named resources which are only available in the context of a specific page. So rendering a layer in the context of a page which does not normally contain it is prone to error unless the page and layer have been specifically constructed to allow this.

Example

The following example shows how to use this method to generate various types of drop shadows.

[C#]

using (Doc doc = new Doc()) {
  // light blue background
  doc.Color.SetCmyk(50, 0, 0, 0);
  doc.FillRect();
  doc.Color.SetRgb(0, 0, 0);
  doc.Rect.Inset(20, 20);
  doc.Rect.Pin = XRect.Corner.TopLeft;
  doc.Rect.Height = doc.Rect.Height / 5;
  // set up styles
  doc.TextStyle.Size = 72;
  double shift = doc.TextStyle.Size * 0.1;
  XColor pink = new XColor();
  pink.SetRgb(255, 128, 128);
  XColor gray = new XColor();
  gray.SetRgb(128, 128, 128);
  XColor blue = new XColor();
  blue.SetRgb(0, 0, 255);
  // add text content
  AddDropShadow(doc, doc.AddText("Sharp Shadow"), 0, shift, -shift, gray);
  doc.Rect.Move(0, -doc.Rect.Height);
  AddDropShadow(doc, doc.AddText("Blurred Shadow"), 1, shift, -shift, gray);
  doc.Rect.Move(0, -doc.Rect.Height);
  AddDropShadow(doc, doc.AddText("Pink Shadow"), 1, shift, -shift, pink);
  doc.Rect.Move(0, -doc.Rect.Height);
  // add drawn content
  doc.Transform.Magnify(0.5, 0.5, 0, 0);
  doc.Transform.Translate(50, 0);
  string star = "124 158 300 700 476 158 15 493 585 493 124 158";
  doc.Width = 20;
  doc.Color.String = "255 0 0";
  AddDropShadow(doc, doc.AddPoly(star, false), 3, shift, -shift, blue);
  doc.Save(Server.MapPath("dropshadows.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  ' light blue background
  doc.Color.SetCmyk(50, 0, 0, 0)
  doc.FillRect()
  doc.Color.SetRgb(0, 0, 0)
  doc.Rect.Inset(20, 20)
  doc.Rect.Pin = XRect.Corner.TopLeft
  doc.Rect.Height = doc.Rect.Height / 5
  ' set up styles
  doc.TextStyle.Size = 72
  Dim shift As Double = doc.TextStyle.Size * 0.1
  Dim pink As New XColor()
  pink.SetRgb(255, 128, 128)
  Dim gray As New XColor()
  gray.SetRgb(128, 128, 128)
  Dim blue As New XColor()
  blue.SetRgb(0, 0, 255)
  ' add text content
  AddDropShadow(doc, doc.AddText("Sharp Shadow"), 0, shift, -shift, gray)
  doc.Rect.Move(0, -doc.Rect.Height)
  AddDropShadow(doc, doc.AddText("Blurred Shadow"), 1, shift, -shift, gray)
  doc.Rect.Move(0, -doc.Rect.Height)
  AddDropShadow(doc, doc.AddText("Pink Shadow"), 1, shift, -shift, pink)
  doc.Rect.Move(0, -doc.Rect.Height)
  ' add drawn content
  doc.Transform.Magnify(0.5, 0.5, 0, 0)
  doc.Transform.Translate(50, 0)
  Dim star As String = "124 158 300 700 476 158 15 493 585 493 124 158"
  doc.Width = 20
  doc.Color.String = "255 0 0"
  AddDropShadow(doc, doc.AddPoly(star, False), 3, shift, -shift, blue)
  doc.Save(Server.MapPath("dropshadows.pdf"))
End Using

The code above utilises the following AddDropShadow method.

[C#]

void AddDropShadow(Doc doc, int id, double gaussianBlurRadius, double shadowHorizontalShift, double shadowVerticalShift, XColor shadowColor) {
  string rect = doc.Rect.String;
  string transform = doc.Transform.String;
  string color = doc.Color.String;
  double dpiX = doc.Rendering.DotsPerInchX;
  double dpiY = doc.Rendering.DotsPerInchY;
  bool saveAlpha = doc.Rendering.SaveAlpha;
  int docLayer = doc.Layer;
  try {
    doc.Rendering.DotsPerInch = 72;
    doc.Rendering.SaveAlpha = true;
    Layer layer = doc.ObjectSoup[id] as Layer;
    Page page = doc.ObjectSoup[doc.Page] as Page;
    Bitmap bm = page.GetBitmap(new Layer[] { layer });
    // expand image if blur may move content off edges
    int border = 0;
    if (gaussianBlurRadius > 0) {
      // we extend our border out two standard deviations
      border = (int)Math.Round(Math.Abs(gaussianBlurRadius)) * 2;
      int borders = border * 2;
      Bitmap larger = new Bitmap(bm.Width + borders, bm.Height + borders, bm.PixelFormat);
      larger.SetResolution(bm.HorizontalResolution, bm.VerticalResolution);
      using (Graphics graphics = Graphics.FromImage(larger)) {
        graphics.DrawImage(bm, new Point(border, border));
        bm = larger;
      }
    }
    doc.Transform.Reset();
    doc.Rect.String = layer.Rect.String;
    doc.Rect.Inset(-border, -border);
    doc.Rect.Move(shadowHorizontalShift, shadowVerticalShift);
    doc.Layer = docLayer + 1;
    int pid = doc.AddImageBitmap(bm, true);
    // Here we set the base image to be one pixel of an appropriate color.
    // This is what will determine the shadow color.
    ImageLayer img = doc.ObjectSoup[pid] as ImageLayer;
    PixMap pm = img.PixMap;
    pm.ClearData(); // this will remove any compression settings
    pm.SetData(new byte[] { (byte)shadowColor.Red, (byte)shadowColor.Green, (byte)shadowColor.Blue });
    pm.Width = 1;
    pm.Height = 1;
    // The alpha channel is held as a separate soft mask and this is what will
    // determine the shape of the shadow. If required we blur it to give it
    // soft edges.
    PixMap alpha = pm.SMask;
    if (gaussianBlurRadius > 0) {
      using (EffectOperation effect = new EffectOperation("Gaussian Blur")) {
        effect.Parameters["Radius"].Value = gaussianBlurRadius;
        effect.Apply(alpha);
      }
    }
  }
  finally {
    doc.Rect.String = rect;
    doc.Transform.String = transform;
    doc.Color.String = color;
    doc.Rendering.DotsPerInchX = dpiX;
    doc.Rendering.DotsPerInchY = dpiY;
    doc.Rendering.SaveAlpha = saveAlpha;
    doc.Layer = docLayer;
  }
}

[Visual Basic]
Private Sub AddDropShadow(doc As Doc, id As Integer, gaussianBlurRadius As Double, shadowHorizontalShift As Double, shadowVerticalShift As Double, shadowColor As XColor)
  Dim rect As String = doc.Rect.String
  Dim transform As String = doc.Transform.String
  Dim color As String = doc.Color.String
  Dim dpiX As Double = doc.Rendering.DotsPerInchX
  Dim dpiY As Double = doc.Rendering.DotsPerInchY
  Dim saveAlpha As Boolean = doc.Rendering.SaveAlpha
  Dim docLayer As Integer = doc.Layer
  Try
    doc.Rendering.DotsPerInch = 72
    doc.Rendering.SaveAlpha = True
    Dim layer As Layer = TryCast(doc.ObjectSoup(id), Layer)
    Dim page As Page = TryCast(doc.ObjectSoup(doc.Page), Page)
    Dim bm As Bitmap = page.GetBitmap(New Layer() {layer})
    ' expand image if blur may move content off edges
    Dim border As Integer = 0
    If gaussianBlurRadius > 0 Then
      ' we extend our border out two standard deviations
      border = DirectCast(Math.Round(Math.Abs(gaussianBlurRadius)), Integer) * 2
      Dim borders As Integer = border * 2
      Dim larger As New Bitmap(bm.Width + borders, bm.Height + borders, bm.PixelFormat)
      larger.SetResolution(bm.HorizontalResolution, bm.VerticalResolution)
      Using graphics__1 As Graphics = Graphics.FromImage(larger)
        graphics__1.DrawImage(bm, New Point(border, border))
        bm = larger
      End Using
    End If
    doc.Transform.Reset()
    doc.Rect.String = layer.Rect.[String]
    doc.Rect.Inset(-border, -border)
    doc.Rect.Move(shadowHorizontalShift, shadowVerticalShift)
    doc.Layer = docLayer + 1
    Dim pid As Integer = doc.AddImageBitmap(bm, True)
    ' Here we set the base image to be one pixel of an appropriate color.
    ' This is what will determine the shadow color.
    Dim img As ImageLayer = TryCast(doc.ObjectSoup(pid), ImageLayer)
    Dim pm As PixMap = img.PixMap
    pm.ClearData()
    ' this will remove any compression settings
    pm.SetData(New Byte() {DirectCast(shadowColor.Red, Byte), DirectCast(shadowColor.Green, Byte), DirectCast(shadowColor.Blue, Byte)})
    pm.Width = 1
    pm.Height = 1
    ' The alpha channel is held as a separate soft mask and this is what will
    ' determine the shape of the shadow. If required we blur it to give it
    ' soft edges.
    Dim alpha As PixMap = pm.SMask
    If gaussianBlurRadius > 0 Then
      Using effect As New EffectOperation("Gaussian Blur")
        effect.Parameters("Radius").Value = gaussianBlurRadius
        effect.Apply(alpha)
      End Using
    End If
  Finally
    doc.Rect.String = rect
    doc.Transform.String = transform
    doc.Color.String = color
    doc.Rendering.DotsPerInchX = dpiX
    doc.Rendering.DotsPerInchY = dpiY
    doc.Rendering.SaveAlpha = saveAlpha
    doc.Layer = docLayer
  End Try
End Sub

dropshadows.pdf


Page GetContentData Function. Gets the decompressed content data from the page. ABCpdf .NET PDF Library.

GetContentData Function

Gets the decompressed content data from the page.

Syntax

[C#]
byte[] GetContentData()

[Visual Basic]
Function GetContentData() As Byte()

Params
Name | Description
return | The content data.

Notes

Gets the decompressed content data from the page.

If the page contains multiple content streams then the data from these will be concatenated so you can treat them as one.

However, while the data is concatenated, the streams are left untouched - the function does not alter the page.

If a content stream could not be decompressed then an exception will be raised.

If you need to go through all the content streams associated with a set of pages, the ContentStreamOperation class provides this type of functionality.


Page MakeFormXObject Function. Makes a FormXObject out of the page. ABCpdf .NET PDF Library.

MakeFormXObject Function

Makes a FormXObject out of the page.

Syntax

[C#]
FormXObject MakeFormXObject()

[Visual Basic]
Function MakeFormXObject() As FormXObject

Params
Name | Description
return | The newly created FormXObject.

Notes

Makes a FormXObject out of the page.

This process involves copying the page content stream to a new Form XObject and referencing any required resources. The current page is left unaltered.

The returned FormXObject will have been added to the same ObjectSoup as contains the Page. The returned Form XObject can then be added to other pages using methods such as AddXObject.

Example

This example shows how to take a page, convert it into a separate drawing object and then draw it, scaled, onto the page it came from.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/HyperX.pdf"));
  Page page1 = doc.ObjectSoup[doc.Page] as Page;
  FormXObject form = page1.MakeFormXObject();
  doc.Transform.Magnify(0.5, 0.5, 0, 0);
  doc.Page = doc.AddPage();
  Page page2 = doc.ObjectSoup[doc.Page] as Page;
  string name = page2.AddResource(form, "XObject", "Iabc");
  // Here we create our own layer for the purposes of the demonstration.
  // However a simpler approach would be to use Doc.AddXObject.
  StreamObject layer = new StreamObject(doc.ObjectSoup);
  layer.SetText(String.Format("q {0} cm /{1} Do Q ", doc.Transform.ToString(), name));
  page2.AddLayer(layer);
  doc.Save(Server.MapPath("exampleformxobject.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/HyperX.pdf"))
  Dim page1 As Page = TryCast(doc.ObjectSoup(doc.Page), Page)
  Dim form As FormXObject = page1.MakeFormXObject()
  doc.Transform.Magnify(0.5, 0.5, 0, 0)
  doc.Page = doc.AddPage()
  Dim page2 As Page = TryCast(doc.ObjectSoup(doc.Page), Page)
  Dim name As String = page2.AddResource(form, "XObject", "Iabc")
  ' Here we create our own layer for the purposes of the demonstration.
  ' However a simpler approach would be to use Doc.AddXObject.
  Dim layer As New StreamObject(doc.ObjectSoup)
  layer.SetText([String].Format("q {0} cm /{1} Do Q ", doc.Transform.ToString(), name))
  page2.AddLayer(layer)
  doc.Save(Server.MapPath("exampleformxobject.pdf"))
End Using

exampleformxobject.pdf [Page 1]

exampleformxobject.pdf [Page 2]


Page Rotate Function. Rotates the page by a multiple of ninety degrees. ABCpdf .NET PDF Library.

Rotate Function

Rotates the page by a multiple of ninety degrees.

Syntax

[C#]
void Rotate(int angle)

[Visual Basic]
Sub Rotate(angle As Integer)

Throws Exceptions may throw Exception()

Params
Name | Description
angle | The number of degrees clockwise by which to rotate the page.

Notes

Rotates the page by a multiple of ninety degrees.

By providing the Rotation property to this function you can derotate a page. The Rotation property and page bounding boxes (MediaBox, CropBox, BleedBox, TrimBox and ArtBox) will be adjusted to reflect the new viewing orientation.

If a value is provided which is not a multiple of ninety degrees, an exception will be raised.


Page StampFormXObjects Function. Removes all Form XObjects from the page by embedding them into the page content. ABCpdf .NET PDF Library.

StampFormXObjects Function

Removes all Form XObjects from the page by embedding them into the page content

Syntax

[C#]
int StampFormXObjects(bool force)
int StampFormXObjects(bool force, int levels)

[Visual Basic]
Function StampFormXObjects(force As Boolean) As Integer
Function StampFormXObjects(force As Boolean, levels As Integer) As Integer

Params
Name | Description
force | Whether to stamp FormXObjects that may cause a change in the page appearance.
levels | The maximum number of levels of nested FormXObjects that should be flattened.
return | The number of FormXObjects removed from the page.

Notes

Removes all Form XObjects from the page by embedding them into the content.

Most Form XObjects can be embedded in the page with no difference in page appearance. However Form XObjects such as transparency groups contain structures which cannot be represented any other way. These structures are uncommon in most documents but they do occur.

In this situation you need to decide whether a change in page appearance is acceptable and that the objects should be forcibly embedded. The alternative is to skip these objects and embed only those that will not affect the page appearance.

The levels parameter allows you to determine the level of nesting which should be removed. The number refers to the maximum number of iterations that should be performed. At each iteration the Form XObjects referenced by the page are flattened into the page. However if those Form XObjects themselves reference other Form XObjects then those will then become page level Form XObjects. Hence there can be a number of rounds of flattening. By default the sequence is repeated until there are no Form XObjects left. However sometimes it can be useful to be more selective and this can be controlled using this parameter.


Page Transform Function. Transform the page contents and page bounding boxes. ABCpdf .NET PDF Library.

Transform Function

Transform the page contents and page bounding boxes.

Syntax

[C#]
void Transform(XTransform transform)

[Visual Basic]
Sub Transform(transform As XTransform)

Params
Name | Description
transform | The transform to apply.

Notes

Transform the page contents and page bounding boxes (MediaBox, CropBox, BleedBox, TrimBox and ArtBox).

You can use this function to scale or otherwise alter a page.


Page ArtBox Property. The ArtBox for the page. ABCpdf .NET PDF Library.

ArtBox Property

Type | Default Value | Read Only | Description
[C#] XRect [Visual Basic] XRect | n/a | No | The ArtBox for the page

Notes

The ArtBox defines the extent of meaningful content on this page.

These boundaries are always defined directly on the Page object. If no property has been defined then this property will be null and the effective value is assumed to be that of the CropBox.

Note that, as with all objects in this namespace, this property is measured in points in the native PDF coordinate space. It is unaffected by the Doc.Units or Doc.TopDown properties.


Page BleedBox Property. The BleedBox for the page. ABCpdf .NET PDF Library.

BleedBox Property

Type | Default Value | Read Only | Description
[C#] XRect [Visual Basic] XRect | n/a | No | The BleedBox for the page

Notes

The BleedBox defines the region to which the contents of the page shall be clipped when rendered in a production environment.

These boundaries are always defined directly on the Page object. If no property has been defined then this property will be null and the effective value is assumed to be that of the CropBox.

Note that, as with all objects in this namespace, this property is measured in points in the native PDF coordinate space. It is unaffected by the Doc.Units or Doc.TopDown properties.


Page CropBox Property. The CropBox for the page. ABCpdf .NET PDF Library.

CropBox Property

Type | Default Value | Read Only | Description
[C#] XRect [Visual Basic] XRect | n/a | No | The CropBox for the page

Throws Exceptions may throw NullReferenceException()

Notes

The CropBox for the page.

The CropBox defines the visible part of the physical medium on which the page may be displayed or printed. This is what you see as the boundary of the page when you view a document using Acrobat Reader.

These boundaries may be defined directly on the Page object or they may be inherited from a parent Pages object.

The CropBox is optional and if this property is null it is implicitly assumed to be the same as the MediaBox.

Assigning a new value to this property will change the property for the current Page rather than any Pages object from which the value may have been inherited. In this way the property exhibits a copy-on-write behavior.

Attempting to assign a null value to this property will result in a NullReferenceException being thrown. This is because the CropBox may be inherited from a parent page and thus removing the CropBox from the current page may simply result in it being inherited from another. This is unusual and counterintuitive behavior and can result in subtle bugs related to specific documents. As such, if you want to clear this property you should assign it the value of the MediaBox.

Note that, as with all objects in this namespace, this property is measured in points in the native PDF coordinate space. It is unaffected by the Doc.Units or Doc.TopDown properties.


Page MediaBox Property. The MediaBox for the page. ABCpdf .NET PDF Library.

MediaBox Property

Type | Default Value | Read Only | Description
[C#] XRect [Visual Basic] XRect | n/a | No | The MediaBox for the page

Throws Exceptions may throw NullReferenceException()

Notes

The MediaBox defines the boundaries of the physical medium on which the page may be displayed or printed. This may include bleed areas or printing marks and also parts of the medium on which printing cannot take place because of physicsal limitations of the output technology. Any PDF drawing outside the MediaBox can be safely ignored.

These boundaries may be defined directly on the Page object or they may be inherited from a parent Pages object.

A MediaBox is mandatory for all pages so this property should never be null.

Assigning a new value to this property will change the property for the current Page rather than any Pages object from which the value may have been inherited. In this way the property exhibits a copy-on-write behavior.

Attempting to assign a null value to this property will result in a NullReferenceException being thrown.

Note that, as with all objects in this namespace, this property is measured in points in the native PDF coordinate space. It is unaffected by the Doc.Units or Doc.TopDown properties.


Page PageNumber Property. The number of the page in the document. ABCpdf .NET PDF Library.

PageNumber Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The number of the page in the document.

Notes

This property holds the current Page Number.

The PageNumber indicates the page using an index ranging between one and the Doc.PageCount.


Page Parent Property. The parent of this page. ABCpdf .NET PDF Library.

Parent Property

Type | Default | Read Only | Description
[C#] Pages [Visual Basic] Pages | n/a | Yes | The parent of this page.

Notes

The parent Pages object for this page.


Page Rotation Property. The number of degrees to rotate the page before display. ABCpdf .NET PDF Library.

Rotation Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | No | The number of degrees to rotate the page before display.

Notes

The number of degrees clockwise to rotate the page before display.

The values 0 and 180 indicate portrait orientation. The values 90 and 270 indicate landscape orientation.

This value should be a multiple of 90.

Example

This example shows how to use the Rotation property to determine how to add a PDF page - which may be rotated - to a portrait PDF page.

[C#]

using (Doc doc = new Doc(), src = new Doc()) {
  src.Read(Server.MapPath("landscape.pdf"));
  int rotation = ((Page)src.ObjectSoup[src.Page]).Rotation;
  bool landscape = src.MediaBox.Width > src.MediaBox.Height;
  doc.Page = doc.AddPage();   // output is always in portrait
  if (landscape) {
    switch (rotation) {
      default:
      case 90:
        doc.Transform.Rotate(270, 0, 0);
        doc.Transform.Translate(0, doc.MediaBox.Height);
        break;
      case 180:
      case 270:
        doc.Transform.Rotate(90, 0, 0);
        doc.Transform.Translate(doc.MediaBox.Width, 0);
        break;
    }
    doc.Rect.SetRect(0, 0, doc.MediaBox.Height, doc.MediaBox.Width);
  }
  else {
    switch (rotation) {
      case 90:
      case 180:
        doc.Transform.Rotate(180, 0, 0);
        doc.Transform.Translate(doc.MediaBox.Width, doc.MediaBox.Height);
        break;
    }
  }
  doc.AddImageDoc(src, 1, null);
  doc.Save(Server.MapPath("addtoportrait.pdf"));
}

[Visual Basic]
Using doc As New Doc(), src As New Doc()
  src.Read(Server.MapPath("landscape.pdf"))
  Dim rotation As Integer = DirectCast(src.ObjectSoup(src.Page), Page).Rotation
  Dim landscape As Boolean = src.MediaBox.Width > src.MediaBox.Height
  doc.Page = doc.AddPage()
  ' output is always in portrait
  If landscape Then
    Select Case rotation
      Case Else, 90
        doc.Transform.Rotate(270, 0, 0)
        doc.Transform.Translate(0, doc.MediaBox.Height)
        Exit Select
      Case 180, 270
        doc.Transform.Rotate(90, 0, 0)
        doc.Transform.Translate(doc.MediaBox.Width, 0)
        Exit Select
    End Select
    doc.Rect.SetRect(0, 0, doc.MediaBox.Height, doc.MediaBox.Width)
  Else
    Select Case rotation
      Case 90, 180
        doc.Transform.Rotate(180, 0, 0)
        doc.Transform.Translate(doc.MediaBox.Width, doc.MediaBox.Height)
        Exit Select
    End Select
  End If
  doc.AddImageDoc(src, 1, Nothing)
  doc.Save(Server.MapPath("addtoportrait.pdf"))
End Using

landscape.pdf

addtoportrait.pdf


Page Thumbnail Property. The Thumbnail for the page. ABCpdf .NET PDF Library.

Thumbnail Property

Type | Default Value | Read Only | Description
[C#] PixMap [Visual Basic] PixMap | n/a | No | The Thumbnail for the page

Notes

Each page can have a thumbnail image for quick preview purposes. This property allows to access such a thumbnail if it exists, or to assign such a thumbnail to a page if it does not.

Example

This example shows how to create and embed thumbnails in a PDF document.

[C#]

using (Doc doc = new Doc(), srcDoc = new Doc()) {
  doc.Read(Server.MapPath("spaceshuttle.pdf"));
  doc.Rendering.DotsPerInch = 18;
  Page[] pages = doc.ObjectSoup.Catalog.Pages.GetPageArrayAll();
  foreach (Page page in pages) {
    doc.Page = page.ID;
    using (XImage xi = XImage.FromData(doc.Rendering.GetData(".jpg"), null))
      page.Thumbnail = PixMap.FromXImage(doc.ObjectSoup, xi);
  }
  doc.Save(Server.MapPath("embedthumbnails.pdf"));
}

[Visual Basic]
Using doc As New Doc(), srcDoc As New Doc()
  doc.Read(Server.MapPath("spaceshuttle.pdf"))
  doc.Rendering.DotsPerInch = 18
  Dim pages As Page() = doc.ObjectSoup.Catalog.Pages.GetPageArrayAll()
  For Each page As Page In pages
    doc.Page = page.ID
    Using xi As XImage = XImage.FromData(doc.Rendering.GetData(".jpg"), Nothing)
      page.Thumbnail = PixMap.FromXImage(doc.ObjectSoup, xi)
    End Using
  Next
  doc.Save(Server.MapPath("embedthumbnails.pdf"))
End Using


Page TrimBox Property. The TrimBox for the page. ABCpdf .NET PDF Library.

TrimBox Property

Type | Default Value | Read Only | Description
[C#] XRect [Visual Basic] XRect | n/a | No | The TrimBox for the page

Notes

The TrimBox defines the intended boundaries of the page after trimming.

These boundaries are always defined directly on the Page object. If no property has been defined then this property will be null and the effective value is assumed to be that of the CropBox.

Note that, as with all objects in this namespace, this property is measured in points in the native PDF coordinate space. It is unaffected by the Doc.Units or Doc.TopDown properties.


Pages Class

A Pages node within the document.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Pages

Method | Description
GetPage | Performs a fast lookup to retrieve a particular Page from this node tree.
GetPageArray | Gets all the Page objects immediately under this node.
GetPageArrayAll | Gets all the Page objects under this node and descendents of this node.
Throws Exceptions Recolor | Converts the pages from one color space to another.
 | inherited methods...

Property | Description
Count | The number of visible pages under this node.
Parent | The parent of this node.
 | inherited properties...


Pages GetPage Function. Performs a fast lookup to retrieve a particular Page from this node tree. ABCpdf .NET PDF Library.

GetPage Function

Performs a fast lookup to retrieve a particular Page from this node tree

Syntax

[C#]
Page GetPage(int page)

[Visual Basic]
Function GetPage(Integer page) As Page

Params
Name | Description
page | The page number - a one based index
returns | The specified Page object or null if one could not be found.

Notes

Performs a fast lookup to retrieve a particular Page from this node tree.

The page is specified in terms of the index of the page within the tree. This is a one-based index within the current Pages node. Since a Pages node relates to only a portion of a PDF document, the page number within the Pages node is offset from the page number within the document.


Pages GetPageArray Function. Gets all the Page objects immediately under this node. ABCpdf .NET PDF Library.

GetPageArray Function

Gets all the Page objects immediately under this node.

Syntax

[C#]
Page[] GetPageArray()

[Visual Basic]
Function GetPageArray() As Page()

Params
Name | Description
return | An array of Page objects.

Notes

Gets all the Page objects under this node.

Only immediate children are returned. Any Pages objects are returned as null Page objects.

For an array that includes descendents see GetPageArrayAll.


Pages GetPageArrayAll Function. Gets all the Page objects under this node and descendents of this node. ABCpdf .NET PDF Library.

GetPageArrayAll Function

Gets all the Page objects under this node and descendents of this node.

Syntax

[C#]
Page[] GetPageArrayAll()

[Visual Basic]
Function GetPageArrayAll() As Page()

Params
Name | Description
return | An array of Page objects.

Notes

Gets all the Page objects under this node and descendents of this node. The pages are returned in order of page number. The Page.ID can be assigned directly to the Doc.Page property to set the focus to a particular page. For large or badly structured documents it is likely to be faster to use this type of operation than it is to repeatedly access the Doc.PageNumber property.

For an array of the immediate children of this node see GetPageArray.


Pages Recolor Function. Converts the pages from one color space to another. ABCpdf .NET PDF Library.

Recolor Function

Converts the pages from one color space to another.

Syntax

[C#]
void Recolor(ColorSpace space, bool convertAnnotations)
void Recolor(ColorSpace space, bool convertAnnotations, out PixMap[] recoloredPixMaps)

[Visual Basic]
Sub Recolor(space As ColorSpace, convertAnnotations As Boolean)
Sub Recolor(space As ColorSpace, convertAnnotations As Boolean, <Out> ByRef recoloredPixMaps As PixMap())

Throws Exceptions may throw Exception()

Params
Name | Description
space | The destination color space.
convertAnnotations | Whether to convert the color space of annotation appearance streams.
recoloredPixMaps | All the PixMaps which were recolored as a result of the call.

Notes

Converts the pages from one color space to another.

This method calls the Page.Recolor method on all Page objects within this group of pages.


Pages Count Property. The number of visible pages under this node. ABCpdf .NET PDF Library.

Count Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The number of visible pages under this node.

Notes

The number of visible pages under this node.


Pages Parent Property. The parent of this node. ABCpdf .NET PDF Library.

Parent Property

Type | Default | Read Only | Description
[C#] Pages [Visual Basic] Pages | n/a | Yes | The parent of this node.

Notes

The parent Pages object for this node.


PixMap Class

A bitmap based image.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.StreamObject
         WebSupergoo.ABCpdf12.Objects.PixMap

Method | Description
S» FromXImage | PixMap static constructor.
Throws Exceptions CompressCcitt | Compresses the image using CCITT compression.
Throws Exceptions CompressJbig2 | Compresses the image using JBIG2 compression.
Throws Exceptions CompressJpeg | Compresses the image using JPEG compression.
Throws Exceptions CompressJpx | Compresses the image using JPEG 2000 compression.
Decompress | Decompress the data in the stream using on-the-fly resizing.
Flip | Flip the image horizontally or vertically.
Throws Exceptions GetBitmap | Get the PixMap image as a System.Drawing.Bitmap.
Throws Exceptions Realize | Converts the image to component color.
Throws Exceptions Recolor | Converts the image from one color space to another.
Throws Exceptions Resample | Changes the number of bits per color component.
Throws Exceptions Resize | Resizes the image.
Throws Exceptions Rotate | Rotate the image clockwise.
Save | Saves the PixMap to stream attempting to preserve resolution, color space and depth as far as the output format allows.
SetAlpha | Sets a constant alpha value (0-255) for this image.
SetBitmap | Set the content of the object as a Bitmap.
SetChromakey | Sets a chromakey transparent color for this image.
ToGrayscale | Converts the image to grayscale.

Property | Description
AutoFix | Whether to automatically fix corrupt images.
BitsPerComponent | The number of bits per color component.
ColorSpace | The ColorSpace for this image.
ColorSpaceType | The ColorSpace for this image.
Components | The number of color components for each pixel.
Height | The height of the image in pixels.
ImageMask | Whether this image is a one bit image mask.
Mask | Any one bit image mask associated with this image.
Matte | Any matte associated with this soft mask.
SMask | Any soft image mask associated with this image.
Width | The width of the image in pixels.


PixMap FromXImage Function. PixMap static constructor. ABCpdf .NET PDF Library.

FromXImage Function

PixMap static constructor

Syntax

[C#]
static PixMap FromXImage(ObjectSoup soup, XImage image)

[Visual Basic]
Shared Function FromXImage(soup As ObjectSoup, image As XImage) As PixMap

Params
Name | Description
soup | The ObjectSoup to contain the newly created PixMap.
image | The XImage from which the PixMap should be created.

Notes

This method allows you to create a PixMap directly from an XImage object.

The PixMap that is created exists within the current Doc.Soup but is not linked into any pages.

To link the PixMap into a page it needs to be added as a resource and then drawn from the content stream of the page.


PixMap CompressCcitt Function. Compresses the image using CCITT compression. ABCpdf .NET PDF Library.

CompressCcitt Function

Compresses the image using CCITT compression.

Syntax

[C#]
void CompressCcitt()

[Visual Basic]
Sub CompressCcitt()

Throws Exceptions may throw Exception()

Params
Name | Description
none |

Notes

Compresses the image using CCITT compression.

CCITT compression can only be used on black and white images. It is optimized for the lossless compression of scanned documents and faxes.

If the values of both the BitsPerComponent and the Components is one then the PixMap can be compressed using this method. If not then calling this method will generate an exception.


PixMap CompressJbig2 Function. Compresses the image using JBIG2 compression. ABCpdf .NET PDF Library.

CompressJbig2 Function

Compresses the image using JBIG2 compression.

Syntax

[C#]
void CompressJbig2()

[Visual Basic]
Sub CompressJbig2()

Throws Exceptions may throw Exception()

Params
Name | Description
none |

Notes

Compresses the image using JBIG2 compression.

JBIG2 compression can only be used on monochrome - typically black and white - images. It offers high compression levels for images like scanned documents which contain repeating patterns.


PixMap CompressJpeg Function. Compresses the image using JPEG compression. ABCpdf .NET PDF Library.

CompressJpeg Function

Compresses the image using JPEG compression.

Syntax

[C#]
void CompressJpeg(int quality)

[Visual Basic]
Sub CompressJpeg(quality As Integer)

Throws Exceptions may throw Exception()

Params
Name | Description
quality | The quality of compression to use (0 to 100).

Notes

Compresses the image using JPEG compression.

JPEG compression can be used on RGB, Grayscale or CMYK images. It offers high compression levels for continuous tone images like photographs. However it is a lossy method which means that the quality of the compressed image will not be as good as the uncompressed image.

The quality of the compression can range from zero (lowest quality, highest compression) to 100 (highest quality, lowest compression). A good generic value is 75.

Example

See the Recolor function.


PixMap CompressJpx Function. Compresses the image using JPEG 2000 compression. ABCpdf .NET PDF Library.

CompressJpx Function

Compresses the image using JPEG 2000 compression.

Syntax

[C#]
void CompressJpx(int quality)

[Visual Basic]
Sub CompressJpx(quality As Integer)

Throws Exceptions may throw Exception()

Params
Name | Description
quality | The quality of compression to use (0 to 100).

Notes

Compresses the image using JPEG 2000 compression.

JPEG 2000 compression can be used on RGB, Grayscale or CMYK images. It offers high compression levels for continuous tone images like photographs. However it is a lossy method which means that the quality of the compressed image will not be as good as the uncompressed image.

The quality of the compression can range from zero (lowest quality, highest compression) to 100 (lossless quality, lowest compression). A good generic value is 75.


PixMap Decompress Function. Decompress the data in the stream using on-the-fly resizing. ABCpdf .NET PDF Library.

Decompress Function

Decompress the data in the stream using on-the-fly resizing

Syntax

[C#]
bool Decompress(int width, int height)

[Visual Basic]
Function Decompress(width As Integer, height As Integer) As Boolean

Params
Name | Description
width | The desired final width.
height | The desired final height
return | Whether the data was decompressed correctly.

Notes

Decompress the data in the stream using on-the-fly resizing of the image. This type of scaling is fast and memory efficient but may change the depth of the image. Only some compression types support on-the-fly resizing.

As such you should always check the dimensions of the image after calling this method. Do not assume that simply because the image has decompressed correctly that it has also been resized.


PixMap Flip Function. Flip the image horizontally or vertically. ABCpdf .NET PDF Library.

Flip Function

Flip the image horizontally or vertically

Syntax

[C#]
void Flip(bool horizontal, bool vertical)

[Visual Basic]
Sub Flip(horizontal As Boolean, vertical As Boolean)

Params
Name | Description
horizontal | Whether to flip the image horizontally.
vertical | Whether to flip the image vertically

Notes

This function flips the image horizontally or vertically or both. Flipping both horizontally and vertically is equivalent to a 180 degree rotation.

An image may have an associated bit mask or soft (alpha) mask. If this is the case the associated mask will be transformed as well.

Flipping horizontally will mean that pixels that were on the far right of the image will be moved to the far left and pixels on the left will be moved to the right.

Flipping horizontally will mean that pixels that were on the top of the image will be moved to the bottom and pixels that were on the bottom will be moved to the top.

After the Bitmap has been set the PixMap will be uncompressed. You may wish to compress it using a call like CompressJpeg or CompressFlate.


PixMap GetBitmap Function. Get the PixMap image as a System.Drawing.Bitmap. ABCpdf .NET PDF Library.

GetBitmap Function

Get the PixMap image as a System.Drawing.Bitmap.

Syntax

[C#]
System.Drawing.Bitmap GetBitmap()

[Visual Basic]
Function GetBitmap() As System.Drawing.Bitmap

Throws Exceptions may throw Exception()

Params
Name | Description
return | The Bitmap containing the image.

Notes

Use this method to get the PixMap image as a System.Drawing.Bitmap.

You can then use this Bitmap for drawing to screen or for manipulation using System.Drawing routines.

ABCpdf tries to make a literal copy of the image contained in the PixMap, both to minimize color shifts and also for speed.

However because PDF images can contain many color spaces and bit depths that are unsupported by System.Drawing it may be necessary to change the color space or bit depth of the image.

In addition there are certain parameters such as decode arrays which may be used to modify the image before display. This method returns the image content as literally as possible which means decode arrays and alpha channels are not included.

Please note that some formats of Bitmaps are not usable for certain operations. In particular, indexed color bitmaps cannot be drawn on using the Graphics.FromImage method. For this reason if you are going to wish to draw on the returned Bitmap you should check the pixel format before use.

Example

This example shows how to extract all the page thumbnails (if they exist) from a document. See also the ContentExtract example project for another example.

[C#]

using (Doc doc = new Doc(), srcDoc = new Doc()) {
  doc.Read(Server.MapPath("embedthumbnails.pdf"));
  doc.Rendering.DotsPerInch = 18;
  Page[] pages = doc.ObjectSoup.Catalog.Pages.GetPageArrayAll();
  foreach (Page page in pages) {
    if (page.Thumbnail == null)
      continue;
    using (Bitmap bm = page.Thumbnail.GetBitmap())
      bm.Save($"embedthumbnails{page.Thumbnail.ID}.jpg");
  }
}

[Visual Basic]
Using doc As New Doc(), srcDoc As New Doc()
  doc.Read(Server.MapPath("embedthumbnails.pdf"))
  doc.Rendering.DotsPerInch = 18
  Dim pages As Page() = doc.ObjectSoup.Catalog.Pages.GetPageArrayAll()
  For Each page As Page In pages
    If page.Thumbnail = Nothing Then
      Continue For
    End If
    Using bm As Bitmap = page.Thumbnail.GetBitmap()
      bm.Save($"embedthumbnails{page.Thumbnail.ID}.jpg")
    End Using
  Next
End Using

embedthumbnails.pdf - [Page 1] | embedthumbnails.pdf - [Page 2]
embedthumbnails.pdf - [Page 3] | embedthumbnails.pdf - [Page 4]


PixMap Realize Function. Converts the image to component color. ABCpdf .NET PDF Library.

Realize Function

Converts the image to component color.

Syntax

[C#]
void Realize()

[Visual Basic]
Sub Realize()

Throws Exceptions may throw Exception()

Params
Name | Description
none |

Notes

Converts the image from indexed color to component color.

The process of converting an indexed color image into a component color image, will result in any chromakeys being converted to masks and the elimination of any decode arrays.

The Indexed color space is used for palletized color. Each item in the palette is defined in terms of a base color space such as DeviceRGB. Palettes can hold up to 256 entries.

After an indexed color image has been realized it is no longer compressed. You may wish to compress it using the StreamObject.Compress method.

Example

See the Resize function.


PixMap Recolor Function. Converts the image from one color space to another. ABCpdf .NET PDF Library.

Recolor Function

Converts the image from one color space to another.

Syntax

[C#]
void Recolor(ColorSpace space)
void Recolor(ColorSpace space, RenderingIntent intent)

[Visual Basic]
Sub Recolor(space As ColorSpace)
Sub Recolor(space As ColorSpace, intent As RenderingIntent)

Throws Exceptions may throw Exception()

Params
Name | Description
space | The destination color space.
intent | The rendering intent enumeration. If no intent is provided the default for the image (typically RelativeColorimetric) is used.

Notes

Converts the image from one color space to another.

Calling this method results in the pixels within the PixMap image being mapped from the current color space to the new color space. The new ColorSpace is then assigned to the PixMap and (if it is not already there) added to the PixMap ObjectSoup.

Colors can only be sensibly mapped from one color space to another if we know something about the characteristics of the color space. If your color spaces do not contain this information (e.g. if they are device color spaces) then ABCpdf will use a default color profile.

An exception will be thrown if the operation is not possible. This may happen if the PixMap is not in an ObjectSoup or if the ColorSpace object is in some way invalid.

If the ImageMask property is true the image has no color space and is implicitly black and white. Image masks cannot be anything other than black and white so trying to convert an image mask to another color space will result in an exception being raised.

The rendering intent determines how out of gamut colors are handled. For full details see the RecolorOperation.RenderingIntent property.

After the PixMap has been Recolored it is no longer compressed and will have a BitsPerComponent of eight or sixteen. You may wish to compress it using the StreamObject.Compress method.

Example

Here we change all the images in a document to CMYK.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../Rez/spaceshuttle.pdf"));
  List<PixMap> theList = new List<PixMap>();
  // find all the PixMap objects in the soup
  foreach (IndirectObject obj in doc.ObjectSoup) {
    PixMap p = obj as PixMap;
    if (p != null)
      theList.Add(p);
  }
  // add our destination color space
  ColorSpace cs = new ColorSpace(doc.ObjectSoup);
  cs.IccProfile = new IccProfile(doc.ObjectSoup, Server.MapPath("../Rez/abccmyk.icc"));
  // convert images to our color space
  for (int i = 0; i < theList.Count; i++) {
    PixMap p = theList[i];
    p.Recolor(cs, RenderingIntent.Perceptual);
    p.CompressJpeg(75);
  }
  doc.Save(Server.MapPath("pixmaprecolor.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../Rez/spaceshuttle.pdf"))
  Dim theList As New List(Of PixMap)()
  ' find all the PixMap objects in the soup
  For Each obj As IndirectObject In doc.ObjectSoup
    Dim p As PixMap = TryCast(obj, PixMap)
    If p <> Nothing Then
      theList.Add(p)
    End If
  Next
  ' add our destination color space
  Dim cs As New ColorSpace(doc.ObjectSoup)
  cs.IccProfile = New IccProfile(doc.ObjectSoup, Server.MapPath("../Rez/abccmyk.icc"))
  ' convert images to our color space
  Dim i As Integer = 0
  While i < theList.Count
    Dim p As PixMap = theList(i)
    p.Recolor(cs, RenderingIntent.Perceptual)
    p.CompressJpeg(75)
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While
  doc.Save(Server.MapPath("pixmaprecolor.pdf"))
End Using

spaceshuttle.pdf [page 1]

pixmaprecolor.pdf [page 1]


PixMap Resample Function. Changes the number of bits per color component. ABCpdf .NET PDF Library.

Resample Function

Changes the number of bits per color component.

Syntax

[C#]
void Resample(int bitsPerComponent)

[Visual Basic]
Sub Resample(bitsPerComponent As Integer)

Throws Exceptions may throw Exception()

Params
Name | Description
bitsPerComponent | The number of bits per color component.

Notes

Change the number of bits per color component.

The bit depths you should use are 1, 2, 4, 8 or 16. Other values are not supported in the PDF Specification.

Changing this property for Indexed color images changes the precision of the index rather than of the color components. If you want to change the precision of the components you need to Realize the PixMap first.

Operations like Resize operate more naturally on eight and sixteen bit images - producing better results, faster, using less memory. So if you will be resizing and also moving to eight or sixteen bit depth it is typically better to Resample before calling Resize.

After this method is called the image may no longer be longer compressed. You may wish to compress it using the StreamObject.Compress method.


PixMap Resize Function. Resizes the image. ABCpdf .NET PDF Library.

Resize Function

Resizes the image.

Syntax

[C#]
void Resize(int width, int height)
void Resize(int width, int height, Interpolation interpolation)

[Visual Basic]
Sub Resize(width As Integer, height As Integer)
Sub Resize(width As Integer, height As Integer, interpolation As Interpolation)

Throws Exceptions may throw Exception()

Params
Name | Description
width | The destination width for the image.
height | The destination height for the image.
interpolation | The type of interpolation to be used when resizing the image. The default value is Auto.

Notes

Resizes the image to a specified width and height using a specified interpolation method.

The interpolation parameter should be viewed as a request rather than a command because not all types of interpolation can be used on all types of image. If the method you specify is not appropriate then ABCpdf will automatically select a suitable alternative.

After an image has been resized it is no longer compressed. You may wish to compress it using the StreamObject.Compress method.

The Interpolation enumeration may take the following values:

  • Auto
  • NearestNeighbor
  • Linear
  • Cubic
  • Super
  • Lanczos

The Auto setting allows ABCpdf to automatically choose an appropriate interpolation algorithm given the type of image and the type of scaling. If you are aiming to maximize quality this is the setting you should use.

The nearest neighbor algorithm is the fastest but also the lowest quality method. It simply finds the nearest pixel in the source image and maps it through to the destination image. However it is also the only method which can be used for Indexed color images.

The Linear, Cubic and Lanzcos methods are progressively higher quality methods based around a weighted average of pixels from the source image. However they are also progressively slower. The Lanzcos function used is the three lobed variety.

The Linear, Cubic and Lanzcos methods use weighted averages from a limited number of pixels in the source image. For large size reductions this may result in information from some pixels in the source image being completely discarded. The super method aims to work around this issue by increasing coverage to all the pixels in the source image. It only works if an image is being reduced in both height and width.

This function is optimized for resizing one, three and four component images at precisions of eight or sixteen bits per component.

Example

Here we resize all the images in a document to a quarter of their previous resolution.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../Rez/spaceshuttle.pdf"));
  foreach (IndirectObject io in doc.ObjectSoup) {
    if (io is PixMap) {
      PixMap pm = (PixMap)io;
      pm.Realize(); // eliminate indexed color images
      pm.Resize(pm.Width / 4, pm.Height / 4);
    }
  }
  doc.Save(Server.MapPath("pixmapresize.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../Rez/spaceshuttle.pdf"))
  For Each io As IndirectObject In doc.ObjectSoup
    If TypeOf io Is PixMap Then
      Dim pm As PixMap = DirectCast(io, PixMap)
      pm.Realize()
      ' eliminate indexed color images
      pm.Resize(pm.Width / 4, pm.Height / 4)
    End If
  Next
  doc.Save(Server.MapPath("pixmapresize.pdf"))
End Using

spaceshuttle.pdf [page 1]

pixmapresize.pdf [page 1]


PixMap Rotate Function. Rotate the image clockwise. ABCpdf .NET PDF Library.

Rotate Function

Rotate the image clockwise

Syntax

[C#]
void Rotate(int degrees)

[Visual Basic]
Sub Rotate(degrees As Integer)

Throws Exceptions may throw ArgumentOutOfRangeException()

Params
Name | Description
degrees | The number of degrees clockwise that the image should be rotated. This must be a multiple of 90.

Notes

This function rotates the PixMap image clockwise. The rotation angle must be a multiple of 90. If an invalid number of degrees is specified, then an ArgumentOutOfRangeException will be thrown.

An image may have an associated bit mask or soft (alpha) mask. If this is the case, the associated mask will be transformed as well.

When a PixMap is drawn on a page, it is scaled to fit into a particular location. The scaling is separate from the PixMap itself. Rotating by 90 or 270 degrees will swap the width and height of the PixMap. Because the scaling of drawn copies is separate from the PixMap itself, any previously drawn instances of the PixMap may appear to have an incorrect aspect ratio.

After the Bitmap has been set, the PixMap will be uncompressed. You may wish to compress it using a call like CompressJpeg or CompressFlate.


PixMap Save Function. Saves the PixMap to stream attempting to preserve resolution, color space and depth as far as the output format allows. ABCpdf .NET PDF Library.

Save Function

Saves the PixMap to stream attempting to preserve resolution, color space and depth as far as the output format allows

Syntax

[C#]
void Save(string path)
void Save(Stream stream, string name)

[Visual Basic]
Sub Save(path As String)
Sub Save(stream As Stream, name As String)

Params
Name | Description
path | The destination file path.
stream | The destination output stream.
name | A dummy file name used to determine the type of image required.

Notes

Saves the PixMap to stream attempting to preserve resolution, color space and depth as far as the output format allows.

The output format is specified using a file extension. In the case of saving to file, the extension is taken from the file path. In the case of saving to stream, a dummy name should be provided.

For details of the capabilities of output formats, see the XRendering.Save method.


PixMap SetAlpha Function. Sets a constant alpha value (0-255) for this image. ABCpdf .NET PDF Library.

SetAlpha Function

Sets a constant alpha value (0-255) for this image.

Syntax

[C#]
void SetAlpha(double alpha)

[Visual Basic]
Sub SetAlpha(alpha As Double)

Params
Name | Description
alpha | A constant alpha value to assign to this image.

Notes

Assigns a constant alpha transparency to the PixMap.

The alpha value should range from 0 (fully transparent) to 255 (fully opaque). Any values outside this range will result in the alpha channel being removed.

Example

Here we add an image without transparency and then, at a position down and to the right, with 50% transparency.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Pin = XRect.Corner.TopLeft;
  doc.Rect.Magnify(0.5, 0.5);
  string thePath = Server.MapPath("../mypics/mypic.jpg");
  doc.AddImageFile(thePath, 1);
  doc.Rect.Move(doc.Rect.Width, -doc.Rect.Height);
  int i = doc.AddImageFile(thePath, 1);
  ImageLayer im = (ImageLayer)doc.ObjectSoup[i];
  im.PixMap.SetAlpha(128);
  doc.Save(Server.MapPath("pixmapsetalpha.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Pin = XRect.Corner.TopLeft
  doc.Rect.Magnify(0.5, 0.5)
  Dim thePath As String = Server.MapPath("../mypics/mypic.jpg")
  doc.AddImageFile(thePath, 1)
  doc.Rect.Move(doc.Rect.Width, -doc.Rect.Height)
  Dim i As Integer = doc.AddImageFile(thePath, 1)
  Dim im As ImageLayer = DirectCast(doc.ObjectSoup(i), ImageLayer)
  im.PixMap.SetAlpha(128)
  doc.Save(Server.MapPath("pixmapsetalpha.pdf"))
End Using

pixmapsetalpha.pdf


PixMap SetBitmap Function. Set the content of the object as a Bitmap. ABCpdf .NET PDF Library.

SetBitmap Function

Set the content of the object as a Bitmap

Syntax

[C#]
void SetBitmap(System.Drawing.Bitmap bitmap, bool transparent)

[Visual Basic]
Sub SetBitmap(bitmap As System.Drawing.Bitmap, transparent As Boolean)

Params
Name | Description
bitmap | The Bitmap containing the image.
transparent | Whether any transparency information should be preserved.

Notes

Set the content of the object as a System.Drawing.Bitmap.

If transparency is required, the PixMap must be contained within an ObjectSoup.

After the Bitmap has been set, the PixMap will be uncompressed. You may wish to compress it using a call like CompressJpeg or CompressFlate.

Example

See the Doc.AddXObject method..


PixMap SetChromakey Function. Sets a chromakey transparent color for this image. ABCpdf .NET PDF Library.

SetChromakey Function

Sets a chromakey transparent color for this image.

Syntax

[C#]
void SetChromakey(string chromakey)

[Visual Basic]
Sub SetChromakey(chromakey As String)

Params
Name | Description
chromakey | A chromakey string to assign to this image.

Notes

This allows you to assign a transparent color or color range to the image.

You need to specify two values for each component of the color. For a particular pixel, if all the components of the color fall within the specified ranges, then the pixel will not be displayed.

For example, to make pure white elements of an RGB transparent you might specify,

[C#]

doc.SetChromakey("255 255 255 255 255 255");

[Visual Basic]
doc.SetChromakey("255 255 255 255 255 255")

If you wanted to include colors which were off-white you might use,

[C#]

doc.SetChromakey("250 255 250 255 250 255");

[Visual Basic]
doc.SetChromakey("250 255 250 255 250 255")

This function is equivalent to setting the PixMap "/Mask" entry to an array of color values.

Example

Here we add an image over the top of a green background. We use a chromakey to make black and near-black colors transparent.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Inset(20, 20);
  doc.Color.String = "0 255 0";
  doc.FillRect();
  string thePath = Server.MapPath("../mypics/mypic.jpg");
  int i = doc.AddImageFile(thePath, 1);
  ImageLayer im = (ImageLayer)doc.ObjectSoup[i];
  im.PixMap.SetChromakey("0 50 0 50 0 50");
  doc.Save(Server.MapPath("pixmapsetchromakey.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Inset(20, 20)
  doc.Color.String = "0 255 0"
  doc.FillRect()
  Dim thePath As String = Server.MapPath("../mypics/mypic.jpg")
  Dim i As Integer = doc.AddImageFile(thePath, 1)
  Dim im As ImageLayer = DirectCast(doc.ObjectSoup(i), ImageLayer)
  im.PixMap.SetChromakey("0 50 0 50 0 50")
  doc.Save(Server.MapPath("pixmapsetchromakey.pdf"))
End Using

pixmapsetchromakey.pdf


PixMap ToGrayscale Function. Converts the image to grayscale. ABCpdf .NET PDF Library.

ToGrayscale Function

Converts the image to grayscale.

Syntax

[C#]
void ToGrayscale()

[Visual Basic]
Sub ToGrayscale()

Params
Name | Description
none |

Notes

This allows you to convert an image to grayscale. It can be useful for preparing soft masks.

This function is a convenience method for this common operation. A practically identical effect can be achieved using the Recolor method followed by Compress.

Example

Here we add an image in its natural color space and then, at a position down and to the right, converted to grayscale.

[C#]

using (Doc doc = new Doc()) {
  doc.Rect.Pin = XRect.Corner.TopLeft;
  doc.Rect.Magnify(0.5, 0.5);
  string thePath = Server.MapPath("../mypics/mypic.jpg");
  doc.AddImageFile(thePath, 1);
  doc.Rect.Move(doc.Rect.Width, -doc.Rect.Height);
  int i = doc.AddImageFile(thePath, 1);
  ImageLayer im = (ImageLayer)doc.ObjectSoup[i];
  im.PixMap.ToGrayscale();
  doc.Save(Server.MapPath("pixmaptograyscale.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Rect.Pin = XRect.Corner.TopLeft
  doc.Rect.Magnify(0.5, 0.5)
  Dim thePath As String = Server.MapPath("../mypics/mypic.jpg")
  doc.AddImageFile(thePath, 1)
  doc.Rect.Move(doc.Rect.Width, -doc.Rect.Height)
  Dim i As Integer = doc.AddImageFile(thePath, 1)
  Dim im As ImageLayer = DirectCast(doc.ObjectSoup(i), ImageLayer)
  im.PixMap.ToGrayscale()
  doc.Save(Server.MapPath("pixmaptograyscale.pdf"))
End Using

pixmaptograyscale.pdf


PixMap AutoFix Property. Whether to automatically fix corrupt images. ABCpdf .NET PDF Library.

AutoFix Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to automatically fix corrupt images.

Notes

Some corrupt documents can contain corrupt images. The most common type of corruption is the truncation of the image data. However most of the time it is better to use the image data that exists rather than throw an error.

If the AutoFix property is set, then when the image is decompressed it will be checked. If it is found that the data has been truncated then extra blank data will be added onto the end.

Typically such an image will appear containing black content at the bottom. Depending on the amount of truncation in the original data there will be varying amounts of blank space.


PixMap BitsPerComponent Property. The number of bits per color component. ABCpdf .NET PDF Library.

BitsPerComponent Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The number of bits per color component.

Notes

The number of bits per color component.

This property can take the value 1, 2, 4, 8 or 16. Other values are not supported in the PDF Specification.

To change the bits per component of an image use the Resample method.


PixMap ColorSpace Property. The ColorSpace for this image. ABCpdf .NET PDF Library.

ColorSpace Property

Type | Default | Read Only | Description
[C#] ColorSpace [Visual Basic] ColorSpace | n/a | No | The ColorSpace for this image.

Notes

The ColorSpace for this image.

Note that referencing this property may result in the creation of a color space if one does not already exist. So you should avoid querying this property while iterating through the ObjectSoup. If you do so and an object is created then it will invalidate the enumerator and cause an exception to be raised.

Not all PixMaps have color spaces. For example image masks do not and must not contain a color space atom; they are implicitly one bit grayscale. In this case the ColorSpace property will be null.

In most cases properties which you might like to reference via the ColorSpace can be referenced directly via the PixMap. This is a less intrusive way of obtaining the same information.

Querying the value of this property will never raise an exception.

Assigning a value to this property changes the color space without changing the raw pixel values of the image. You might wish to do this if you wanted to convert - say - a DeviceRGB to a CalRGB color space or a DeviceGray to a Separation color space.

The number of components in the two color spaces should be the same. If they are not then an exception will be thrown. If you wish to bypass this check then first set the ColorSpaceType to the base color space and then set this property afterwards.

If you wish to convert the image pixel values from one color space to another then you need to use the Recolor method.


PixMap ColorSpaceType Property. The ColorSpace for this image. ABCpdf .NET PDF Library.

ColorSpaceType Property

Type | Default | Read Only | Description
[C#] ColorSpaceType [Visual Basic] ColorSpaceType | n/a | No | The ColorSpace for this image.

Notes

The ColorSpaceType for this image.

Referencing this property has a number of advantages over referencing the PixMap.ColorSpace.ColorSpaceType property.

Firstly it avoids the possibility that a new ColorSpace object will need to be created.

Secondly it takes account of the fact that certain types of PixMap (e.g. ImageMasks) do not have a ColorSpace. In these cases the ColorSpaceType is implicit in the definition of the PixMap and needs to be inferred by the PixMap itself.


PixMap Components Property. The number of color components for each pixel. ABCpdf .NET PDF Library.

Components Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The number of color components for each pixel.

Notes

The number of color components for each pixel.

For example Grayscale images contain one component, RGB images contain three and CMYK images contain four.

Referencing this property has a number of advantages over referencing the PixMap.ColorSpace.Components property.

Firstly it avoids the possibility that a new ColorSpace object will need to be created.

Secondly it takes account of the fact that certain types of PixMap (e.g. ImageMasks) do not have a ColorSpace. In these cases the number of components is implicit in the definition of the PixMap and needs to be inferred by the PixMap itself.


PixMap Height Property. The height of the image in pixels. ABCpdf .NET PDF Library.

Height Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The height of the image in pixels.

Notes

The height of the image in pixels.


PixMap ImageMask Property. Whether this image is a one bit image mask. ABCpdf .NET PDF Library.

ImageMask Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | n/a | No | Whether this image is a one bit image mask.

Notes

Whether this image is a one bit image mask.

Setting this value to true will change the PixMap to a mask. There are certain restrictions on masks which must be checked before this is done. Namely, if the mask has a Mask of its own, or if the BitsPerComponent is not one then an exception will be raised.

Changing the value to false will remove the mask entry from this PixMap and convert the color space to grayscale. It is your responsibility to detach this object from any PixMaps which may be using it as a mask.


PixMap Mask Property. Any one bit image mask associated with this image. ABCpdf .NET PDF Library.

Mask Property

Type | Default Value | Read Only | Description
[C#] PixMap [Visual Basic] PixMap | n/a | No | Any one bit image mask associated with this image

Notes

One-bit masks do not have the quality of soft masks but they are more compatible with older viewing software, printer RIPs and formats like PDF/A.

If both a SMask and Mask entry are specified, then the SMask will take priority.


PixMap Matte Property. Any matte associated with this soft mask. ABCpdf .NET PDF Library.

Matte Property

Type | Default Value | Read Only | Description
[C#] ArrayAtom [Visual Basic] ArrayAtom | n/a | No | Any matte associated with this soft mask

Notes

The matte is array of components specifying the color with which the image has been preblended. The number of items in the array is equal to the number of components.


PixMap SMask Property. Any soft image mask associated with this image. ABCpdf .NET PDF Library.

SMask Property

Type | Default Value | Read Only | Description
[C#] PixMap [Visual Basic] PixMap | n/a | No | Any soft image mask associated with this image

Notes

Soft masks are higher quality than one bit masks but are less compatible with older viewing software, printer RIPs and formats like PDF/A.

If both a SMask and Mask entry are specified, then the SMask will take priority.


PixMap Width Property. The width of the image in pixels. ABCpdf .NET PDF Library.

Width Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The width of the image in pixels.

Notes

The width of the image in pixels.


Signature Class

Represents a digital signature field in a document.

As well as providing authorization, digital signatures can also be used to detect whether a file has been altered since signing took place.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Field
         WebSupergoo.ABCpdf12.Objects.Signature

Method | Description
Throws Exceptions AddLTV | Add Long Term Validation (LTV) to the Document Security Store (DSS).
Throws Exceptions Certify | Make this a certification signature.
Throws Exceptions Commit | Commit a previously signed signature to the document.
GetCertificates | Extract the encoded X.509 data of the certificate(s).
LockFields | Lock document fields to stop them being modified.
Throws Exceptions Sign | Sign the digital signature using a private key and password.
Throws Exceptions Timestamp | Sign a document timestamp signature field using a Timestamping Authority (TSA).
Throws Exceptions Validate | Check and validate the status of this signature.

Property | Description
Algorithm | The type of hash algorithm used in the signature.
IsCertification | Whether this a certification signature rather than an approval signature.
IsModified | True if the PDF has been tampered with after signing.
IsSecure | True if the signature and document look well formed and well applied.
IsTrusted | True if the signature's certificate is trusted according to the validation policy.
CompliancePades | The signature compliance level.
CustomSigner | A delegate called to perform custom signing of the PDF.
CustomSigner2 | A delegate called to perform custom signing and timestamping of the PDF.
IsTimeValid | True if the signature's certificate was time-valid when the document was signed.
Location | The location of the signing.
Reason | The reason for signing.
Signer | The name of the person signing.
SigningRevision | The revision at which the signature was signed.
Throws Exceptions SigningUtcTime | The time of signing in UTC format.
TimestampHashAlgorithm | The hash algorithm used to create the digest for timestamp requests.
TimestampServiceUrl | The URL to a time-stamping service.
ValidationPolicy | The validation policy for certificates.
Validity | The validity of the signature.


Signature AddLTV Function. Add Long Term Validation (LTV) to the Document Security Store (DSS). ABCpdf .NET PDF Library.

AddLTV Function

Add Long Term Validation (LTV) to the Document Security Store (DSS).

Syntax

[C#]
virtual void AddLTV(Oid oid)

[Visual Basic]
Overridable Sub AddLTV(oid As Oid)

Throws Exceptions may throw Exception()

Params
Name | Description
oid | The hash algorithm to use to create the digest of the signature to be timestamped where uri is specified, for example new Oid("SHA256").

Notes

Add Long Term Validation (LTV) to the Document Security Store (DSS).

The signature must have been signed and committed prior to calling this method.

The certificate used to sign the signature must be time-valid at the time of the call or an exception will be thrown.

The signing certificate and any other certificates in the signing certificate's chain of trust are extracted from the signature.

Additional reference certificates may be added to the ReferenceCertificates member of this Signature.

Each of these certificates is added to the document as a stream, along with any Online Certificate Status Protocol(OCSP) responses and/or Certificate Revocation Lists (CRLs) obtained.

The DSS dictionary is created containing references to these streams.

In addition a signature Validation Related Information (VRI) entry is added which enables fast lookup of information from the DSS.

If the TimestampServiceUrl is set an RFC 3161 timestamp will be stored as a stream with its reference set in to the VRI TS entry.

It it is null then the VRI TU value will be set to the current time from the computer's clock.

For more information see ISO 32000-2:2017 Section 12.8.4 (https://www.iso.org/standard/63534.html).

Example

In this example, for simplicity, we use the plain text password overload. However to improve application security you may wish to use the SecureString overload.

[C#]

using (Doc doc = new Doc()) {
  X509Certificate2 cert = new X509Certificate2(Server.MapPath("MyCertificate.p12"), "mypassword", X509KeyStorageFlags.Exportable);
  doc.Page = doc.AddPage();
  Signature sig = doc.Form.AddSignature(new XRect("340 160 540 220"), "Signature");
  sig.Sign(cert, false);
  sig.Commit();
  sig = (Signature)doc.Form.Fields["Signature"];
  sig.TimestampServiceUrl = new Uri("http://timestamp.comodoca.com");
  sig.AddLTV(new Oid(CryptoConfig.MapNameToOID("SHA256")));
  doc.Save(Server.MapPath("SignedLTV.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Dim cert As New X509Certificate2(Server.MapPath("MyCertificate.p12"), "mypassword", X509KeyStorageFlags.Exportable)
  doc.Page = doc.AddPage()
  Dim sig As Signature = doc.Form.AddSignature(New XRect("340 160 540 220"), "Signature")
  sig.Sign(cert, False)
  sig.Commit()
  sig = DirectCast(doc.Form.Fields("Signature"), Signature)
  sig.TimestampServiceUrl = New Uri("http://timestamp.comodoca.com")
  sig.AddLTV(New Oid(CryptoConfig.MapNameToOID("SHA256")))
  doc.Save(Server.MapPath("SignedLTV.pdf"))
End Using


Signature Certify Function. Make this a certification signature. ABCpdf .NET PDF Library.

Certify Function

Make this a certification signature.

Syntax

[C#]
void Certify()

[Visual Basic]
Sub Certify()

Throws Exceptions may throw Exception()

Params
Name | Description
none |

Notes

Make this a certification signature.

A document may contain at most one certification signature.

A certification signature applies to the entire document as a whole and is used to determine document level integrity.

Typically a certification signature is used by the author of a document to freeze the document and specify in what ways it may be modified.

Then, if the author has allowed it, other people may apply approval signatures to the frozen document.


Signature Commit Function. Commit a previously signed signature to the document. ABCpdf .NET PDF Library.

Commit Function

Commit a previously signed signature to the document.

Syntax

[C#]
void Commit()

[Visual Basic]
Sub Commit()

Throws Exceptions may throw Exception()

Params
Name | Description
none |

Notes

After a signature is signed, it needs to be committed to the document.

Normally, this is done when you save the document. It happens invisibly without you needing to do anything. However, sometimes, you may wish to commit before the document is saved. This most commonly occurs if you are working with documents containing more than one signature field.

The PDF architecture requires that a document be incrementally updated each time a signature is signed. It requires this so that a PDF viewer can show what changes were made to the document between the times it was signed. For this reason, if you are signing multiple fields, each signature (bar the last) needs to be signed and then committed in turn. The last signature does not need to be committed because this is implicitly done by the final save.

A Commit operation involves an implicit Doc.Save event. For this reason it is important that the Doc.SaveOptions are appropriately set up before the signature is Committed. If you intending to commit to a document containing multiple signatures you will want to ensure that the XSaveOptions.Incremental property is set.

Similarly after each commit, all previous references to form fields are invalidated. You need to obtain updated references to form fields from the Doc.Form.Fields property.


Signature GetCertificates Function. Extract the encoded X.509 data of the certificate(s). ABCpdf .NET PDF Library.

GetCertificates Function

Extract the encoded X.509 data of the certificate(s).

Syntax

[C#]
IEnumerable<byte[]> GetCertificates()
IEnumerable<byte[]> GetCertificates(out int outCount)
[Visual Basic]
Function GetCertificates() As IEnumerable(Of Byte())
Function GetCertificates(<Out> ByRef outCount As Integer) As IEnumerable(Of Byte())

Throws Exceptions may throw Exception()

Params
Name | Description
outCount | The number of certificates.
return | The encoded X.509 data for the certificate(s).

Notes

Use this method to extract the encoded X.509 data of the certificate that was used to sign the document. Normally, there is only one certificate returned, but for some documents, you may receive additional certificates that can be used to create a certificate chain. In such cases, the first certificate is always the certificate that was used for signing.

You can pass the data returned by this function to the X509Certificate2 class constructor in System.Security.Cryptography.X509Certificates and then extract certificate details such as the subject, the issuer, the serial number, the version, etc. See the Annotations example project for details.


Signature LockFields Function. Lock document fields to stop them being modified. ABCpdf .NET PDF Library.

LockFields Function

Lock document fields to stop them being modified.

Syntax

[C#]
void LockFields()

[Visual Basic]
Sub LockFields()

Params
Name | Description
none |

Notes

Lock document fields to stop them being modified.

This produces a "Document Locked by Signature" message in the revision history and the document can no longer be modified. This function is known in Acrobat as 'Lock document after signing'.


Signature Sign Function. Sign the digital signature using a private key and password. ABCpdf .NET PDF Library.

Sign Method

Sign the digital signature using a private key and password.

Syntax

[C#]
void Sign(string path, string password)
void Sign(byte[] data, string password)
void Sign(Stream stream, string password)
void Sign(Stream stream, string password, Oid oid)
void Sign(X509Certificate2 cert, bool silent)
void Sign(X509Certificate2 cert, bool silent, Oid oid, X509IncludeOption? option)
void Sign(X509Certificate2 cert, SecureString password, Oid oid)
void Sign(Oid oid, DataType dataType, int sizeEstimate)
void Sign(Oid oid, DataType dataType, int sizeEstimate, X509Certificate2 cert)
[Visual Basic]
Sub Sign(path As String, password As String)
Sub Sign(data() As Byte, password As String)
Sub Sign(stream As Stream, password As String)
Sub Sign(stream As Stream, password As String, oid As Oid)
Sub Sign(cert As X509Certificate2, silent As Boolean)
Sub Sign(cert As X509Certificate2, silent As Boolean, oid As Oid, option As X509IncludeOption?)
Sub Sign(cert As X509Certificate2, password as SecureString, oid as Oid)
Sub Sign(oid As Oid, dataType As DataType, sizeEstimate As Int32)
Sub Sign(oid As Oid, dataType As DataType, sizeEstimate As Int32, cert2 As X509Certificate2)

Throws Exceptions may throw Exception()

Params
Name | Description
path | The path to the PFX/PKCS #12 (.pfx or .p12) file used for signing.
data

The data for the PFX/PKCS #12 (.pfx or .p12) file used for signing.

stream

The stream for the PFX/PKCS #12 (.pfx or .p12) file used for signing.

password

The password used to authorize use of the private key. Depending on the overload used this may be a String or a SecureString.

The SecureString overload must be used if the private key is held on a Hardware Security Module (HSM).

Setting the SecureString value to null will force a prompt for the HSM password from a user.
oid | The OID of the hash algorithm that should be used to create the digest. The default is SHA256 which is what will be used if null is passed.
cert

The System.Security.Cryptography.X509Certificates.X509Certificate2 object for the PFX/PKCS #12 (.pfx or .p12) certificate used for signing.

silent

Whether to suppress prompting the user to use the private key. For non-interactive or unattended operation this parameter should be set to true.

Some certificates contain protected private keys. For example you will get such a certificate if during import you check the option,

"Enable strong private key protected. You will be prompted every time the private key is used by an application if you enable this option."

For such certificates you cannot make the sign operation silent. If you set the silent parameter to true then an exception will be raised. If you set it to false then a dialog box will be displayed asking you to ensure that your use of the private key is authorized.

option

The parts of the signing certificate chain which should be included in the signature. The default is WholeChain which is what will be used if null is passed.

NB this value is ignored unless: the certificate does not have an exportable private key; or has a private key on a Hardware Security Module.
dataType

The data type which will be provided to the CustomSigner or CustomSigner2. This may take the values,

  • DataType.Pkcs9Digest - When signing the callback will be provided with a PKCS9 ASN.1 encoded byte array containing the digest of the PDF content and attributes to be authenticated.
  • DataType.RawDigest - When signing the callback will be provided with a hashed digest of the document data.
  • DataType.TimeStampDigest - When time stamping provide the callback with a hashed digest, the time stamp message imprint, rather than an RFC 3161 time stamp request.
  • DataType.TimeStampToken - When time stamping the callback will return a time stamp token rather than an RFC 3161 time stamp response.
sizeEstimate

The number of bytes to allocate for the SignedCMS returned by the CustomSigner delegate.

Sizes can vary substantially as the SignedCMS may contain may different types of data. However a typical value would be in the range of 3000 to 6000.
cert2 | A template certificate into which the digest can be inserted.

Notes

Use this method to sign a signature field.

In order to sign a signature, you need to use your private key. To authorize the use of this key, you need to provide your password.

If you are using a X509Certificate2 certificate with a password protected private key you need to instantiate the X509Certificate2 instance with the optional parameter X509KeyStorageFlags.Exportable. This will give the Sign method access to the private key. If the private key is not accessible this method will throw an exception. Where the private key is on a Hardware Security Module you should use the SecureString overload as shown in the example under CompliancePades.

If private key is held in an PFX/PKCS #12 (.pfx or .p12) file, you need to provide a path to this file and a password to allow use of the private key.

Different digest algorithms may be used to create signatures. The default is SHA256 but you may also use SHA256, SHA384, SHA512. SHA1 can be specified but is deprecated in PDF 2.0 so it is not advised.

Time-stamped signatures can be produced by using the service of a Time Stamping Authority (TSA). See TimestampServiceUrl. Also see Compliance for TSA requirements under different compliance levels.

If you are signing multiple signature fields in the same PDF document, you should call Commit manually after each signing operation.

The overloads taking a dataType parameter allow you to use a custom delegate to sign the document. The certificate is required here as a template into which the digest can be inserted.

If the file is not available, if the file is invalid or if the password is incorrect, then this function will throw an exception.

Example

If you would like to make your signature compliant to a specific compliance level see Compliance.

Read a document and sign a signature field embedded within that document. Before signing, we specify a location and a reason why the document is being digitally signed.

In this example, for simplicity, we use the plain text password overload. However to improve application security you may wish to use the SecureString overload.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../Rez/Authorization.pdf"));
  Signature theSig = (Signature)doc.Form["Signature"];
  theSig.Location = "Washington";
  theSig.Reason = "Schedule Agreed";
  theSig.Sign(Server.MapPath("../Rez/JohnSmith.pfx"), "1234");
  doc.Save(Server.MapPath("Signed.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../Rez/Authorization.pdf"))
  Dim theSig As Signature = DirectCast(doc.Form("Signature"), Signature)
  theSig.Location = "Washington"
  theSig.Reason = "Schedule Agreed"
  theSig.Sign(Server.MapPath("../Rez/JohnSmith.pfx"), "1234")
  doc.Save(Server.MapPath("Signed.pdf"))
End Using


Signature Timestamp Function. Sign a document timestamp signature field using a Timestamping Authority (TSA). ABCpdf .NET PDF Library.

Timestamp Function

Sign a document timestamp signature field using a Timestamping Authority (TSA).

Syntax

[C#]
virtual void Timestamp(Oid oid, int reserve)
virtual void Timestamp(Oid oid, DataType dataType, int reserve)

[Visual Basic]
Overridable Sub Timestamp(oid As Oid, reserve As int)
Overridable Sub Timestamp(oid As Oid, dataType as DataType, reserve As int)

Throws Exceptions may throw Exception()

Params
Name | Description
oid | The hash algorithm to use to create the digest of the document data, for example new Oid("SHA256").
reserve | The number of bytes to reserve for the returned signed timestamp data. A typical value might be in the region of 5000. If the value is too small an exception will be raised. This value is only relevant if you are using a CustomSigner.
dataType | The type of data to be passed to the CustomSigner and expected back from it. This value is only relevant if you are using a CustomSigner or CustomSigner2. For details of the possible values and what they mean, see the Sign method.

Notes

Sign a document timestamp signature field using a Timestamping Authority (TSA).

The signature must be an unsigned RFC 3161 timestamp signature. If you need to create such a signature you can do so using the XForm.AddDocTimestamp method.

You need to set one of either the TimestampServiceUrl or the CustomSigner properties before calling this function. The TimestampServiceUrl is preferred over the CustomSigner if both are set.

If you are using a CustomSigner the delegate method will be passed the raw SHA256 digest of the object to be time stamped (i.e. the document contents). It should return a DER representation of a timestamp token as defined in RFC 3161.

The timestamp signing operation is queued so you will typically want to call Doc.Save or Commit after calling this function.


Signature Validate Function. Check and validate the status of this signature. ABCpdf .NET PDF Library.

Validate Function

Check and validate the status of this signature.

Syntax

[C#]bool Validate()
bool Validate(string[] certificatePaths)
bool Validate(System.Collections.IEnumerable certificates)
[Visual Basic]Function Validate() As Boolean
Function Validate(certificatePaths() As String) As Boolean
Function Validate(certificates As System.Collections.IEnumerable) As Boolean

Throws Exceptions may throw Exception()

Params
Name | Description
certificatePaths | An array of paths to X.509 certificate (.cer) files.
certificates | A collection of System.Security.Cryptography.X509Certificates.X509Certificate2
return | True if the certificate is valid.

Notes

This function returns true if the signature is valid.

To be precise, this method updates the properties Algorithm, IsModified, IsTimeValid, IsTrusted and CompliancePades. The return value is true only if the IsModified is false, and all of IsTimeValid, IsSecure and IsTrusted are true.

There are two types of signatures. Approval signatures approve a document at a particular point in time. Certification signatures approve the entire document as a one off event.

After a document is signed with an approval signature, the document is not necessarily frozen. Most obviously it may need to be updated if another user wishes to add their own signature. Each time the document is updated a new revision is created. The validity of a signature only refers to the revision at which it was signed - the SigningRevision. So while the signing revision does not affect validity you should be careful to take any subsequent revisions into account when reporting back to the user. Similarly there are some subtleties relating to the IsTrusted property which are worth bearing in mind.

A document may contain one and only one certification signature. A certification signature applies to the entire document as a whole. You can set permissions to allow small changes to be made after the document is certified and in this case the SigningRevision may not be the last revision. However in general you should be extremely cautious if there are subsequent revisions as it is not easy to determine programatically the importance of the changes that have been made. In this case you may wish to load the document at different revisions and display the rendered content to allow the user to see the changes visually.

Signatures' certificates can only be validated by referencing certificates issued by certification authorities. This method allows you to check and validate the status of a signature with reference to a set of such certificates. Additionally, ABCpdf can also use certificates found in the Windows Certificate Store for validation. See ValidationPolicy for details.

The certificates you provide will be cached at a document level so this function is efficient even when checking multiple signatures within one document. If you do not provide any parameters, this function will use the previously cached certificates to validate the document. Therefore, unless ValidationPolicy is set to EntireChainTrust, or certificates have been provided using a previous call to this function, calling the parameterless version of this function will cause an exception to be thrown to indicate that there are no certificates to validate against.

ABCpdf does not currently do revocation checks on certificates provided and on certificates embedded in a PDF document. If you need to do this type of operation, you should use the GetCertificates function and check the certificates yourself.

If a certificate is unavailable or invalid, this method may throw an exception. This means validating against an unsigned signature field will cause an exception to be thrown.

When revocation checking, ABCpdf first checks OCSP responses. If those are not available it will use the CRL. This is the fastest and most effiient way to work.

How does Adobe Reader validate a PDF document without certificate files?

You may find that Adobe Reader does not need a list of certificate files to validate PDF documents. This is because Adobe Reader may use several built-in Public Key Infrastructure hierarchies to certify PDF documents:

  • Certified Document Services (CDS) is a trust hierarchy that chains back to the Adobe Root Certification Authority (Adobe Root CA).
  • Adobe Approved Trust List (AATL) is an extra list of CA certificates that Adobe Reader may download from Adobe periodically (for Adobe Reader/Acrobat 9 or later).
  • The Windows Certificate Store. This is only true if Windows digital signature integration is enabled in Acrobat, which has not been the default since Acrobat 9.

In order to validate a PDF document the same way Adobe Reader does, you need to use the same certificates it uses. This can be easily achieved by exporting the trusted identities from Adobe Reader to .cer format certificate files. (Note: CDS and AATL certificates are usually not in your Windows Certificate Store by default.).

These then need to be placed in the Windows Certificate Store. For them to be trusted they need to be in one of the Trusted folder - Trusted People or Trusted Root Certification Authorities. Needless to say, adding items to these folders - particularly the latter - is a big deal and you must be very careful to ensure you know what you are doing.

The Windows Certificate Store can be accessed by using System.Security.Cryptography.X509Certificates.X509Store (examples below).

Example

[C#]

// Validate using certificate files
using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../Rez/Signed.pdf"));
  string[] theCerts = Server.MapPath("../Rez/JohnSmith.cer").Split(new char[] { ';' });
  Signature theSig = (Signature)doc.Form["Signature"];
  if ((theSig.Validate(theCerts)) && (!theSig.IsModified))
    doc.AddText($"Signature valid at {DateTime.Now}");
  doc.Save(Server.MapPath("SignedAndValidated.pdf"));
}

[Visual Basic]
' Validate using certificate files
Using doc As New Doc()
  doc.Read(Server.MapPath("../Rez/Signed.pdf"))
  Dim theCerts As String() = Server.MapPath("../Rez/JohnSmith.cer").Split(New Char() {";"C})
  Dim theSig As Signature = DirectCast(doc.Form("Signature"), Signature)
  If (theSig.Validate(theCerts)) AndAlso (Not theSig.IsModified) Then
    doc.AddText($"Signature valid at {DateTime.Now}")
  End If
  doc.Save(Server.MapPath("SignedAndValidated.pdf"))
End Using

[C#]

// Validate using the Windows Certificate Store
using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../Rez/Signed.pdf"));
  X509Store theStore = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
  theStore.Open(OpenFlags.ReadOnly);
  Signature theSig = (Signature)doc.Form["Signature"];
  if ((theSig.Validate(theStore.Certificates)) && (!theSig.IsModified))
    doc.AddText($"Signature valid at {DateTime.Now}");
  theStore.Close();
  doc.Save(Server.MapPath("SignedAndValidated.pdf"));
}

[Visual Basic]

' Validate using the Windows Certificate Store
Using doc As New Doc()
  doc.Read(Server.MapPath("../Rez/Signed.pdf"))
  Dim theStore As New X509Store(StoreName.Root, StoreLocation.LocalMachine)
  theStore.Open(OpenFlags.[ReadOnly])
  Dim theSig As Signature = DirectCast(doc.Form("Signature"), Signature)
  If (theSig.Validate(theStore.Certificates)) AndAlso (Not theSig.IsModified) Then
    doc.AddText($"Signature valid at {DateTime.Now}")
  End If
  theStore.Close()
  doc.Save(Server.MapPath("SignedAndValidated.pdf"))
End Using


Signature Algorithm Property. The type of hash algorithm used in the signature. ABCpdf .NET PDF Library.

Algorithm Property

Type | Default Value | Read Only | Description
[C#] System.Security.Cryptography.Oid [Visual Basic] System.Security.Cryptography.Oid | null | Yes | The type of hash algorithm used in the signature.

Example

Different types of hash digest algorithms may be used to generate a document hash for the signature.

For details of the types that may be used when signing a document, see the Sign fuction.

This property reflects the type of algorithm which has been used when validating a document.

For further details see the Validate function and the ValidationPolicy property.


Signature IsModified Property. True if the PDF has been tampered with after signing. ABCpdf .NET PDF Library.

IsModified Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | Yes | True if the PDF has been tampered with after signing.

Example

This property allows you to determine if the PDF has been tampered with after signing.

It is important to understand that certain types of updates are allowed. The validity of this property relates to the validity of the particular revision of the document. So it allows you to determine if the original PDF has been tampered with in any way.

However it is possible to update PDF by incrementally updating the revision. This will provide a document which contains modifications but can be backtracked to show the exact state of the document at the point that a particular signature was applied.

Most commonly this is needed when multiple signatures are being applied as each signature needs to be applied to a new revision of the document and to be valid for that particular revision.

See also the Validate function.


Signature IsSecure Property. True if the signature and document look well formed and well applied. ABCpdf .NET PDF Library.

IsSecure Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | Yes | True if the signature and document look well formed and well applied.

Example

True if the signature and document look well formed and well applied.

A signature with a PDF document occupies a specific portion of that document and should cover the rest of the document. However it is possible to create signatures which conform technically but are badly or suspiciously applied.

For example one could create a signature which did not cover the start of a document. While this is legal it is not sensible and this kind of structure should be regarded as insecure.

This property can be used to determine whether the signature has been well and sensibly applied.


Signature IsTrusted Property. True if the signature's certificate is trusted according to the validation policy. ABCpdf .NET PDF Library.

IsTrusted Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | Yes | True if the signature's certificate is trusted according to the validation policy.

Example

See the Validate function and the ValidationPolicy property for details of how this property is determined.

Note that it is possible for a signature to be untrusted but still PAdES compliant.

For example if a document was signed a decade ago it might no longer be possible to validate the trust chain so it would be untrusted.

However PAdES Long Term Validation (LTV) signatures embedded in the document might provide evidence that the signature had been compliant. If those the LTV signatures are trusted, by impllcation the signature itself is still trusted.

This type of situation is indicated by an IsTrusted value of false and a ComplaincePades which is not None.


Signature CompliancePades Property. The signature compliance level. ABCpdf .NET PDF Library.

CompliancePades Property

Type | Default Value | Read Only | Description
[C#] PadesLevel [Visual Basic] PadesLevel | PadesLevel.None | No | The signature compliance level.

Notes

The signature PAdES compliance level.

The PadesLevel enumeration may take the following values:

  • None
  • PAdES_B_B - basic signature
  • PAdES_B_T - with added authoritative timestamp
  • PAdES_B_LT - with added Long Term Validation (LTV) information
  • PAdES_B_LTA - with added authoritative document timestamp signature

When you call one of the Sign methods, this property specifies the desired compliance level the document should conform to.

When you call Validate, this value will be set to the highest compliance level the signature conforms to. If Validate has not been called on an existing signature, this value will remain set to its default value of PadesLevel.None.

Any PAdES compliance level greater than PAdES_B_B, means that it is also compliant to any of the preceeding PAdES compliance levels in the order specified above. So PAdES_B_LT is also PAdES_B_T and PAdES_B_B compliant.

If a compliance level of PAdES_B_T or above is specified when signing, a Timestamp Authority will be required. If a TimestampServiceUrl is specified then that value is used. If no TimestampServiceUrl is specified and the signing certificate has a certificate extension with Oid 1.2.840.113583.1.1.9.1, this extension value is used. Otherwise an exception is thrown.

If a compliance level of PAdES_B_LT or PAdES_B_LTA is specified when signing, the signing certificate should have online OCSP and/or online CRL certificate extensions specified in one of the certificates in the chain of trust.

PAdES baseline compliance levels are specified in ETSI TS 103 172 which can be found at www.etsi.org.

Example

The following example shows how to sign a PAdES_B_LTA signature with a certificate with its private key on a Hardware Security Module (HSM).

Usually when the HSM is inserted any certificates are automatically inserted into the Windows Certificate Store. The signing certificate can then be obtained via the .NET X509Store interface.

To silently sign using a certificate on an HSM you will need to provide the password as a SecureString.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("mypics/BlankSignature.pdf"));
  Signature sig = (Signature)doc.Form.Fields["Signature1"];
  sig.Reason = "Final Version";
  sig.Location = "New York";
  sig.TimestampServiceUrl = new Uri("http://timestamp.digicert.com");
  sig.CompliancePades = Signature.PadesLevel.PAdES_B_LTA;
  X509Certificate2 cert = Certificates.GetFromStore(); // User-defined function
  SecureString pwd = new SecureString();
  foreach (char c in "password".ToCharArray())
    pwd.AppendChar(c);
  sig.Sign(cert, pwd, new Oid(CryptoConfig.MapNameToOID("SHA256")));
  doc.Save(Server.MapPath("SignedDoc.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("mypics/BlankSignature.pdf"))
  Dim sig As Signature = DirectCast(doc.Form.Fields("Signature1"), Signature)
  sig.Reason = "Final Version"
  sig.Location = "New York"
  sig.TimestampServiceUrl = New Uri("http://timestamp.digicert.com")
  sig.CompliancePades = Signature.PadesLevel.PAdES_B_LTA
  Dim cert As X509Certificate2 = Certificates.GetFromStore()
  ' User-defined function
  Dim pwd As New SecureString()
  For Each c As Char In "password".ToCharArray()
    pwd.AppendChar(c)
  Next
  sig.Sign(cert, pwd, New Oid(CryptoConfig.MapNameToOID("SHA256")))
  doc.Save(Server.MapPath("SignedDoc.pdf"))
End Using


Signature CustomSigner Property. A delegate called to perform custom signing of the PDF. ABCpdf .NET PDF Library.

CustomSigner Property

Type | Default Value | Read Only | Description
[C#] SigningDelegate [Visual Basic] SigningDelegate | null | No | A delegate called to perform custom signing of the PDF.

Notes

A delegate called to perform a custom signing of the PDF content digest and signed attributes.

You should prefer the use of the CustomSigner2 property over this one, as it provides a more extensible implementation and will form the basis of future development.

The definition of the SigningDelegate delegate is as follows.

[C#]

delegate byte[] SigningDelegate(byte[] data);

[Visual Basic]
Delegate Function SigningDelegate(data As Byte()) As Byte();

The type of data passed to your delegate is determined by the data type you specify when you call the Sign method. The default type is DataType.Pkcs9Digest which is what will be used if you do not specify a type.

For DataType.Pkcs9Digest the data is an ASN.1 encoded PKCS9 digest of the PDF content which includes the digest of the document data with additional attributes required according to any desired CompliancePades level that you have specified. For DataType.RawDigest the data is the raw digest of the document data.

In either case ABCpdf will create the digest using the algorithm specified by the Oid passed to the Signature.Sign method. Where the Sign method overload does not take an Oid the default algorithm of SHA256 will be used.

For best results the CustomSigner should return the raw signature of this data such as that returned by RSACryptoServiceProvider.SignData (.NET 4) or RSACng.SignData (.NET 5+). This ensures that ABCpdf can add any additional unsigned attributes required for PAdES compliance.

If ABCpdf detects that the data returned is already in PKCS7 CMS format it will embed that data into the document as is, with no further processing. This is sometimes needed to accommodate certain third-party signing solutions. In this case any desired compliance will be dependent upon your solution provider.

The best way to determine the type of data your signing provider returns, is to paste the byte array as a hexadecimal string into a decoder such as the LAPO ASN.1 JavaScript Decoder. If it can be decoded it is already in PKCS7 format. If it cannot then it is most likely the raw signature of the digest.

When writing code against your signing provider it is prudent to Validate the document to ensure you are providing correct data. See the example below for details.

Example

The following example shows how an external delegate might be used.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("mypics/pic.jpg"));
  Signature sig = (Signature)doc.Form.Fields["Signature1"];
  sig.CustomSigner = AddressOf ExternalSigner;
  sig.Reason = "Test External Signing";
  // Just use public certificate from file - i.e. do not obtain from registry
  X509Certificate2 cert = new X509Certificate2(Server.MapPath("GlobalSign.cer"));
  sig.Sign(cert, true, new Oid(CryptoConfig.MapNameToOID("SHA512")), X509IncludeOption.EndCertOnly);
  // here we commit and validate to ensure the data is correct
  sig.Commit();
  sig = (Signature)doc.Form.Fields["Signature1"]; // signature must be re-retrieved after a Commit/Save
  if(!sig.Validate())
    throw new Exception("Signing failed!");
  doc.Save(Server.MapPath("SignedDoc.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("mypics/pic.jpg"))
  Dim sig As Signature = DirectCast(doc.Form.Fields("Signature1"), Signature)
  sig.CustomSigner = ExternalSigner
  sig.Reason = "Test External Signing"
  ' Just use public certificate from file - i.e. do not obtain from registry
  Dim cert As New X509Certificate2(Server.MapPath("GlobalSign.cer"))
  sig.Sign(cert, True, New Oid(CryptoConfig.MapNameToOID("SHA512")), X509IncludeOption.EndCertOnly)
  ' here we commit and validate to ensure the data is correct
  sig.Commit
  sig = DirectCast(doc.Form.Fields("Signature1"), Signature) 'signature must be re-retrieved after a Commit/Save
  If Not sig.Validate Then
    sThrow New Exception("Signing failed!")
  End If
  doc.Save(Server.MapPath("SignedDoc.pdf"))
End Using

The code above uses the following External Signer.

[C#]

byte[] ExternalSigner(byte[] data) {
  string serial = "10 20 30 10 40 10 40 50 60 10 20 30"; // needs value
  SecureString password = new SecureString(); // needs value
  X509Certificate2 cert = null;
  X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
  try {
    store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly | OpenFlags.MaxAllowed);
    cert = store.Certificates.Find(X509FindType.FindBySerialNumber, serial, false)[0];
  }
  finally {
    store.Close();
  }
  if (cert.PrivateKey is RSACryptoServiceProvider == false)
    throw new Exception("Unsupported key type.");
  RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)cert.PrivateKey;
  CspParameters cspParams = new CspParameters(1, rsa.CspKeyContainerInfo.ProviderName,
    rsa.CspKeyContainerInfo.UniqueKeyContainerName) {
    KeyPassword = password,
    Flags = CspProviderFlags.NoPrompt
  };
  RSACryptoServiceProvider service = new RSACryptoServiceProvider(cspParams);
  return service.SignData(data, CryptoConfig.MapNameToOID("SHA512"));
}

[Visual Basic]
Private Function ExternalSigner(data As Byte()) As Byte()
  Dim serial As String = "10 20 30 10 40 10 40 50 60 10 20 30"

  Dim password As New SecureString()

  Dim cert As X509Certificate2 = Nothing
  Dim store As New X509Store(StoreName.My, StoreLocation.CurrentUser)
  Try
    store.Open(OpenFlags.[ReadOnly] Or OpenFlags.OpenExistingOnly Or OpenFlags.MaxAllowed)
    cert = store.Certificates.Find(X509FindType.FindBySerialNumber, serial, False)(0)
  Finally
    store.Close()
  End Try
  If TypeOf cert.PrivateKey Is RSACryptoServiceProvider = False Then
    Throw New Exception("Unsupported key type.")
  End If
  Dim rsa As RSACryptoServiceProvider = DirectCast(cert.PrivateKey, RSACryptoServiceProvider)
  Dim cspParams As New CspParameters(1, rsa.CspKeyContainerInfo.ProviderName, rsa.CspKeyContainerInfo.UniqueKeyContainerName) With { _
    .KeyPassword = password, _
    .Flags = CspProviderFlags.NoPrompt _
  }
  Dim service As New RSACryptoServiceProvider(cspParams)
  Return service.SignData(data, CryptoConfig.MapNameToOID("SHA512"))
End Function


Signature CustomSigner2 Property. The delegate type called to perform custom signing and timestamping of the PDF. ABCpdf .NET PDF Library.

CustomSigner2 Property

Type | Default Value | Read Only | Description
[C#] SigningDelegate2 [Visual Basic] SigningDelegate2 | null | No | A delegate called to perform custom signing of the PDF.

Notes

The delegate type called to perform custom signing and timestamping of the PDF.

The definition of the SigningDelegate2 delegate is as follows.

[C#]

delegate byte[] SigningDelegate2(byte[] data, State state);

[Visual Basic]
Delegate Function SigningDelegate2(data As Byte(), state As State) As Byte();

Because a call to Sign can generate both signing and timestamping callbacks, the state parameter allows you to determine which is required. The State flags enum can hold the following values,

  • None
  • Signing
  • Timestamping

For signing...

The type of data passed to your delegate is determined by the data type you specify when you call the Sign method. The default type is DataType.Pkcs9Digest which is what will be used if you do not specify a type.

For DataType.Pkcs9Digest the data is an ASN.1 encoded PKCS9 digest of the PDF content which includes the digest of the document data with additional attributes required according to any desired CompliancePades level that you have specified. For DataType.RawDigest the data is the raw digest of the document data.

In either case ABCpdf will create the digest using the algorithm specified by the Oid passed to the Signature.Sign method. Where the Sign method overload does not take an Oid the default algorithm of SHA256 will be used.

For best results the CustomSigner should return the raw signature of this data such as that returned by RSACryptoServiceProvider.SignData (.NET 4) or RSACng.SignData (.NET 5+). This ensures that ABCpdf can add any additional unsigned attributes required for PAdES compliance.

If ABCpdf detects that the data returned is already in PKCS7 CMS format it will embed that data into the document as is, with no further processing. This is sometimes needed to accommodate certain third-party signing solutions. In this case any desired compliance will be dependent upon your solution provider.

The best way to determine the type of data your signing provider returns, is to paste the byte array as a hexadecimal string into a decoder such as the LAPO ASN.1 JavaScript Decoder. If it can be decoded it is already in PKCS7 format. If it cannot then it is most likely the raw signature of the digest.

For timestamping...

If a TimestampServiceUrl is provided then this will be used for time stamping, but if one is not provided, then the custom signer will be used.

By default for timestamping you are provided an RFC 3161 time stamp request and you should return an RFC 3161 time stamp response.

However you can change the input and output timestamp data types by setting appropriate flags in the DataType parameter when calling Timestamp or Sign.

Also...

When writing code against your signing provider it is prudent to Validate the document to ensure you are providing correct data. See the example below for details.

Example

The following example shows how an external delegate might be used.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("mypics/pic.jpg"));
  Signature sig = (Signature)doc.Form.Fields["Signature1"];
  sig.CustomSigner2 = AddressOf ExternalSigner;
  sig.Reason = "Test External Signing";
  // Just use public certificate from file - i.e. do not obtain from registry
  X509Certificate2 cert = new X509Certificate2(Server.MapPath("GlobalSign.cer"));
  sig.Sign(cert, true, new Oid(CryptoConfig.MapNameToOID("SHA512")), X509IncludeOption.EndCertOnly);
  // here we commit and validate to ensure the data is correct
  sig.Commit();
  sig = (Signature)doc.Form.Fields["Signature1"]; // signature must be re-retrieved after a Commit/Save
  if(!sig.Validate())
    throw new Exception("Signing failed!");
  doc.Save(Server.MapPath("SignedDoc.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("mypics/pic.jpg"))
  Dim sig As Signature = DirectCast(doc.Form.Fields("Signature1"), Signature)
  sig.CustomSigner2 = ExternalSigner
  sig.Reason = "Test External Signing"
  ' Just use public certificate from file - i.e. do not obtain from registry
  Dim cert As New X509Certificate2(Server.MapPath("GlobalSign.cer"))
  sig.Sign(cert, True, New Oid(CryptoConfig.MapNameToOID("SHA512")), X509IncludeOption.EndCertOnly)
  ' here we commit and validate to ensure the data is correct
  sig.Commit
  sig = DirectCast(doc.Form.Fields("Signature1"), Signature) 'signature must be re-retrieved after a Commit/Save
  If Not sig.Validate Then
    sThrow New Exception("Signing failed!")
  End If
  doc.Save(Server.MapPath("SignedDoc.pdf"))
End Using

The code above uses the following External Signer.

[C#]

byte[] ExternalSigner(byte[] data, State state) {
  string serial = "10 20 30 10 40 10 40 50 60 10 20 30"; // needs value
  SecureString password = new SecureString(); // needs value
  X509Certificate2 cert = null;
  X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
  try {
    store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly | OpenFlags.MaxAllowed);
    cert = store.Certificates.Find(X509FindType.FindBySerialNumber, serial, false)[0];
  }
  finally {
    store.Close();
  }
  if (cert.PrivateKey is RSACryptoServiceProvider == false)
    throw new Exception("Unsupported key type.");
  RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)cert.PrivateKey;
  CspParameters cspParams = new CspParameters(1, rsa.CspKeyContainerInfo.ProviderName,
    rsa.CspKeyContainerInfo.UniqueKeyContainerName) {
    KeyPassword = password,
    Flags = CspProviderFlags.NoPrompt
  };
  RSACryptoServiceProvider service = new RSACryptoServiceProvider(cspParams);
  return service.SignData(data, CryptoConfig.MapNameToOID("SHA512"));
}

[Visual Basic]
Private Function ExternalSigner(data As Byte(), state As State) As Byte()
  Dim serial As String = "10 20 30 10 40 10 40 50 60 10 20 30"

  Dim password As New SecureString()

  Dim cert As X509Certificate2 = Nothing
  Dim store As New X509Store(StoreName.My, StoreLocation.CurrentUser)
  Try
    store.Open(OpenFlags.[ReadOnly] Or OpenFlags.OpenExistingOnly Or OpenFlags.MaxAllowed)
    cert = store.Certificates.Find(X509FindType.FindBySerialNumber, serial, False)(0)
  Finally
    store.Close()
  End Try
  If TypeOf cert.PrivateKey Is RSACryptoServiceProvider = False Then
    Throw New Exception("Unsupported key type.")
  End If
  Dim rsa As RSACryptoServiceProvider = DirectCast(cert.PrivateKey, RSACryptoServiceProvider)
  Dim cspParams As New CspParameters(1, rsa.CspKeyContainerInfo.ProviderName, rsa.CspKeyContainerInfo.UniqueKeyContainerName) With { _
    .KeyPassword = password, _
    .Flags = CspProviderFlags.NoPrompt _
  }
  Dim service As New RSACryptoServiceProvider(cspParams)
  Return service.SignData(data, CryptoConfig.MapNameToOID("SHA512"))
End Function


Signature IsCertification Property. Whether this a certification signature rather than an approval signature. ABCpdf .NET PDF Library.

IsCertification Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | n/a | Yes | Whether this a certification signature rather than an approval signature

Example

Whether this a certification signature rather than an approval signature.

A document may contain one at most one certification signature, applying to the document as a whole.

It allows the detection of changes to the document, the origin or the author of the document and specifies ways in which the document may be modified or acted upon.

The ways in which a document may be modified are typically very small as the core function of a certification signature is to maintain document integrity.


Signature IsTimeValid Property. True if the signature's certificate was time-valid when the document was signed. ABCpdf .NET PDF Library.

IsTimeValid Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | Yes | True if the signature's certificate was time-valid when the document was signed.

Example

See the Validate function.


Signature Location Property. The location of the signing. ABCpdf .NET PDF Library.

Location Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | null | No | The location of the signing.

Notes

The location of the signing.

If you wish to set a value for this property, you should do so before calling the Sign function.

This property can take null as a value. This indicates that no location was provided.

Note that this property can only be relied on if the certificate is valid. You can check whether the certificate is valid using the Validate function.

Example

See the Sign function.


Signature Reason Property. The reason for signing. ABCpdf .NET PDF Library.

Reason Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | null | No | The reason for signing.

Notes

The reason for signing.

If you wish to set a value for this property, you should do so before calling the Sign function.

This property can take null as a value. This indicates that no reason was given.

Note that this property can only be relied on if the certificate is valid. You can check whether the certificate is valid using the Validate function.

Example

See the Sign function.


Signature Signer Property. The name of the person signing. ABCpdf .NET PDF Library.

Signer Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | See description. | No | The name of the person signing.

Notes

The name of the person signing.

When you call the Sign function the name of the signer is automatically updated to match the name associated with the private key.

Note that this property can only be relied on if the certificate is valid. You can check whether the certificate is valid using the Validate function.

You will not need to change the value of this property unless you are writing low level signature manipulation code.


Signature SigningRevision Property. The revision at which the signature was signed. ABCpdf .NET PDF Library.

SigningRevision Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] int | See description. | Yes | The revision at which the signature was signed.

Notes

The revision at which the signature was signed.

Content can be added to a document after signature. Most commonly this occurs if someone wishes to countersign an already signed document.

The original signature remains valid because it applies to the original document but you may wish to indicate that the document has been changed.

If the document has been modified in this way the SigningRevision will be less than the Doc.ObjectSoup.Revisions.

To detect the actual visible differences you would need to render the document at each revision using the XReadOptions.SkipRevisions property.

Note that you should check the IsModified property before relying on the value of this property.


Signature SigningUtcTime Property. The time of signing in UTC format. ABCpdf .NET PDF Library.

SigningUtcTime Property

Type | Default Value | Read Only | Description
[C#] DateTime [Visual Basic] DateTime | See description. | No | The time of signing in UTC format.

Throws Exceptions may throw Exception()

Notes

The time of signing in UTC format.

When you call the Sign function, the UTC time is automatically updated.

Note that this property can only be relied on if the certificate is valid. You can check whether the certificate is valid using the Validate function.

You will not need to change the value of this property unless you are writing low level signature manipulation code.

If the format of the date in the PDF is incorrect, then querying the value of this property may result in an exception being thrown.


Signature TimestampHashAlgorithm Property. The hash algorithm used to create the digest for timestamp requests. ABCpdf .NET PDF Library.

TimestampHashAlgorithm Property

Type | Default Value | Read Only | Description
[C#] System.Security.Cryptography.Oid [Visual Basic] System.Security.Cryptography.Oid | Oid("SHA256") | No | The hash algorithm used to create the digest for timestamp requests.

Notes

This property enables you to specify the hash algorithm to be used for timestamp requests using your desired Time Stamping Authority (TSA).

In signature workflows there may be a number of different timestamps:

  • The signature itself may be timestamped as with PAdES B_T compliance.
  • An optional timestamp entry (/TS) may be added to the /VRI entry in the Document Security Store (DSS) for PAdES B_LT.
  • A document timestamp is a special form of signature certifying the document at a particular time, as with PAdES B_LTA compliance.

For convenience when a signature is created with SignatureCompliance set to a level above PAdES_B_B this value is used to compute the digests for all required timestamping operations.

Note that MD5 or SHA1 should not be used where PAdES conformance is required.

It is unlikely that you would need to change this from the default Oid for SHA256.


Signature TimestampServiceUrl Property. The URL to a time-stamping service. ABCpdf .NET PDF Library.

TimestampServiceUrl Property

Type | Default Value | Read Only | Description
[C#] System.Uri [Visual Basic] System.Uri | null | No | The URL to a time-stamping service.

Notes

If this property is not null when you call Sign, an X.509 RFC 3161 time-stamped signature will be created by using the service provided in the URL. Note that this property serves as an option for Sign, and is not persisted in the PDF document.

If your time-stamping service provider requires authentication, you can specify your credentials in the Uri. For example, "https://username:password@example.com/tsp".

ABCpdf uses System.Net.WebRequest to send the time-stamping request. You can use System.Net.ServicePointManager.ServerCertificateValidationCallback to customize trust relationship establishment when you connect to an SSL/TLS channel.


Signature ValidationPolicy Property. The validation policy for certificates. ABCpdf .NET PDF Library.

ValidationPolicy Property

Type | Default Value | Read Only | Description
[C#] ValidationPolicyType [Visual Basic] ValidationPolicyType | EntireChainTrust | No | The validation policy for certificates.

Notes

The validation policy for certificates.

The ValidationPolicyType enumeration may take the following values:

  • EntireChainTrust
  • CertificateSignatureOnly

When you call Validate, you can choose to provide additional certificates. This property indicates how such certificates are used and how the certificates in the document signature are validated.

When you set this property to EntireChainTrust, ABCpdf checks whether the certificates in the document signature can be validated against a trusted root Certificate Authority (trust anchor) by performing a X.509 certification path validation as described in RFC 5280. ABCpdf will use the certificates found in "Trusted Root Certification Authorities" in the Windows Certificate Store of the local machine as trust anchors. Certificates you pass into the Validate method will be regarded as additional trust anchors.

When you set this property to CertificateSignatureOnly, ABCpdf checks whether at least one of the certificates in the document signature has been signed with the public key of one of the certificates passed to Validate. When this value is set, Validate does not check the Windows Certificate Store. If no certificates have been passed to Validate, an exception will be thrown.

EntireChainTrust is a sensible default because it is how Acrobat builds up a certificate trust chain and also how PKI generally works.


Signature Validity Property. The validity of the signature. ABCpdf .NET PDF Library.

Validity Property

Type | Default Value | Read Only | Description
[C#] Signature.ValidationInfo [Visual Basic] Signature.ValidationInfo | null | Yes | The validity of the signature.

Notes

The validation properties of the signature returned by the last call to Validate.

If Validate has not been called then this property will be null.


Signature.ValidationInfo

ValidationInfo Class

The validation properties of a PDF signature.

System.Object
   WebSupergoo.ABCpdf12.Objects.ValidationInfo

Method
 Description

Property | Description
SignerName | The name of the signer of the signature as specified on the signer's certificate.
SigningTime | The most authoritative UTC signing time for the signature.
SigningTimeIsTrusted | Whether the SigningTime is an embedded timestamp.
RevocationCheckingTime | "The time the signature was validated.
SignatureIsLTVEnabled | Whether the signature has long-term validation information.
DocumentRevision | The document revision the signature applies to.
SigningCertificate | The X509 certificate used to sign the PKCS#7 signature.
CertificateChain | The X509Chain as used to validate the signature.


Objects ValidationInfo SignerName Property. The name of the signer of the signature as specified on the signer's certificate. ABCpdf .NET PDF Library.

SignerName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | Yes | The name of the signer of the signature as specified on the signer's certificate.

Notes
The name of the signer of the signature as specified on the signer's certificate.


Objects ValidationInfo SigningTime Property. The most authoritative UTC signing time for the signature. ABCpdf .NET PDF Library.

SigningTime Property

Type | Default Value | Read Only | Description
[C#] DateTime [Visual Basic] DateTime | null | Yes | The most authoritative UTC signing time for the signature.

Notes
The most authoritative UTC signing time for the signature.


Objects ValidationInfo SigningTimeIsTrusted Property. Whether the SigningTime is an embedded timestamp. ABCpdf .NET PDF Library.

SigningTimeIsTrusted Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | Yes | Whether the SigningTime is an embedded timestamp.

Notes
Whether the SigningTime is an embedded timestamp.


Objects ValidationInfo RevocationCheckingTime Property. "The time the signature was validated. ABCpdf .NET PDF Library.

RevocationCheckingTime Property

Type | Default Value | Read Only | Description
[C#] DateTime? [Visual Basic] DateTime? | null | Yes | "The time the signature was validated.

Notes
The time the signature was validated. For signatures with long-term validation information this may be in the past.


Objects ValidationInfo SignatureIsLTVEnabled Property. Whether the signature has long-term validation information. ABCpdf .NET PDF Library.

SignatureIsLTVEnabled Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | Yes | Whether the signature has long-term validation information.

Notes
Whether the signature has long-term validation information.


Objects ValidationInfo DocumentRevision Property. The document revision the signature applies to. ABCpdf .NET PDF Library.

DocumentRevision Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | Yes | The document revision the signature applies to.

Notes
The document revision the signature applies to.


Objects ValidationInfo SigningCertificate Property. The X509 certificate used to sign the PKCS#7 signature. ABCpdf .NET PDF Library.

SigningCertificate Property

Type | Default Value | Read Only | Description
[C#] X509Certificate2 [Visual Basic] X509Certificate2 | null | Yes | The X509 certificate used to sign the PKCS#7 signature.

Notes
The X509 certificate used to sign the PKCS#7 signature.


Objects ValidationInfo CertificateChain Property. The X509Chain as used to validate the signature. ABCpdf .NET PDF Library.

CertificateChain Property

Type | Default Value | Read Only | Description
[C#] X509Chain [Visual Basic] X509Chain | null | Yes | The X509Chain as used to validate the signature.

Notes
The X509Chain as used to validate the signature.


StreamObject Class

A PDF data stream.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.StreamObject
         WebSupergoo.ABCpdf12.Objects.D3DStream
         WebSupergoo.ABCpdf12.Objects.EmbeddedFile
         WebSupergoo.ABCpdf12.Objects.FormXObject
         WebSupergoo.ABCpdf12.Objects.IccProfile
         WebSupergoo.ABCpdf12.Objects.Layer
         WebSupergoo.ABCpdf12.Objects.PixMap

Method | Description
Throws Exceptions StreamObject | StreamObject Constructor.
ClearData | Clear the data and compression settings for the stream.
ClearCachedDecompressed | Clear the cached, decompressed data for the stream.
Compress | Compress the data in the stream.
CompressAscii85 | Compress the data in the stream using ASCII 85 encoding.
CompressAsciiHex | Compress the data in the stream using the ASCII Hex encoding.
CompressFlate | Compress the data in the stream using Flate compression.
CompressRunLength | Compress the data in the stream using run length encoding.
CopyDecompressedData | Copy the decompressed binary content of the stream into a byte array.
Decompress | Decompress the data in the stream.
GetData | Get the raw binary content of the stream.
GetText | Get the content of the stream as a string.
SetData | Set the raw binary content of the stream.
Throws Exceptions SetFile | Set the raw binary content of the stream using data from a file.
SetText | Set the content of the stream as a string.
 | inherited methods...

Property | Description
Compressed | Whether the stream data is compressed or otherwise encoded.
Compression | The primary compression type.
Compressions | All the compression types applied to the stream.
Length | The number of bytes of encoded stream data.
 | inherited properties...


StreamObject StreamObject Function. StreamObject Constructor. ABCpdf .NET PDF Library.

StreamObject Constructor

StreamObject Constructor.

Syntax

[C#]
StreamObject(ObjectSoup soup)
StreamObject(ObjectSoup soup, byte[] data)
StreamObject(ObjectSoup soup, string path)

[Visual Basic]
Sub New(soup As ObjectSoup)
Sub New(soup As ObjectSoup, data() As Byte)
Sub New(soup As ObjectSoup, path As String)

Throws Exceptions may throw Exception()

Params
Name | Description
soup | The ObjectSoup to contain the newly created StreamObject.
data | An array of bytes which should be placed in the StreamObject.
path | A path to a file containing data which should be placed in the StreamObject.

Notes

Create a StreamObject.

If no arguments are passed then the StreamObject contains no data. No exception will be thrown.

If an array of bytes is passed then the StreamObject data will be initialized with the contents of the array. No exception will be thrown.

If a string is passed then the StreamObject data will be initialized with the contents of the file. If the file cannot be read then an exception is thrown.


StreamObject ClearData Function. Clear the data and compression settings for the stream. ABCpdf .NET PDF Library.

ClearData Function

Clear the data and compression settings for the stream.

Syntax

[C#]
void ClearData()

[Visual Basic]
Sub ClearData()

Params
Name | Description
none |

Notes

Clears all data and compression settings leaving the stream empty of data.


StreamObject ClearCachedDecompressed Function. Clear the cached, decompressed data for the stream. ABCpdf .NET PDF Library.

ClearCachedDecompressed Function

Clear the cached, decompressed data for the stream.

Syntax

[C#]
void ClearCachedDecompressed()

[Visual Basic]
Sub ClearCachedDecompressed()

Params
Name | Description
none |

Notes

The uncompressed data are retrieved from compressed streams during most operations, but the streams are still compressed. The uncompressed data are sometimes cached so that later operations (including the actual decompression of the streams) need not invoke the decompression algorithm.

This increases the memory usage, and it is not desirable if the document is to be kept in memory for an extended period of time.

This method discards the cached, decompressed data so that a re-read of the document is not required to release the memory.

You can apply the effect to multiple stream objects using Doc.ClearCachedDecompressedStreams.


StreamObject Compress Function. Compress the data in the stream. ABCpdf .NET PDF Library.

Compress Function

Compress the data in the stream.

Syntax

[C#]
void Compress()

[Visual Basic]
Sub Compress()

Params
Name | Description
none |

Notes

Compresses the data in the stream if it is not already compressed.


StreamObject CompressAscii85 Function. Compress the data in the stream using ASCII 85 encoding. ABCpdf .NET PDF Library.

CompressAscii85 Function

Compress the data in the stream using ASCII 85 encoding.

Syntax

[C#]
bool CompressAscii85()
bool CompressAscii85(bool force)

[Visual Basic]
Sub CompressAscii85() As Boolean
Sub CompressAscii85(force As Boolean) As Boolean

Params
Name | Description
force | Whether to force the stream to be compressed in this way.
return | Whether the compression was applied.

Notes

Compress the data in the stream using ASCII 85 encoding.

ASCII 85 replaces each five bytes of data with a four character ASCII notation. As such it is not strictly a compression method and it will result in the data size increasing by about twenty percent. However the resultant data will be ASCII, which can be useful if you need to treat the PDF data as text.

PDF streams allow a set of compression filters to be applied to a stream of data. For example one might want to apply Flate compression and then ASCII85 encode the result. This is represented as two compression filters in sequence.

This function does not decompress the stream. So if compression is already present, then this method will compress the already-encoded data and append a compression specification to the sequence.

ABCpdf tries to avoid creating certain compression sequences. Some compression types on some objects are illegal. Some sequences are legal but not supported within Acrobat (though they are in most other viewers). However these are unusual situations and you are unlikely to ever see them.

You can override this behavior by forcing the compression to take place. However if you do this you may end up creating a document which is invalid or unviewable in Acrobat.


StreamObject CompressAsciiHex Function. Compress the data in the stream using the ASCII Hex encoding. ABCpdf .NET PDF Library.

CompressAsciiHex Function

Compress the data in the stream using the ASCII Hex encoding.

Syntax

[C#]
bool CompressAsciiHex()
bool CompressAsciiHex(bool force)

[Visual Basic]
Sub CompressAsciiHex() As Boolean
Sub CompressAsciiHex(force As Boolean) As Boolean

Params
Name | Description
force | Whether to force the stream to be compressed in this way.
return | Whether the compression was applied.

Notes

Compress the data in the stream using ASCII Hex encoding.

ASCII Hex replaces each byte of data with a two byte hexadecimal notation. As such it is not strictly a compression method and it will result in a doubling of the size of the data. However the resultant data will be ASCII, which can be useful if you need to treat the PDF data as text.

PDF streams allow a set of compression filters to be applied to a stream of data. For example one might want to apply Flate compression and then ASCII85 encode the result. This is represented as two compression filters in sequence.

This function does not decompress the stream. So if compression is already present, then this method will compress the already-encoded data and append a compression specification to the sequence.

ABCpdf tries to avoid creating certain compression sequences. Some compression types on some objects are illegal. Some sequences are legal but not supported within Acrobat (though they are in most other viewers). However these are unusual situations and you are unlikely to ever see them.

You can override this behavior by forcing the compression to take place. However if you do this you may end up creating a document which is invalid or unviewable in Acrobat.


StreamObject CompressFlate Function. Compress the data in the stream using Flate compression. ABCpdf .NET PDF Library.

CompressFlate Function

Compress the data in the stream using Flate compression.

Syntax

[C#]
bool CompressFlate()
bool CompressFlate(bool force)

[Visual Basic]
Sub CompressFlate() As Boolean
Sub CompressFlate(force As Boolean) As Boolean

Params
Name | Description
force | Whether to force the stream to be compressed in this way.
return | Whether the compression was applied.

Notes

Compress the data in the stream using Flate compression.

Flate compression is a standard, fast and efficient lossless compression method. It is used as the basis of file formats like ZIP and image formats like PNG. In most situations this is the method you should prefer.

PDF streams allow a set of compression filters to be applied to a stream of data. For example one might want to apply Flate compression and then ASCII85 encode the result. This is represented as two compression filters in sequence.

This function does not decompress the stream. So if compression is already present, then this method will compress the already-encoded data and append a compression specification to the sequence.

ABCpdf tries to avoid creating certain compression sequences. Some compression types on some objects are illegal. Some sequences are legal but not supported within Acrobat (though they are in most other viewers). However these are unusual situations and you are unlikely to ever see them.

You can override this behavior by forcing the compression to take place. However if you do this you may end up creating a document which is invalid or unviewable in Acrobat.


StreamObject CompressRunLength Function. Compress the data in the stream using run length encoding. ABCpdf .NET PDF Library.

CompressRunLength Function

Compress the data in the stream using run length encoding.

Syntax

[C#]
bool CompressRunLength()
bool CompressRunLength(bool force)

[Visual Basic]
Sub CompressRunLength() As Boolean
Sub CompressRunLength(force As Boolean) As Boolean

Params
Name | Description
force | Whether to force the stream to be compressed in this way.
return | Whether the compression was applied.

Notes

Compress the data in the stream using run length encoding.

Run length encoding is a simple form of compression which replaces sequences of identical bytes, with a count and the value of the bytes in the sequence. While simple to encode and decode, it is relatively inefficient and options such as CompressFlate should be preferred.

PDF streams allow a set of compression filters to be applied to a stream of data. For example one might want to apply Flate compression and then ASCII85 encode the result. This is represented as two compression filters in sequence.

This function does not decompress the stream. So if compression is already present, then this method will compress the already-encoded data and append a compression specification to the sequence.

ABCpdf tries to avoid creating certain compression sequences. Some compression types on some objects are illegal. Some sequences are legal but not supported within Acrobat (though they are in most other viewers). However these are unusual situations and you are unlikely to ever see them.

You can override this behavior by forcing the compression to take place. However if you do this you may end up creating a document which is invalid or unviewable in Acrobat.


StreamObject CopyDecompressedData Function. Copy the decompressed binary content of the stream into a byte array. ABCpdf .NET PDF Library.

CopyDecompressedData Function

Copy the decompressed binary content of the stream into a byte array.

Syntax

[C#]
int CopyDecompressedData()
int CopyDecompressedData(byte[] destination)
int CopyDecompressedData(byte[] destination, int startIndex)
int CopyDecompressedData(byte[] destination, int startIndex, int maxLength)

[Visual Basic]
Function CopyDecompressedData() As Integer
Function CopyDecompressedData(destination() As Byte) As Integer
Function CopyDecompressedData(destination() As Byte, startIndex as Integer) As Integer
Function CopyDecompressedData(destination() As Byte, startIndex as Integer, maxLength As Integer) As Integer

Params
Name | Description
destination | The destination byte array. Default is null.
startIndex | The index in the byte array at which the first byte should be written. Default is 0.
maxLength | The maximum number of bytes that should be written. Default is Int.MaxValue.
return | The length of the decompressed data that has been written to the array. If the destination is null then this returns the length that would have been written if a destination had been provided.

Notes

Copy the decompressed binary content of the stream into a byte array.

This method does not alter the content of the StreamObject so it is an efficient way of getting the decompressed data without altering the document.

If the data could not be decompressed then an exception will be raised.

The decompressed data is cached so that multiple calls to this function are efficient. For this reason calling this value with a null destination is an efficient way of determining the length of the decompressed stream.


StreamObject Decompress Function. Decompress the data in the stream. ABCpdf .NET PDF Library.

Decompress Function

Decompress the data in the stream.

Syntax

[C#]
bool Decompress()

[Visual Basic]
Function Decompress() As Boolean

Params
Name | Description
return | Whether the data in the stream is uncompressed.

Notes

This method removes all compression from the stream.

Under some circumstances it may not be possible to fully decompress the stream. In these situations the function will return false.

In occasional and unusual situations, decompression may change the document to a greater extent than one might expect. For example if a PixMap is JPEG 2000 compressed it may contain interleaved transparency. Because interleaved transparency is only permitted in JPEG 2000 images, at the point of decompression the alpha needs to be separated off into a separate PixMap.SMask entry. However this type of situation is uncommon and normally the effects of decompression are limited to the object being decompressed.


StreamObject GetData Function. Get the raw binary content of the stream. ABCpdf .NET PDF Library.

GetData Function

Get the raw binary content of the stream.

Syntax

[C#]
byte[] GetData()

[Visual Basic]
Function GetData() As Byte()

Params
Name | Description
return | The raw binary content of the stream.

Notes

Get the raw binary content of the stream.

If the stream is compressed then this data will be compressed.


StreamObject GetText Function. Get the content of the stream as a string. ABCpdf .NET PDF Library.

GetText Function

Get the content of the stream as a string.

Syntax

[C#]
string GetText()

[Visual Basic]
Function GetText() As String

Params
Name | Description
return | The content of the stream as a string.

Notes

Get the content of the stream in string format.

You will generally want to ensure your stream is decompressed before using this function.


StreamObject SetData Function. Set the raw binary content of the stream. ABCpdf .NET PDF Library.

SetData Function

Set the raw binary content of the stream.

Syntax

[C#]
void SetData(byte[] value)
void SetData(byte[] value, int index, int count)
void SetData(StreamObject source)

[Visual Basic]
Sub SetData(value() As Byte)
Sub SetData(value() As Byte, index As Integer, count As Integer)
Sub SetData(source As StreamObject)

Params
Name | Description
value | The raw binary content to be assigned to the stream.
index | The index in the array at which copying should start.
count | The number of bytes to copy.
source | The source stream from which to copy the data.

Notes

Set the raw binary content of the stream.

Compression settings are unaltered. So if - for example - you have a stream which is Flate compressed you must use SetData with Flate compressed data.

For this reason you may wish to call ClearData before using SetData.

Using the overload which accepts a StreamObject is equivalent to, but more efficient than, getting the data from the source StreamObject and then using SetData to assign it to this one.


StreamObject SetFile Function. Set the raw binary content of the stream using data from a file. ABCpdf .NET PDF Library.

SetFile Function

Set the raw binary content of the stream using data from a file.

Syntax

[C#]
void SetFile(string path)

[Visual Basic]
Sub SetFile(path As String)

Throws Exceptions may throw Exception()

Params
Name | Description
path | A path to a file containing data which should be placed in the StreamObject.

Notes

Set the raw binary content of the stream using data read from a file. If the file cannot be read then an exception is thrown.

Compression settings are unaltered. So if - for example - you have a stream which is Flate compressed you must use SetFile with Flate compressed data.

For this reason you may wish to call ClearData before using SetFile.


StreamObject SetText Function. Set the content of the stream as a string. ABCpdf .NET PDF Library.

SetText Function

Set the content of the stream as a string.

Syntax

[C#]
void SetText(string value)

[Visual Basic]
Sub SetText(value As String))

Params
Name | Description
value | The content of the stream as a string.

Notes

Get the content of the stream in string format.

Compression settings are unaltered. For this reason you may wish to call ClearData before using SetData.


StreamObject Compressed Property. Whether the stream data is compressed or otherwise encoded. ABCpdf .NET PDF Library.

Compressed Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | n/a | Yes | Whether the stream data is compressed or otherwise encoded.

Notes

Whether the stream data is compressed or otherwise encoded.


StreamObject Compression Property. The primary compression type. ABCpdf .NET PDF Library.

Compression Property

Type | Default | Read Only | Description
[C#] CompressionType [Visual Basic] CompressionType | See description. | Yes | The primary compression type.

Notes

A single stream can be compressed and encoded using multiple methods. This property reflects the primary compression type used by the stream.

Compression types which result in high levels of compression (e.g. JPEG) are considered more important than those that do not (e.g. ASCII 85).

The CompressionType enumeration may take the following values:

  • None
  • Unknown
  • Flate
  • Lzw
  • Ccitt
  • Jpeg
  • Jpx
  • AsciiHex
  • Ascii85
  • RunLength
  • Jbig2
  • Crypt

More details of these compression types can be found in Section 3.3 of the Adobe PDF Specification.


StreamObject Compressions Property. All the compression types applied to the stream. ABCpdf .NET PDF Library.

Compressions Property

Type Default Read Only Description
[C#]
CompressionType[]

[Visual Basic]
CompressionType() 		See description. Yes All the compression types applied to the stream.

Notes

A stream can be compressed and encoded using multiple methods applied in sequence.

This property reflects all the compression types that have been applied to the stream.

The CompressionTypes are ordered in terms of the complete decompression sequence required.


StreamObject Length Property. The number of bytes of encoded stream data. ABCpdf .NET PDF Library.

Length Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The number of bytes of encoded stream data.

Notes

The number of bytes of encoded stream data.


TextLayer Class

A multistyled text layer appearing on a page of the document.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.StreamObject
         WebSupergoo.ABCpdf12.Objects.Layer
            WebSupergoo.ABCpdf12.Objects.TextLayer

Method | Description
ClearTextOperation | Removes any cached TextOperation and TextFragments associated with this object.
 | inherited methods...

Property | Description
Characters | The number of characters appearing on the page.
EndPos | The point defining the end position of the text.
Lines | The number of lines appearing on the page.
Previous | The previous text object in the text chain.
Truncated | Whether the text had to be truncated.
FullText | The full text provided in the initial call to AddTextStyled or AddText.
TextStart | The offset to the first character drawn onto this layer.
TextEnd | The offset to the last character drawn onto this layer.
TextEnd | The offset to the character which will be drawn at the start of next item in the chain.
TextFragments | The TextFragments describing the precise layout of this text layer.
TextOperation | A TextOperation describing the precise layout of this text layer.
 | inherited properties...


TextLayer ClearTextOperation Function. Removes any cached TextOperation and TextFragments associated with this object. ABCpdf .NET PDF Library.

ClearTextOperation Function

Removes any cached TextOperation and TextFragments associated with this object

Syntax

[C#]
void ClearTextOperation()

[Visual Basic]
Sub ClearTextOperation()

Params
Name | Description
none | n/a

Notes

Removes any cached TextOperation and TextFragments associated with this object.

This can reduce memory use or it can be used to allow text information to be regenerated after the TextLayer contents have been updated.


TextLayer Characters Property. The number of characters appearing on the page. ABCpdf .NET PDF Library.

Characters Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The number of characters appearing on the page.

Notes

The number of characters appearing on the page.


TextLayer EndPos Property. The point defining the end position of the text. ABCpdf .NET PDF Library.

EndPos Property

Type | Default | Read Only | Description
[C#] XPoint [Visual Basic] XPoint | n/a | Yes | The point defining the end position of the text.

Notes

The XPoint defining the end position of the text.

This point is encoded in PDF coordinates rather than any abstracted coordinate space.


TextLayer Lines Property. The number of lines appearing on the page. ABCpdf .NET PDF Library.

Lines Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The number of lines appearing on the page.

Notes

The number of lines appearing on the page.


TextLayer Previous Property. The previous text object in the text chain. ABCpdf .NET PDF Library.

Previous Property

Type | Default | Read Only | Description
[C#] TextLayer [Visual Basic] TextLayer | n/a | Yes | The previous text object in the text chain.

Notes

The previous text object in the text chain.

If the object is not part of a chain (or is at the head of the chain) this property will be null.


TextLayer Truncated Property. Whether the text had to be truncated. ABCpdf .NET PDF Library.

Truncated Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | n/a | Yes | Whether the text had to be truncated.

Notes

Whether the text had to be truncated.

This property indicates if all the assigned text could be displayed. It is true if the text had to be truncated and false if not.

Only text objects that have been truncated can be chained to. If the object has not been truncated then there's no more text to display.


TextLayer FullText Property. The full text provided in the initial call to AddTextStyled or AddText. ABCpdf .NET PDF Library.

FullText Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | n/a | Yes | The full text provided in the initial call to AddTextStyled or AddText.

Notes

The full text provided in the initial call to AddTextStyled or AddText.

This text is shared between all the items in a chain. It is in plain text and does not indicate any styles.


TextLayer TextStart Property. The offset to the first character drawn onto this layer. ABCpdf .NET PDF Library.

TextStart Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The offset to the first character drawn onto this layer.

Notes

The offset to the first character (in the FullText) to be drawn onto this layer.


TextLayer TextEnd Property. The offset to the last character drawn onto this layer. ABCpdf .NET PDF Library.

TextEnd Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The offset to the last character drawn onto this layer.

Notes

The offset to the last character (in the FullText) to be drawn onto this layer.


TextLayer TextEnd Property. The offset to the character which will be drawn at the start of next item in the chain. ABCpdf .NET PDF Library.

TextEnd Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | No | The offset to the character which will be drawn at the start of next item in the chain.

Notes

The offset to the character (in the FullText) which will be drawn as the next item in the chain.

By changing this property you can control the character at which the next item in the chain starts. So by increasing the value you can skip characters between chained items. By decreasing the value you can repeat text from the previous item.


TextLayer TextFragments Property. The TextFragments describing the precise layout of this text layer. ABCpdf .NET PDF Library.

TextFragments Property

Type | Default Value | Read Only | Description
[C#] IList<TextFragment> [Visual Basic] IList<TextFragment> | n/a | Yes | The TextFragments describing the precise layout of this text layer

Notes

The TextFragments describing the precise layout of this text layer.

The properties of this object can be used to establish precise metrics for each of the items of text in the layer.

The operation is created the first time this property is accessed and it is cached thereafter. To reduce memory use, you may wish to call ClearTextOperation after you have established the precise metrics that you require.


TextLayer TextOperation Property. A TextOperation describing the precise layout of this text layer. ABCpdf .NET PDF Library.

TextOperation Property

Type | Default Value | Read Only | Description
[C#] TextOperation [Visual Basic] TextOperation | n/a | Yes | A TextOperation describing the precise layout of this text layer

Notes

A TextOperation describing the precise layout of this text layer.

The properties of this object can be used to establish precise metrics for each of the items of text in the layer.

The operation is created the first time this property is accessed and it is cached thereafter. To reduce memory use, you may wish to call ClearTextOperation after you have established the precise metrics that you require.


ViewLayer Class

A view onto a larger underlying graphic a portion of which is appearing on a page of the document.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.StreamObject
         WebSupergoo.ABCpdf12.Objects.Layer
            WebSupergoo.ABCpdf12.Objects.ViewLayer

Method | Description
 | inherited methods...

Property | Description
ContentHeight | The content height of the image in pixels.
ContentWidth | The content width of the image in pixels.
PageHeight | The height of the content on the current page in pixels.
PageOffset | The offset to the top of the current page in pixels.
PageWidth | The width of the content on the current page in pixels.
ScrollHeight | The scroll height of the image in pixels.
ScrollWidth | The scroll width of the image in pixels.
Truncated | Whether the image is truncated.
 | inherited properties...


ViewLayer ContentHeight Property. The content height of the image in pixels. ABCpdf .NET PDF Library.

ContentHeight Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The content height of the image in pixels.

Notes

The content height of the image. It is usually very close to ScrollHeight.

When adding HTML you only see one page at a time. This property allows you to find the height of the HTML before it is paged onto the PDF.


ViewLayer ContentWidth Property. The content width of the image in pixels. ABCpdf .NET PDF Library.

ContentWidth Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The content width of the image in pixels.

Notes

The content width of the image. It is usually very close to ScrollWidth.

When adding HTML you only see one page at a time. This property allows you to find the width of the HTML before it is paged onto the PDF.


ViewLayer PageHeight Property. The height of the content on the current page in pixels. ABCpdf .NET PDF Library.

PageHeight Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The height of the content on the current page in pixels.

Notes

The height of the content on the current page.

Note that the content may not vertically completely fill the area into which the view has been drawn.

This may occur if the page is has been broken early to ensure that content is split at a sensible location. Or alternatively, it may occur if the content was not as tall as the area specified while it horizontally fills the area.


ViewLayer PageOffset Property. The offset to the top of the current page in pixels. ABCpdf .NET PDF Library.

PageOffset Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The offset to the top of the current page in pixels.

Notes

The vertical offset from the top of the underlying graphic to the top of the current page.


ViewLayer PageWidth Property. The width of the content on the current page in pixels. ABCpdf .NET PDF Library.

PageWidth Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The width of the content on the current page in pixels.

Notes

The width of the content on the current page.


ViewLayer ScrollHeight Property. The scroll height of the image in pixels. ABCpdf .NET PDF Library.

ScrollHeight Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The scroll height of the image in pixels.

Notes

The scroll height of the image.

It is the same scroll height value as retrieved using script inside HTML.


ViewLayer ScrollWidth Property. The scroll width of the image in pixels. ABCpdf .NET PDF Library.

ScrollWidth Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The scroll width of the image in pixels.

Notes

The scroll width of the image.

It is the same scroll width value as retrieved using script inside HTML.


ViewLayer Truncated Property. Whether the image is truncated. ABCpdf .NET PDF Library.

Truncated Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | n/a | Yes | Whether the image is truncated.

Notes

Whether the image is truncated.


Objects WidgetAnnotation

WidgetAnnotation Class

Generic field annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.WidgetAnnotation
            WebSupergoo.ABCpdf12.Objects.ButtonAnnotation
            WebSupergoo.ABCpdf12.Objects.CheckBoxAnnotation
            WebSupergoo.ABCpdf12.Objects.ChoiceFieldAnnotation
            WebSupergoo.ABCpdf12.Objects.RadioButtonAnnotation
            WebSupergoo.ABCpdf12.Objects.TextFieldAnnotation

Method | Description
WidgetAnnotation | Add widget annotation to the doc.
 | inherited methods...

Property | Description
WidgetElement | Get the specific Annotation Element.
 | inherited properties...


Objects WidgetAnnotation WidgetAnnotation Function. Add widget annotation to the doc. ABCpdf .NET PDF Library.

WidgetAnnotation Function

Add widget annotation to the doc.

Syntax

[C#]
WidgetAnnotation(Doc doc)

[Visual Basic]
WidgetAnnotation(doc As Doc)

Params
Name | Description
doc | Doc

Notes

Add widget annotation to the doc.

Note that the annotation created using this constructor is meaningless until it is connected with a Field. For this reason you are likely to want to use methods such as Doc.Form.AddCheckbox rather than these types of call.


Objects WidgetAnnotation WidgetElement Property. Get the specific Annotation Element. ABCpdf .NET PDF Library.

WidgetElement Property

Type | Default Value | Read Only | Description
[C#] WidgetAnnotationElement [Visual Basic] WidgetAnnotationElement | null | Yes | Get the specific Annotation Element.

Notes

Get the specific Annotation Element.


Objects ButtonAnnotation

ButtonAnnotation Class

Button annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.WidgetAnnotation
            WebSupergoo.ABCpdf12.Objects.ButtonAnnotation

Method | Description
ButtonAnnotation | Add button annotation to the current page of the doc.
 | inherited methods...

Property | Description
 | inherited properties...


Objects ButtonAnnotation ButtonAnnotation Function. Add button annotation to the current page of the doc. ABCpdf .NET PDF Library.

ButtonAnnotation Function

Add button annotation to the current page of the doc.

Syntax

[C#]
ButtonAnnotation(Doc doc, XRect rect, string caption)

[Visual Basic]
ButtonAnnotation(doc As Doc, rect As XRect, caption As string)

Params
Name | Description
doc | Doc
rect | Location for the annotation
caption | Caption for button

Notes

Add button annotation to the current page of the doc.

Note that the annotation created using this constructor is meaningless until it is connected with a Field. For this reason you are likely to want to use Doc.Form.AddButton rather than this call.


Objects CheckBoxAnnotation

CheckBoxAnnotation Class

CheckBoxAnnotation annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.WidgetAnnotation
            WebSupergoo.ABCpdf12.Objects.CheckBoxAnnotation

Method | Description
CheckBoxAnnotation | Add checkbox annotation to the current page of the doc.
 | inherited methods...

Property | Description
 | inherited properties...


Objects CheckBoxAnnotation CheckBoxAnnotation Function. Add checkbox annotation to the current page of the doc. ABCpdf .NET PDF Library.

CheckBoxAnnotation Function

Add checkbox annotation to the current page of the doc.

Syntax

[C#]
CheckBoxAnnotation(Doc doc, XRect rect, bool selected)

[Visual Basic]
CheckBoxAnnotation(doc As Doc, rect As XRect, selected As bool)

Params
Name | Description
doc | Doc
rect | Location for the annotation
selected | Whether the checkbox should be checked or not

Notes

Add checkbox annotation to the current page of the doc.

Note that the annotation created using this constructor is meaningless until it is connected with a Field. For this reason you are likely to want to use Doc.Form.AddCheckbox rather than this call.


Objects ChoiceFieldAnnotation

ChoiceFieldAnnotation Class

Choice field annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.WidgetAnnotation
            WebSupergoo.ABCpdf12.Objects.ChoiceFieldAnnotation

Method | Description
ChoiceFieldAnnotation | Add choicefield annotation to the current page of the doc.
 | inherited methods...

Property | Description
 | inherited properties...


Objects ChoiceFieldAnnotation ChoiceFieldAnnotation Function. Add choicefield annotation to the current page of the doc. ABCpdf .NET PDF Library.

ChoiceFieldAnnotation Function

Add choicefield annotation to the current page of the doc.

Syntax

[C#]
ChoiceFieldAnnotation(Doc doc, XRect rect)

[Visual Basic]
ChoiceFieldAnnotation(doc As Doc, rect As XRect)

Params
Name | Description
doc | Doc
rect | Location for the annotation

Notes

Add choicefield annotation to the current page of the doc.

Note that the annotation created using this constructor is meaningless until it is connected with a Field. For this reason you are likely to want to use Doc.Form.AddListBoxField or Doc.Form.AddComboBoxField rather than this call.


Objects RadioButtonAnnotation

RadioButtonAnnotation Class

RadioButton annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.WidgetAnnotation
            WebSupergoo.ABCpdf12.Objects.RadioButtonAnnotation

Method | Description
RadioButtonAnnotation | Add radio button annotation to the current page of the doc.
 | inherited methods...

Property | Description
 | inherited properties...


Objects RadioButtonAnnotation RadioButtonAnnotation Function. Add radio button annotation to the current page of the doc. ABCpdf .NET PDF Library.

RadioButtonAnnotation Function

Add radio button annotation to the current page of the doc.

Syntax

[C#]
RadioButtonAnnotation(Doc doc, XRect rect, string name, bool selected)

[Visual Basic]
RadioButtonAnnotation(Doc doc, XRect rect, string name, bool selected)

Params
Name | Description
doc | Doc
rect | Location for the annotation
name | Name of the annotation
selected | Whether the checkbox should be checked or not

Notes

Add radio button annotation to the current page of the doc.

Note that the annotation created using this constructor is meaningless until it is connected with a Field. For this reason you are likely to want to use Doc.Form.AddRadioButtonGroup rather than this call.


Objects TextFieldAnnotation

TextFieldAnnotation Class

Text field annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.WidgetAnnotation
            WebSupergoo.ABCpdf12.Objects.TextFieldAnnotation

Method | Description
TextFieldAnnotation | Add textfield annotation to the current page of the doc.
 | inherited methods...

Property | Description
 | inherited properties...


Objects TextFieldAnnotation TextFieldAnnotation Function. Add textfield annotation to the current page of the doc. ABCpdf .NET PDF Library.

TextFieldAnnotation Function

Add textfield annotation to the current page of the doc.

Syntax

[C#]
TextFieldAnnotation(Doc doc, XRect rect)

[Visual Basic]
TextFieldAnnotation(doc As Doc, rect As XRect)

Params
Name | Description
doc | Doc
rect | Location for the annotation

Notes

Add textfield annotation to the current page of the doc.

Note that the annotation created using this constructor is meaningless until it is connected with a Field. For this reason you are likely to want to use Doc.Form.AddTextField rather than this call.


Objects CircleAnnotation

CircleAnnotation Class

Circle Annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.CircleAnnotation

Method | Description
CircleAnnotation | Add circle annotation to the current page of the doc.
 | inherited methods...

Property | Description
CircleElement | Get the specific Annotation Element.
 | inherited properties...


Objects CircleAnnotation CircleAnnotation Function. Add circle annotation to the current page of the doc. ABCpdf .NET PDF Library.

CircleAnnotation Function

Add circle annotation to the current page of the doc.

Syntax

[C#]
CircleAnnotation(Doc doc, XRect rect, XColor borderColor, string XColor)

[Visual Basic]
CircleAnnotation(doc As Doc, rect As XRect, borderColor As XColor, fillColor As XColor)

Params
Name | Description
doc | Doc
rect | Annotation rectangle
borderColor | Border color
fillColor | Fill color

Notes

Add circle annotation to the current page of the doc.


Objects CircleAnnotation CircleElement Property. Get the specific Annotation Element. ABCpdf .NET PDF Library.

CircleElement Property

Type | Default Value | Read Only | Description
[C#] CircleAnnotationElement [Visual Basic] CircleAnnotationElement | null | Yes | Get the specific Annotation Element.

Notes

Get the specific Annotation Element.


Objects D3DAnnotation

D3DAnnotation Class

3D Annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.D3DAnnotation

Method | Description
D3DAnnotation | Add 3D annotation to the current page of the doc.
SetOBJ | Set the file containing the 3D content.
 | inherited methods...

Property | Description
D3DElement | Get the specific Annotation Element.
 | inherited properties...


Objects D3DAnnotation D3DAnnotation Function. Add 3D annotation to the current page of the doc. ABCpdf .NET PDF Library.

D3DAnnotation Function

Add 3D annotation to the current page of the doc.

Syntax

[C#]
D3DAnnotation(Doc doc, XRect rect)

[Visual Basic]
D3DAnnotation(doc As Doc, rect As XRect)

Params
Name | Description
doc | Doc
rect | Annotation rectangle

Notes

Add 3D annotation to the current page of the doc.


Objects D3DAnnotation SetOBJ Function. Set the file containing the 3D content. ABCpdf .NET PDF Library.

SetOBJ Function

Set the file containing the 3D content.

Syntax

[C#]
virtual void SetOBJ(string path)

[Visual Basic]
Overridable Function SetOBJ(path As string) As void

Params
Name | Description
path | Path to an OBJ, PRC or U3D file

Notes

Set the file containing the 3D content.


Objects D3DAnnotation D3DElement Property. Get the specific Annotation Element. ABCpdf .NET PDF Library.

D3DElement Property

Type | Default Value | Read Only | Description
[C#] D3DAnnotationElement [Visual Basic] D3DAnnotationElement | null | Yes | Get the specific Annotation Element.

Notes

Get the specific Annotation Element.


Objects FileAttachmentAnnotation

FileAttachmentAnnotation Class

File attachment annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.FileAttachmentAnnotation

Method | Description
FileAttachmentAnnotation | Add file attachment annotation to the current page of the doc.
 | inherited methods...

Property | Description
FileAttachmentElement | Get the specific Annotation Element.
 | inherited properties...


Objects FileAttachmentAnnotation FileAttachmentAnnotation Function. Add file attachment annotation to the current page of the doc. ABCpdf .NET PDF Library.

FileAttachmentAnnotation Function

Add file attachment annotation to the current page of the doc.

Syntax

[C#]
FileAttachmentAnnotation(Doc doc, XRect rect, string filePath)
FileAttachmentAnnotation(Doc doc, XRect rect, byte[] data, string fileName, DateTime modDate, DateTime creationDate)

[Visual Basic]
FileAttachmentAnnotation(doc As Doc, rect As XRect, filePath As string)
FileAttachmentAnnotation(doc As Doc, rect As XRect, data() As Byte, fileName As string, modDate As DateTime, creationDate As DateTime)

Params
Name | Description
doc | Doc
rect | Annotation rectangle
filePath | File path
data | The data from a file to be embedded
fileName | The name of the file to be embedded
modDate | The file modification date
creationDate | The file creation date

Notes

Add file attachment annotation to the current page of the doc.


Objects FileAttachmentAnnotation FileAttachmentElement Property. Get the specific Annotation Element. ABCpdf .NET PDF Library.

FileAttachmentElement Property

Type | Default Value | Read Only | Description
[C#] FileAttachmentAnnotationElement [Visual Basic] FileAttachmentAnnotationElement | null | Yes | Get the specific Annotation Element.

Notes

Get the specific Annotation Element.


Objects FreeTextAnnotation

FreeTextAnnotation Class

FreeText annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.FreeTextAnnotation

Method | Description
FreeTextAnnotation | Add free text annotation to the current page of the doc.
 | inherited methods...

Property | Description
FreeTextElement | Get the specific Annotation Element.
 | inherited properties...


Objects FreeTextAnnotation FreeTextAnnotation Function. Add popup annotation to the current page of the doc. ABCpdf .NET PDF Library.

FreeTextAnnotation Function

Add free text annotation to the current page of the doc.

Syntax

[C#]
FreeTextAnnotation(Doc doc, XRect rect)

[Visual Basic]
FreeTextAnnotation(doc As Doc, rect As XRect)

Params
Name | Description
doc | Doc
rect | Annotation rectangle

Notes

Add free text annotation to the current page of the doc.


Objects FreeTextAnnotation FreeTextElement Property. Get the specific Annotation Element. ABCpdf .NET PDF Library.

FreeTextElement Property

Type | Default Value | Read Only | Description
[C#] FreeTextAnnotationElement [Visual Basic] FreeTextAnnotationElement | null | Yes | Get the specific Annotation Element.

Notes

Get the specific Annotation Element.


Objects InkAnnotation

InkAnnotation Class

Ink annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.InkAnnotation

Method | Description
InkAnnotation | Add ink annotation to the current page of the doc.
 | inherited methods...

Property | Description
InkElement | Get the specific Annotation Element.
 | inherited properties...


Objects InkAnnotation InkAnnotation Function. Add ink annotation to the current page of the doc. ABCpdf .NET PDF Library.

InkAnnotation Function

Add ink annotation to the current page of the doc.

Syntax

[C#]
InkAnnotation(Doc doc, XRect rect)

[Visual Basic]
InkAnnotation(doc As Doc, rect As XRect)

Params
Name | Description
doc | Doc
rect | Annotation rectangle

Notes

Add ink annotation to the current page of the doc.


Objects InkAnnotation InkElement Property. Get the specific Annotation Element. ABCpdf .NET PDF Library.

InkElement Property

Type | Default Value | Read Only | Description
[C#] InkAnnotationElement [Visual Basic] InkAnnotationElement | null | Yes | Get the specific Annotation Element.

Notes

Get the specific Annotation Element.


Objects LineAnnotation

LineAnnotation Class

Line annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.LineAnnotation

Method | Description
LineAnnotation | Add line annotation to the current page of the doc.
 | inherited methods...

Property | Description
LineElement | Get the specific Annotation Element.
LineEndingsStyle | Line ending styles.
Caption | Line Caption.
RichTextCaption | Line caption in rich text format.
FillColor | Line fill color.
 | inherited properties...


Objects LineAnnotation LineAnnotation Function. Add line annotation to the current page of the doc. ABCpdf .NET PDF Library.

LineAnnotation Function

Add line annotation to the current page of the doc.

Syntax

[C#]
LineAnnotation(Doc doc, XPoint p1, XPoint p2, XColor color)

[Visual Basic]
LineAnnotation(doc As Doc, p1 As XPoint, p2 As XPoint, color As XColor)

Params
Name | Description
doc | Doc.
p1 | Line start point.
p2 | Line end point.
color | Color of the line.

Notes

Add line annotation to the current page of the doc.


Objects LineAnnotation LineElement Property. Get the specific Annotation Element. ABCpdf .NET PDF Library.

LineElement Property

Type | Default Value | Read Only | Description
[C#] LineAnnotationElement [Visual Basic] LineAnnotationElement | null | Yes | Get the specific Annotation Element.

Notes

Get the specific Annotation Element.


Objects LineAnnotation LineEndingsStyle Property. Line ending styles. ABCpdf .NET PDF Library.

LineEndingsStyle Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Line ending styles.

Notes

Line ending styles. Must be a string containing line ending styles.

for the beginning and end of the line, e.g. "OpenArrow OpenArrow".

Possible values for lineending styles are: Square, Circle, Diamond,.

OpenArrow, ClosedArrow, None, Butt, ROpenArrow, RClosedArrow, Slash.


Objects LineAnnotation Caption Property. Line Caption. ABCpdf .NET PDF Library.

Caption Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Line Caption.

Notes

Line Caption.


Objects LineAnnotation RichTextCaption Property. Line caption in rich text format. ABCpdf .NET PDF Library.

RichTextCaption Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Line caption in rich text format.

Notes

Line caption in rich text format.


Objects LineAnnotation FillColor Property. Line fill color. ABCpdf .NET PDF Library.

FillColor Property

Type | Default Value | Read Only | Description
[C#] XColor [Visual Basic] XColor | null | No | Line fill color.

Notes

Line fill color.


Objects LinkAnnotation

LinkAnnotation Class

Link annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.LinkAnnotation

Method | Description
LinkAnnotation | Add link annotation to the current page of the doc.
 | inherited methods...

Property | Description
LinkElement | Get the specific Annotation Element.
 | inherited properties...


Objects LinkAnnotation LinkAnnotation Function. Add popup annotation to the current page of the doc. ABCpdf .NET PDF Library.

LinkAnnotation Function

Add link annotation to the current page of the doc.

Syntax

[C#]
LinkAnnotation(Doc doc, XRect rect)

[Visual Basic]
LinkAnnotation(doc As Doc, rect As XRect)

Params
Name | Description
doc | Doc
rect | Annotation rectangle

Notes

Add link annotation to the current page of the doc.


Objects LinkAnnotation LinkElement Property. Get the specific Annotation Element. ABCpdf .NET PDF Library.

LinkElement Property

Type | Default Value | Read Only | Description
[C#] LinkAnnotationElement [Visual Basic] LinkAnnotationElement | null | Yes | Get the specific Annotation Element.

Notes

Get the specific Annotation Element.


Objects PolygonAnnotation

PolygonAnnotation Class

Polygon annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.PolygonAnnotation

Method | Description
PolygonAnnotation | Add polygon annotation to the current page of the doc.
 | inherited methods...

Property | Description
PolygonElement | Get the specific Annotation Element.
CloudyEffect | Intensity of the cloudy border effect.
 | inherited properties...


Objects PolygonAnnotation PolygonAnnotation Function. Add polygon annotation to the current page of the doc. ABCpdf .NET PDF Library.

PolygonAnnotation Function

Add polygon annotation to the current page of the doc.

Syntax

[C#]
PolygonAnnotation(Doc doc, double[] vertices, XColor borderColor, XColor fillColor)

[Visual Basic]
PolygonAnnotation(doc As Doc, vertices As Double(), borderColor As XColor, fillColor As XColor)

Params
Name | Description
doc | Doc
vertices | Polygon vertices
borderColor | Border color
fillColor | Fill color

Notes

Add polygon annotation to the current page of the doc.

When you create this type of annotation the Annotation.Rect is determined by the bounds of the vertices assuming a default border width. If you change the border width or the cloudiness you need to increase the size of the rectangle to accommodate the increase in size.

The size that is required is related to two factors - the border width and the cloudiness factor. The extent related to the border is equal to half the border width. The extent related to the cloudiness is the cloudiness level (between zero and two) multiplied by four. At creation the default border is one pixel so the Annotation.Rect extends out by 0.5 points from the bounds of the vertices.

Note that this is different from the way width and cloudiness are handled in the SquareAnnotation and CircleAnnotation types. For these the Annotation.Rect defines the bounds of the shape rather than the shape itself - so in this situation the clouds lie inside the bounds rather than extending out from the vertices.


Objects PolygonAnnotation PolygonElement Property. Get the specific Annotation Element. ABCpdf .NET PDF Library.

PolygonElement Property

Type | Default Value | Read Only | Description
[C#] PolygonAnnotationElement [Visual Basic] PolygonAnnotationElement | null | Yes | Get the specific Annotation Element.

Notes

Get the specific Annotation Element.


Objects PolygonAnnotation CloudyEffect Property. Intensity of the cloudy border effect. ABCpdf .NET PDF Library.

CloudyEffect Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | Intensity of the cloudy border effect.

Notes

Intensity of the cloudy border effect. Default value: 0.

If you change this value you will need to adjust the Annotation.Rect. See the constructor for details.


Objects PolylineAnnotation

PolylineAnnotation Class

Polyline annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.PolylineAnnotation

Method | Description
PolylineAnnotation | Add polyline annotation to the current page of the doc.
 | inherited methods...

Property | Description
PolylineElement | Get the specific Annotation Element.
 | inherited properties...


Objects PolylineAnnotation PolylineAnnotation Function. Add polyline annotation to the current page of the doc. ABCpdf .NET PDF Library.

PolylineAnnotation Function

Add polyline annotation to the current page of the doc.

Syntax

[C#]
PolylineAnnotation(Doc doc, double[] vertices, XColor borderColor)

[Visual Basic]
PolylineAnnotation(doc As Doc, vertices As Double(), borderColor As XColor)

Params
Name | Description
doc | Doc
vertices | Polyline vertices
borderColor | Line color

Notes

Add polyline annotation to the current page of the doc.


Objects PolylineAnnotation PolylineElement Property. Get the specific Annotation Element. ABCpdf .NET PDF Library.

PolylineElement Property

Type | Default Value | Read Only | Description
[C#] PolylineAnnotationElement [Visual Basic] PolylineAnnotationElement | null | Yes | Get the specific Annotation Element.

Notes

Get the specific Annotation Element.


Objects PopupAnnotation

PopupAnnotation Class

Popup annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.PopupAnnotation

Method | Description
PopupAnnotation | Add popup annotation to the current page of the doc.
 | inherited methods...

Property | Description
PopUpElement | Get the specific Annotation Element.
 | inherited properties...


Objects PopupAnnotation PopupAnnotation Function. Add popup annotation to the current page of the doc. ABCpdf .NET PDF Library.

PopupAnnotation Function

Add popup annotation to the current page of the doc.

Syntax

[C#]
PopupAnnotation(Doc doc, XRect rect, int parentID)

[Visual Basic]
PopupAnnotation(doc As Doc, rect As XRect, parentID As int)

Params
Name | Description
doc | Doc
rect | Annotation rectangle
parentID | ID of the parent annotation

Notes

Add popup annotation to the current page of the doc.


Objects PopupAnnotation PopUpElement Property. Get the specific Annotation Element. ABCpdf .NET PDF Library.

PopUpElement Property

Type | Default Value | Read Only | Description
[C#] PopUpAnnotationElement [Visual Basic] PopUpAnnotationElement | null | Yes | Get the specific Annotation Element.

Notes

Get the specific Annotation Element.


Objects RichMediaAnnotation

RichMediaAnnotation Class

Rich media annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.RichMediaAnnotation

Method | Description
RichMediaAnnotation | Adds rich media to the current page of the doc.
 | inherited methods...

Property | Description
RichMediaElement | Get the specific Annotation Element.
ActivationCondition | Activation condition.
DeactivationCondition | Deactivation condition.
FlashVars | FlashVars parameter.
 | inherited properties...


Objects RichMediaAnnotation RichMediaAnnotation Function. Adds rich media to the current page of the doc. ABCpdf .NET PDF Library.

RichMediaAnnotation Function

Adds rich media to the current page of the doc.

Syntax

[C#]
RichMediaAnnotation(Doc doc, XRect rect, string filePathOrUrl, string mediaType)

[Visual Basic]
RichMediaAnnotation(doc As Doc, rect As XRect, filePathOrUrl As string, mediaType As string)

Params
Name | Description
doc | Doc
rect | Annotation rectangle
filePathOrUrl | Media file path or URL
mediaType | Media type

Notes

Adds rich media to the current page of the doc.

The media type can be one of:

  • "Flash"
  • "Video"
  • "Sound"
  • "3D"

Supported file formats are not defined by the PDF specification and thus will vary between viewers.


Objects RichMediaAnnotation RichMediaElement Property. Get the specific Annotation Element. ABCpdf .NET PDF Library.

RichMediaElement Property

Type | Default Value | Read Only | Description
[C#] RichMediaAnnotationElement [Visual Basic] RichMediaAnnotationElement | null | Yes | Get the specific Annotation Element.

Notes

Get the specific Annotation Element.


Objects RichMediaAnnotation ActivationCondition Property. Activation condition. ABCpdf .NET PDF Library.

ActivationCondition Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Activation condition.

Notes
Activation condition.


Objects RichMediaAnnotation DeactivationCondition Property. Deactivation condition. ABCpdf .NET PDF Library.

DeactivationCondition Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Deactivation condition.

Notes
Deactivation condition.


Objects RichMediaAnnotation FlashVars Property. FlashVars parameter. ABCpdf .NET PDF Library.

FlashVars Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | FlashVars parameter.

Notes
FlashVars parameter.


Objects ScreenAnnotation

ScreenAnnotation Class

Movie annotation.

Please note that the Adobe PDF Specification now states,.

"The features described in this sub-clause are obsolescent and their use is no longer recommended.".

The recommended replacement is the SimpleRichMediaAnnotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.ScreenAnnotation

Method | Description
ScreenAnnotation | Add movie annotation to the current page of the doc.
 | inherited methods...

Property | Description
ScreenElement | Get the specific Annotation Element.
 | inherited properties...


Objects ScreenAnnotation ScreenAnnotation Function. Add movie annotation to the current page of the doc. ABCpdf .NET PDF Library.

ScreenAnnotation Function

Add movie annotation to the current page of the doc.

Syntax

[C#]
ScreenAnnotation(Doc doc, XRect rect, string filePathOrUrl)
ScreenAnnotation(Doc doc, XRect rect, string filePathOrUrl, string contentType)

[Visual Basic]
ScreenAnnotation(doc As Doc, rect As XRect, filePathOrUrl As string)
ScreenAnnotation(doc As Doc, rect As XRect, filePathOrUrl As string, contentType As string)

Params
Name | Description
doc | Doc
rect | Annotation rectangle
filePathOrUrl | Movie file path or URL
contentType | Movie content type

Notes

Add movie annotation to the current page of the doc.


Objects ScreenAnnotation ScreenElement Property. Get the specific Annotation Element. ABCpdf .NET PDF Library.

ScreenElement Property

Type | Default Value | Read Only | Description
[C#] ScreenAnnotationElement [Visual Basic] ScreenAnnotationElement | null | Yes | Get the specific Annotation Element.

Notes

Get the specific Annotation Element.


Objects SquareAnnotation

SquareAnnotation Class

Square annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.SquareAnnotation

Method | Description
SquareAnnotation | Add square annotation to the current page of the doc.
 | inherited methods...

Property | Description
SquareElement | Get the specific Annotation Element.
 | inherited properties...


Objects SquareAnnotation SquareAnnotation Function. Add square annotation to the current page of the doc. ABCpdf .NET PDF Library.

SquareAnnotation Function

Add square annotation to the current page of the doc.

Syntax

[C#]
SquareAnnotation(Doc doc, XRect rect, XColor borderColor, XColor fillColor)

[Visual Basic]
SquareAnnotation(doc As Doc, rect As XRect, borderColor As XColor, fillColor As XColor)

Params
Name | Description
doc | Doc
rect | Annotation rectangle
borderColor | Border color
fillColor | Fill color

Notes

Add square annotation to the current page of the doc.


Objects SquareAnnotation SquareElement Property. Get the specific Annotation Element. ABCpdf .NET PDF Library.

SquareElement Property

Type | Default Value | Read Only | Description
[C#] SquareAnnotationElement [Visual Basic] SquareAnnotationElement | null | Yes | Get the specific Annotation Element.

Notes

Get the specific Annotation Element.


Objects StampAnnotation

StampAnnotation Class

Stamp annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.StampAnnotation

Method | Description
StampAnnotation | Add stamp annotation to the current page of the doc.
 | inherited methods...

Property | Description
StampElement | Get the specific Annotation Element.
 | inherited properties...


Objects StampAnnotation StampAnnotation Function. Add stamp annotation to the current page of the doc. ABCpdf .NET PDF Library.

StampAnnotation Function

Add stamp annotation to the current page of the doc.

Syntax

[C#]
StampAnnotation(Doc doc, XRect rect, string caption, XColor color)

[Visual Basic]
StampAnnotation(doc As Doc, rect As XRect, caption As string, color As XColor)

Params
Name | Description
doc | Doc
rect | Annotation rectangle
caption | The text of the stamp.
color | The color of the stamp.

Notes

Add stamp annotation to the current page of the doc.

The supplied caption will be rendered in Helvetica Bold Oblique. The width of the provided rect will be adjusted to reflect the aspect ratio of the caption text. If you wish to maintain the original rect you can assign it to the Rect property after construction of the Stamp.


Objects StampAnnotation StampElement Property. Get the specific Annotation Element. ABCpdf .NET PDF Library.

StampElement Property

Type | Default Value | Read Only | Description
[C#] RubberStampAnnotationElement [Visual Basic] RubberStampAnnotationElement | null | Yes | Get the specific Annotation Element.

Notes

Get the specific Annotation Element.


Objects TextAnnotation

TextAnnotation Class

Text annotation ("Sticky note").

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.TextAnnotation

Method | Description
TextAnnotation | Add text annotation to the current page of the doc.
 | inherited methods...

Property | Description
TextElement | Get the specific Annotation Element.
 | inherited properties...


Objects TextAnnotation TextAnnotation Function. Add text annotation to the current page of the doc. ABCpdf .NET PDF Library.

TextAnnotation Function

Add text annotation to the current page of the doc.

Syntax

[C#]
TextAnnotation(Doc doc, XRect rect1, XRect rect2, string contents)

[Visual Basic]
TextAnnotation(doc As Doc, rect1 As XRect, rect2 As XRect, contents As string)

Params
Name | Description
doc | Doc
rect1 | Annotation rectangle
rect2 | Rectangle of the "sticky note" popup
contents | Contents of the text annotation

Notes

Add text annotation to the current page of the doc.


Objects TextAnnotation TextElement Property. Get the specific Annotation Element. ABCpdf .NET PDF Library.

TextElement Property

Type | Default Value | Read Only | Description
[C#] TextAnnotationElement [Visual Basic] TextAnnotationElement | null | Yes | Get the specific Annotation Element.

Notes

Get the specific Annotation Element.


Objects TextMarkupAnnotation

TextMarkupAnnotation Class

Text markup annotation.

System.Object
   WebSupergoo.ABCpdf12.Objects.IndirectObject
      WebSupergoo.ABCpdf12.Objects.Annotation
         WebSupergoo.ABCpdf12.Objects.TextMarkupAnnotation

Method | Description
TextMarkupAnnotation | Add text markup annotation to the current rect of the current page of the doc.
 | inherited methods...

Property | Description
TextMarkupElement | Get the specific Annotation Element.
 | inherited properties...


Objects TextMarkupAnnotation TextMarkupAnnotation Function. Add text markup annotation to the current rect of the current page of the doc. ABCpdf .NET PDF Library.

TextMarkupAnnotation Function

Add text markup annotation to the current rect of the current page of the doc.

Syntax

[C#]
TextMarkupAnnotation(Doc doc, string quadPoints, TextMarkupType markupType, XColor color)
TextMarkupAnnotation(Doc doc, int id, TextMarkupType markupType, XColor color)
TextMarkupAnnotation(Doc doc, TextMarkupType markupType, XColor color)

[Visual Basic]
TextMarkupAnnotation(doc As Doc, quadPoints As string, markupType As TextMarkupType, color As XColor)
TextMarkupAnnotation(doc As Doc, id As int, markupType As TextMarkupType, color As XColor)
TextMarkupAnnotation(doc As Doc, markupType As TextMarkupType, color As XColor)

Params
Name | Description
doc | Doc
quadPoints | Quad points of the text
markupType | Type of the markup annotation
color | Markup color
id | ID of the Text object

Notes

Add text markup annotation to the current rect of the current page of the doc.

The TextMarkupType enumeration may take the following values:

  • Underline - Underlined text.
  • Highlight - Highlighted text.
  • StrikeOut - Struck through text.
  • Squiggly - Squiggly underlined text.

If quad points are provided, the annotation rectangle will be set to the smallest area that contains all these points. If a text object ID is provided, the annotation rectangle will be set to match the area of the text object. If neither is provided, the annotation rectangle will be set to match the current Doc.Rect.

A quad comprises eight numbers specifying the corners of a quadrilateral in counterclockwise order. Multiple quadrilaterals can be specified, so the number of items in the list is always a multiple of eight. For the purposes of underlines the orientation is determined by a line drawn between the first two points.


Objects TextMarkupAnnotation TextMarkupElement Property. Get the specific Annotation Element. ABCpdf .NET PDF Library.

TextMarkupElement Property

Type | Default Value | Read Only | Description
[C#] TextMarkupAnnotationElement [Visual Basic] TextMarkupAnnotationElement | null | Yes | Get the specific Annotation Element.

Notes

Get the specific Annotation Element.


Atom Class

A PDF atomic object comprising a basic chunk of PDF data.

If you are going to be using Atoms then you will want to download the Adobe PDF Specification. This document explains the names and types that can be used and how they are interpreted.

Common Operations.

Get a named property from the dictionary of an IndirectObject. In the example below we use the Type property which is typically a name but the principles are similar for other entries of other types:

[C#]

NameAtom type = io.Resolve(Atom.GetItem(io.Atom, "Type")) as NameAtom;

[Visual Basic]
Dim type As NameAtom = io.Resolve(Atom.GetItem(io.Atom, "Type"))

Get an value out of an array atom. In the the event that the atom is not an array or does not have sufficient entries then the return value will be null. In the example below we are looking for entry two - this is the third entry since entries are zero based:

[C#]

NumAtom num = io.Resolve(Atom.GetItem(atom, 2)) as NumAtom;

[Visual Basic]
Dim num As NumAtom = io.Resolve(Atom.GetItem(atom, 2))

Get a stream referenced from a property of an IndirectObject. In the example below we use the FontFile2 property (a reference to an embedded TrueType font):

[C#]

StreamObject stream = io.ResolveObj(Atom.GetItem(io.Atom, "FontFile2")) as StreamObject;

[Visual Basic]
Dim stream As StreamObject = io.ResolveObj(Atom.GetItem(io.Atom, "FontFile2"))

Add a named entry to an IndirectObject. In the example below we add a V entry which is a string. We keep the returned StringAtom so we can manipulate the value:

[C#]

StringAtom str = (StringAtom)Atom.SetItem(io.Atom, "V", new StringAtom());

[Visual Basic]
Dim str As StringAtom = Atom.SetItem(io.Atom, "V", New StringAtom())

Add a named entry to an IndirectObject. In the example below we add an array entry to specify a border array. Rather than creating an ArrayAtom and specifying the individual values we just specify the raw string value of the object:

[C#]

Atom.SetItem(io.Atom, "Border", Atom.FromString("[ 0 0 1 ]"));

[Visual Basic]
Atom.SetItem(io.Atom, "Border", Atom.FromString("[ 0 0 1 ]"))

System.Object
   WebSupergoo.ABCpdf12.Atoms.Atom
      WebSupergoo.ABCpdf12.Atoms.ArrayAtom
      WebSupergoo.ABCpdf12.Atoms.BoolAtom
      WebSupergoo.ABCpdf12.Atoms.DictAtom
      WebSupergoo.ABCpdf12.Atoms.NameAtom
      WebSupergoo.ABCpdf12.Atoms.NullAtom
      WebSupergoo.ABCpdf12.Atoms.NumAtom
      WebSupergoo.ABCpdf12.Atoms.RefAtom
      WebSupergoo.ABCpdf12.Atoms.OpAtom
      WebSupergoo.ABCpdf12.Atoms.StringAtom

Implements: ICloneable, IDisposable, IEquatable<Atom>, IComparable<Atom>

Method | Description
S» FromString | Create an appropriate type of Atom from a raw PDF string representation.
S» GetBool | Gets the Boolean value from the Atom if it is a BoolAtom.
S» GetDouble | Gets the double value from the Atom if it is a NumAtom.
S» GetID | Gets the Object ID value from the Atom if it is a RefAtom.
S» GetInt | Gets the integer value from the Atom if it is a NumAtom.
S» GetItem | Gets the specified item from the Atom if it is of a type which contains other Atoms.
S» GetName | Gets the Name value from the Atom if it is a NameAtom.
S» GetText | Gets the Text value from the Atom if it is a StringAtom.
S» RemoveItem | Removes the named entry from the Atom if it is a DictAtom.
S» SetItem | Adds a specified item to the Atom if it is of a type which contains other Atoms.
GetData | The byte array representation of the Atom as it would appear in a PDF.
Clone | Creates a deep copy of the current Atom.
Dispose | Dispose of the object.
Equals | Test whether the two Atoms are the same.
GetHashCode | A hash code for the Atom.
ToString | The string representation of the Atom as it would appear in a PDF.

Property | Description
none |


Atom FromString Function. Create an appropriate type of Atom from a raw PDF string representation. ABCpdf .NET PDF Library.

FromString Function

Create an appropriate type of Atom from a raw PDF string representation.

Syntax

[C#]
static Atom FromString(string value)

[Visual Basic]
Shared Function FromString(value As String) As Atom

Params
Name | Description
value | The string representing the value of the object.
return | The resulting Atom.

Notes

The text you pass this function must be in native PDF format. This means that unusual characters in text strings must be appropriately escaped.

For full details of the way that PDF objects are represented you should see the Adobe PDF Specification.


Atom GetBool Function. Gets the Boolean value from the Atom if it is a BoolAtom. ABCpdf .NET PDF Library.

GetBool Function

Gets the Boolean value from the Atom if it is a BoolAtom.

Syntax

[C#]
static bool GetBool(Atom atom)

[Visual Basic]
Shared Function GetBool(atom As Atom) As Boolean

Params
Name | Description
atom | The Atom to get the Boolean from.
return | The returned Boolean.

Notes

Get the Boolean value from the supplied Atom if it is a BoolAtom.

If the atom is not a BoolAtom or if it is null then false will be returned.


Atom GetDouble Function. Gets the double value from the Atom if it is a NumAtom. ABCpdf .NET PDF Library.

GetDouble Function

Gets the double value from the Atom if it is a NumAtom.

Syntax

[C#]
static double GetDouble(Atom atom)

[Visual Basic]
Shared Function GetDouble(atom As Atom) As Double

Params
Name | Description
atom | The Atom to get the double from.
return | The returned double.

Notes

Get the double value from the supplied Atom if it is a NumAtom.

If the atom is not a NumAtom or if it is null then zero will be returned.


Atom GetID Function. Gets the Object ID value from the Atom if it is a RefAtom. ABCpdf .NET PDF Library.

GetID Function

Gets the Object ID value from the Atom if it is a RefAtom.

Syntax

[C#]
static int GetID(Atom atom)

[Visual Basic]
Shared Function GetID(atom As Atom) As Integer

Params
Name | Description
atom | The Atom to get the Object ID from.
return | The returned Object ID.

Notes

Get the Object ID from the supplied Atom if it is a RefAtom.

If the atom is not a RefAtom or if it is null then zero will be returned.


Atom GetInt Function. Gets the integer value from the Atom if it is a NumAtom. ABCpdf .NET PDF Library.

GetInt Function

Gets the integer value from the Atom if it is a NumAtom.

Syntax

[C#]
static int GetInt(Atom atom)

[Visual Basic]
Shared Function GetInt(atom As Atom) As Integer

Params
Name | Description
atom | The Atom to get the integer from.
return | The returned integer.

Notes

Get the integer value from the supplied Atom if it is a NumAtom.

If the atom is not a NumAtom or if it is null then zero will be returned.


Atom GetItem Function. Gets the specified item from the Atom if it is of a type which contains other Atoms. ABCpdf .NET PDF Library.

GetItem Function

Gets the specified item from the Atom if it is of a type which contains other Atoms.

Syntax

[C#]
static Atom GetItem(Atom atom, string key)
static Atom GetItem(Atom atom, int index)

[Visual Basic]
Shared Function GetItem(atom As Atom, key As String) As Atom
Shared Function GetItem(atom As Atom, index As Integer) As Atom

Params
Name | Description
atom | The Atom to get the item from.
key | The name of the item to be retrieved.
index | The index of the item to be retrieved.
return | The returned Atom.

Notes

Both DictAtoms and ArrayAtoms can contain other Atoms.

This function allows you to get an item from an ArrayAtom or DictAtom.

Entries in ArrayAtoms can be referenced by number. If the supplied atom is not an ArrayAtom or if it is null or if the index is outside the bounds of the array then null will be returned.

Entries in DictAtoms can be referenced by name or by number. If the supplied atom is not a DictAtom or if it is null or if the name is not a key in the dictionary or if the index is outside the bounds of the dictionary then null will be returned.


Atom GetName Function. Gets the Name value from the Atom if it is a NameAtom. ABCpdf .NET PDF Library.

GetName Function

Gets the Name value from the Atom if it is a NameAtom.

Syntax

[C#]
static string GetName(Atom atom)

[Visual Basic]
Shared Function GetName(atom As Atom) As String

Params
Name | Description
atom | The Atom to get the name from.
return | The returned name.

Notes

Get the Name value from the supplied Atom if it is a NameAtom.

If the atom is not a NameAtom or if it is null then an empty string ("") will be returned.


Atom GetText Function. Gets the Text value from the Atom if it is a StringAtom. ABCpdf .NET PDF Library.

GetText Function

Gets the Text value from the Atom if it is a StringAtom.

Syntax

[C#]
static string GetText(Atom atom)

[Visual Basic]
Shared Function GetText(atom As Atom) As String

Params
Name | Description
atom | The Atom to get the text from.
return | The returned text.

Notes

Get the Text value from the supplied Atom if it is a StringAtom.

If the atom is not a StringAtom or if it is null then an empty string ("") will be returned.


Atom RemoveItem Function. Removes the named entry from the Atom if it is a DictAtom. ABCpdf .NET PDF Library.

RemoveItem Function

Removes the named entry from the Atom if it is a DictAtom.

Syntax

[C#]
static void RemoveItem(Atom atom, string key)

[Visual Basic]
Shared Sub RemoveItem(atom As Atom, key As String)

Params
Name | Description
atom | The Atom from which the item should be removed.
key | The name of the item to be removed.

Notes

DictAtoms can contain other Atoms referenced by name.

This function allows you to remove a named item from a DictAtom.

If the atom supplied is not a DictAtom then calling this function will have no effect.


Atom SetItem Function. Adds a specified item to the Atom if it is of a type which contains other Atoms. ABCpdf .NET PDF Library.

SetItem Function

Adds a specified item to the Atom if it is of a type which contains other Atoms.

Syntax

[C#]
static Atom SetItem(Atom atom, string key, Atom val)
static Atom SetItem(Atom atom, int index, Atom val)

[Visual Basic]
Shared Function SetItem(atom As Atom, key As String, val As Atom) As Atom
Shared Function SetItem(atom As Atom, index As Integer, val As Atom) As Atom

Params
Name | Description
atom | The Atom to which the item should be added.
key | The name of the item to be added.
index | The index at which the item should be added.
return | The returned Atom.

Notes

Both DictAtoms and ArrayAtoms can contain other Atoms.

This function allows you to add an item to an ArrayAtom or DictAtom.

If the container Atom supplied is not a DictAtom or an ArrayAtom then insertion will not be successful.

Entries in ArrayAtoms can be referenced by number. If the container Atom supplied is an ArrayAtom and the index supplied is within the bounds of the array then insertion will be successful. If the index supplied is less than zero then the value Atom will be added to the end of the array. Again insertion will be successful.

Entries in DictAtoms can be referenced by name. If the container Atom supplied is a DictAtom and the key supplied is not empty then insertion will be successful.

If insertion was successful the function will return the Atom which was added. If it was not successful it will return null.


Atom GetData Function. The byte array representation of the Atom as it would appear in a PDF. ABCpdf .NET PDF Library.

GetData Function

The byte array representation of the Atom as it would appear in a PDF

Syntax

[C#]
byte[] GetData()

[Visual Basic]
Function GetData() As Byte()

Params
Name | Description
none |

Notes

The byte array representation of the Atom as it would appear in a PDF.


Atom Clone Function. Creates a deep copy of the current Atom. ABCpdf .NET PDF Library.

Clone Function

Creates a deep copy of the current Atom.

Syntax

[C#]
Atom Clone()

[Visual Basic]
Function Clone() As Atom

Params
Name | Description
return | The newly created copy.

Notes

This function creates a new object that is a copy of this instance.

The copy is a deep copy and all contained Atoms are copied as part of the clone process


Atom Dispose Function. Dispose of the object. ABCpdf .NET PDF Library.

Dispose Function

Dispose of the object.

Syntax

[C#]
void Dispose()
protected void Dispose(bool disposing)

[Visual Basic]
Sub Dispose()
Protected Sub Dispose(disposing As Boolean)

Params
Name | Description
none |

Notes

You can call this function to explicitly dispose of an object and reduce the garbage collection overhead.

This method follows the standard design pattern for objects implementing the IDisposable interface. The protected Dispose method can be overridden for sub-classes wishing to dispose of additional objects.

Do not attempt to use an object after calling Dispose.


Atom Equals Function. Test whether the two Atoms are the same. ABCpdf .NET PDF Library.

Equals Function

Test whether the two Atoms are the same.

Syntax

[C#]
bool Equals(Atom other)
override bool Equals(object test)
bool Equals(Atom other, ComparisonType type)

[Visual Basic]
Function Equals(other As Atom) As Boolean
Overrides Function Equals(test As Object) As Boolean
Function Equals(other As Atom, type as ComparisonType) As Boolean

Params
Name | Description
other | The object to test against.
type | The type of comparison to perform.
return | Whether the objects are equal.

Notes

This method can be used to determine whether the specified object is equal to the current object.

Objects are considered equal if they have the same content - so this method determines value equality rather than object equality.

The function taking an object is required as part of the .NET framework, it performs exactly the same task as the function taking an Atom.

The override taking a ComparisonType allows you to choose between different ways of evaluating equality. The enum is flags based so you can combine different options. Only if all options evaluate to true will true be returned.

The ComparisonType provides the following options:

  • None - Equal as long as the other atom is not null.
  • Object - Equal if the atoms are object equal.
  • Atom - Equal if the atoms are value equal.


Atom GetHashCode Function. A hash code for the Atom. ABCpdf .NET PDF Library.

GetHashCode Function

A hash code for the Atom.

Syntax

[C#]
override int GetHashCode()
int GetHashCode(ComparisonType type)

[Visual Basic]
Overrides Function GetHashCode() As Integer
Function GetHashCode(type as ComparisonType) As Integer

Params
Name | Description
type | The type of data to hash.
return | The returned hash code.

Notes

Derives a hash code suitable for use in hashing algorithms and data structures like hash tables.

The override taking a ComparisonType allows you to choose between different ways of evaluating the hash. The enum is flags based so you can combine different options.

The ComparisonType provides the following options:

  • None - Hash a constant value.
  • Object - Hash the object - analogous to object equality.
  • Atom - Hash the value - analogous to value equality.


Atom ToString Function. The string representation of the Atom as it would appear in a PDF. ABCpdf .NET PDF Library.

ToString Function

The string representation of the Atom as it would appear in a PDF.

Syntax

[C#]
override string ToString()
string ToString(string format)

[Visual Basic]
Overrides Function ToString() As String
Function ToString(format As String) As String

Params
Name | Description
format | The format which should be used for the conversion.
return | The string representation of the object.

Notes

This function derives the content of the object as it will be inserted into the final PDF document.

Note that the the string value of an object may be large and it may contain unusual characters.

The StringAtom is the only Atom type to support different format strings. Other Atom types will ignore them.


ArrayAtom Class

An Atom containing an array of other Atoms.

System.Object
   WebSupergoo.ABCpdf12.Atoms.Atom
      WebSupergoo.ABCpdf12.Atoms.ArrayAtom

Implements: IList<Atom>, ICollection<Atom>, IEnumerable<Atom>, IList, ICollection, IEnumerable

Method | Description
S» FromXRect | Create an ArrayAtom from a XRect representation.
S» FromXTransform | Create an ArrayAtom from a XTransform representation.
S» FromContentStream | Create an array of Atoms from a byte array containing a sequence of PDF objects.
S» FromNames | Create an ArrayAtom of NameAtoms from a list of strings.
S» FromStrings | Create an ArrayAtom of StringAtoms from a list of strings.
S» FromNums | Create an ArrayAtom of NumAtoms from a list of numbers.
ArrayAtom | ArrayAtom Constructor.
CopyTo | Copies the Atoms into an array.
Add | Add an item to the end of the array.
Clear | Removes all Atoms from the array.
Contains | Determines whether the array contains a specific Atom.
IndexOf | Determines the index of a specific Atom.
Throws Exceptions Insert | Inserts an Atom into the array at the specified position.
Remove | Removes an Atom from the array.
Throws Exceptions RemoveAt | Removes an Atom at a specified position from the array.
Throws Exceptions AddRange | Adds the elements in the supplied array at the end of this array.
Equals | Test whether the two ArrayAtoms are the same.
GetEnumerator | Gets an enumerator for the Collection.
Throws Exceptions GetRange | Creates a shallow copy of a range of elements in the source array.
Throws Exceptions InsertRange | Inserts the elements in the supplied array into this array at the specified index.
Throws Exceptions RemoveRange | Removes a range of elements from the source array.
ToString | The string representation of the StringAtom as it would appear in a PDF.
 | inherited methods...

Property | Description
Count | The number of Atoms in the array.
Throws Exceptions Item | Get or set the Atom at the specified index.
 | inherited properties...


ArrayAtom FromXRect Function. Create an ArrayAtom from a XRect representation. ABCpdf .NET PDF Library.

FromXRect Function

Create an ArrayAtom from a XRect representation

Syntax

[C#]
static ArrayAtom FromXRect(WebSupergoo.ABCpdf12.XRect value)

[Visual Basic]
Shared Function FromXRect(value As WebSupergoo.ABCpdf12.XRect) As ArrayAtom

Params
Name | Description
value | The XRect representing the value of the object.

Notes

Create an ArrayAtom from a XRect representation.

The ArrayAtom will contain four NumAtoms corresponding to the horizontal and vertical elements of two diagonally opposite corners.


ArrayAtom FromXTransform Function. Create an ArrayAtom from a XTransform representation. ABCpdf .NET PDF Library.

FromXTransform Function

Create an ArrayAtom from a XTransform representation

Syntax

[C#]
static ArrayAtom FromXTransform(XTransform value)

[Visual Basic]
Shared Function FromXTransform(value As XTransform) As ArrayAtom

Params
Name | Description
value | The XTransform representing the value of the object.

Notes

Create an ArrayAtom from a XTransform representation.

The ArrayAtom will contain six NumAtoms corresponding to the elements of the transform.


ArrayAtom FromContentStream Function. Create an array of Atoms from a byte array containing a sequence of PDF objects. ABCpdf .NET PDF Library.

FromContentStream Function

Create an array of Atoms from a byte array containing a sequence of PDF objects

Syntax

[C#]
static ArrayAtom FromContentStream(string text)
static ArrayAtom FromContentStream(byte[] data)
static ArrayAtom FromContentStream(byte[] value, out IList<int> offsets)

[Visual Basic]
Shared Function FromContentStream(text As String) As ArrayAtom
Shared Function FromContentStream(data() As Byte) As ArrayAtom
Shared Function FromContentStream(data() As Byte, Out IList<int> offsets) As ArrayAtom

Params
Name | Description
text | A string holding a sequence of atoms.
data | A chunk of data holding the sequence of atoms.
offsets | The byte offsets in the data for the start each of atom in the returned array.
return | An ArrayAtom holding the atoms in the content stream.

Notes

Create an array of Atoms from a byte array containing a sequence of PDF objects.

This method is useful for deconstructing PDF content streams for analysis and modification. To convert back into a content stream you can use the Atom.GetData function.

The returned offsets relate to the byte offsets for the start of each atom in the array that is returned.

Example

This example shows how to use the FromContentStream function to parse and display a PDF content stream.

[C#]

StringBuilder sb = new StringBuilder();
using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("spaceshuttle.pdf"));
  Page page = doc.ObjectSoup[doc.Page] as Page;
  ArrayAtom array = ArrayAtom.FromContentStream(page.GetContentData());
  int indent = 0;
  HashSet<string> indentPlus = new HashSet<string>(new string[] { "q", "BT" });
  HashSet<string> indentMinus = new HashSet<string>(new string[] { "Q", "ET" });
  IList<Tuple<string, int>> items = OpAtom.Find(array);
  int index = 0;
  foreach (var pair in items) {
    string op = ((OpAtom)array[pair.Item2]).Text;
    // add indent to code
    if (indentMinus.Contains(op))
      indent--;
    for (int i = 0; i < indent; i++)
      sb.Append(" ");
    // write out the operators
    for (int i = index; i <= pair.Item2; i++) {
      if (i != index)
        sb.Append(" ");
      Atom item = array[i];
      // we write arrays out individually so that
      // we can override default cr lf behavior
      ArrayAtom itemArray = item as ArrayAtom;
      if (itemArray != null) {
        int n = itemArray.Count;
        sb.Append("[");
        for (int j = 0; j < n; j++) {
          sb.Append(itemArray[j].ToString());
          if (j != n - 1)
            sb.Append(" ");
        }
        sb.Append("]");
      }
      else {
        sb.Append(item.ToString());
      }
    }
    sb.AppendLine();
    if (indentPlus.Contains(op))
      indent++;
    index = pair.Item2 + 1;
  }
  // write out any atoms that are left over
  for (int i = index; i < array.Count; i++) {
    sb.Append(" ");
    sb.Append(array[i].ToString());
  }
}
using (Doc doc = new Doc()) {
  doc.Font = doc.AddFont("Courier");
  doc.Rect.Inset(20, 20);
  doc.AddText(sb.ToString());
  doc.Save(Server.MapPath("PageContents.pdf"));
}

[Visual Basic]
Dim sb As New StringBuilder()
Using doc As New Doc()
  doc.Read(Server.MapPath("spaceshuttle.pdf"))
  Dim page As Page = TryCast(doc.ObjectSoup(doc.Page), Page)
  Dim array As ArrayAtom = ArrayAtom.FromContentStream(page.GetContentData())
  Dim indent As Integer = 0
  Dim indentPlus As New HashSet(Of String)(New String() {"q", "BT"})
  Dim indentMinus As New HashSet(Of String)(New String() {"Q", "ET"})
  Dim items As IList(Of Tuple(Of String, Integer)) = OpAtom.Find(array)
  Dim index As Integer = 0
  For Each pair As var In items
    Dim op As String = DirectCast(array(pair.Item2), OpAtom).Text
    ' add indent to code
    If indentMinus.Contains(op) Then
      System.Math.Max(System.Threading.Interlocked.Decrement(indent),indent + 1)
    End If
    Dim i As Integer = 0
    While i < indent
      sb.Append(" ")
      System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
    End While
    ' write out the operators
    Dim i As Integer = index
    While i <= pair.Item2
      If i <> index Then
        sb.Append(" ")
      End If
      Dim item As Atom = array(i)
      ' we write arrays out individually so that
      ' we can override default cr lf behavior
      Dim itemArray As ArrayAtom = TryCast(item, ArrayAtom)
      If itemArray <> Nothing Then
        Dim n As Integer = itemArray.Count
        sb.Append("[")
        Dim j As Integer = 0
        While j < n
          sb.Append(itemArray(j).ToString())
          If j <> n - 1 Then
            sb.Append(" ")
          End If
          System.Math.Max(System.Threading.Interlocked.Increment(j),j - 1)
        End While
        sb.Append("]")
      Else
        sb.Append(item.ToString())
      End If
      System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
    End While
    sb.AppendLine()
    If indentPlus.Contains(op) Then
      System.Math.Max(System.Threading.Interlocked.Increment(indent),indent - 1)
    End If
    index = pair.Item2 + 1
  Next
  ' write out any atoms that are left over
  Dim i As Integer = index
  While i < array.Count
    sb.Append(" ")
    sb.Append(array(i).ToString())
    System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1)
  End While
End Using
Using doc As New Doc()
  doc.Font = doc.AddFont("Courier")
  doc.Rect.Inset(20, 20)
  doc.AddText(sb.ToString())
  doc.Save(Server.MapPath("PageContents.pdf"))
End Using

PageContents.pdf


ArrayAtom FromNames Function. Create an ArrayAtom of NameAtoms from a list of strings. ABCpdf .NET PDF Library.

FromNames Function

Create an ArrayAtom of NameAtoms from a list of strings.

Syntax

[C#]
static ArrayAtom FromNames(IList<string> items)

[Visual Basic]
Shared Function FromNames(items as IList(Of String)) As ArrayAtom

Params
Name | Description
items | The list of strings.
return | The resulting ArrayAtom.

Notes

Create an ArrayAtom of NameAtoms from a list of strings.

If the provided list is null then the return value will be null.


ArrayAtom FromNums Function. Create an ArrayAtom of NumAtoms from a list of numbers. ABCpdf .NET PDF Library.

FromNums Function

Create an ArrayAtom of NumAtoms from a list of numbers.

Syntax

[C#]
static ArrayAtom FromNums(IList<double> items)

[Visual Basic]
Shared Function FromNums(items as IList(Of Double)) As ArrayAtom

Params
Name | Description
items | The list of numbers.
return | The resulting ArrayAtom.

Notes

Create an ArrayAtom of NumAtoms from a list of numbers.

If the provided list is null then the return value will be null.


ArrayAtom FromStrings Function. Create an ArrayAtom of StringAtoms from a list of strings. ABCpdf .NET PDF Library.

FromStrings Function

Create an ArrayAtom of StringAtoms from a list of strings.

Syntax

[C#]
static ArrayAtom FromStrings(IList<string> items)

[Visual Basic]
Shared Function FromStrings(items as IList(Of String)) As ArrayAtom

Params
Name | Description
items | The list of strings.
return | The resulting ArrayAtom.

Notes

Create an ArrayAtom of StringAtoms from a list of strings.

If the provided list is null then the return value will be null.


ArrayAtom ArrayAtom Function. ArrayAtom Constructor. ABCpdf .NET PDF Library.

ArrayAtom Constructor

ArrayAtom Constructor.

Syntax

[C#]
ArrayAtom()

[Visual Basic]
Sub New()

Params
Name | Description
none |

Notes

Create an empty ArrayAtom.


ArrayAtom CopyTo Function. Copies the Atoms into an array. ABCpdf .NET PDF Library.

CopyTo Function

Copies the Atoms into an array.

Syntax

[C#]
void CopyTo(Atom[] array, int index)

[Visual Basic]
Sub CopyTo(array As Atom(), index As Integer)

Params
Name | Description
array | The array that is the destination for the elements.
index | The zero-based index in array at which copying begins.

Notes

Copies the elements of the Collection to an array starting at a particular array index.

The array must be one-dimensional and have zero-based indexing.


ArrayAtom Add Function. Add an item to the end of the array. ABCpdf .NET PDF Library.

Add Function

Add an item to the end of the array.

Syntax

[C#]
int Add(Atom atm)
int Add(int num)
int Add(double real)
int Add(string str)

[Visual Basic]
Function Add(atm As Atom) As Integer
Function Add(num As Integer) As Integer
Function Add(real As Double) As Integer
Function Add(str As String) As Integer

Params
Name | Description
atm | The Atom to be added.
num | The integer to be added.
real | The floating point value to be added.
str | The string to be added.
return | The position in which the new element was inserted.

Notes

This method adds an item to the array.

You can add an Atom directly into the array or you can use one of the overloaded operators to add numbers or strings.

When you add a string this is encapsulated within a StringAtom and then inserted. When you add an integer or floating point value this is converted to a NumAtom and then inserted. These operations are more efficient than creating an Atom and adding it yourself.

Atoms can exist in only one place at a time. If the Atom supplied is already contained by another object then a Clone of the Atom is added.

Adding a null value will result in a NullAtom being added to the array.


ArrayAtom Clear Function. Removes all Atoms from the array. ABCpdf .NET PDF Library.

Clear Function

Removes all Atoms from the array.

Syntax

[C#]
void Clear()

[Visual Basic]
Sub Clear()

Params
Name | Description
none |

Notes

Removes all Atoms from the array.


ArrayAtom Contains Function. Determines whether the array contains a specific Atom. ABCpdf .NET PDF Library.

Contains Function

Determines whether the array contains a specific Atom.

Syntax

[C#]
bool Contains(Atom value)

[Visual Basic]
Function Contains(value As Atom) As Boolean

Params
Name | Description
value | The object to locate.
return | True if the object is found, otherwise false.

Notes

Determines whether the Collection contains a specific Atom.


ArrayAtom IndexOf Function. Determines the index of a specific Atom. ABCpdf .NET PDF Library.

IndexOf Function

Determines the index of a specific Atom.

Syntax

[C#]
int IndexOf(Atom value)

[Visual Basic]
Function IndexOf(value As Atom) As Integer

Params
Name | Description
value | The object to locate in the Collection.
return | If found, the index of value, otherwise -1.

Notes

Determines the index of a specific Atom in the Collection.


ArrayAtom Insert Function. Inserts an Atom into the array at the specified position. ABCpdf .NET PDF Library.

Insert Function

Inserts an Atom into the array at the specified position.

Syntax

[C#]
void Insert(int index, Atom value)

[Visual Basic]
Sub Insert(index As Integer, value As Atom)

Throws Exceptions may throw ArgumentOutOfRangeException()

Params
Name | Description
index | The zero-based index at which value should be inserted.
value | The Atom to insert into the array.

Notes

Inserts an Atom into the array at the specified position.

If the index equals the number of items in the array then the Atom is appended to the end.

Atoms can exist in only one place at a time. If the Atom supplied is already contained by another object then a Clone of the Atom is added.

Adding a null value will result in a NullAtom being added to the array.

If the index is not a valid index this method throws an ArgumentOutOfRangeException.


ArrayAtom Remove Function. Removes an Atom from the array. ABCpdf .NET PDF Library.

Remove Function

Removes an Atom from the array.

Syntax

[C#]
bool Remove(Atom value)

[Visual Basic]
Function Remove(value As Atom) As Boolean

Params
Name | Description
value | The Atom to be removed.
return | True if the Atom is removed, otherwise false.

Notes

When an Atom is removed the elements that follow the removed element move up to occupy the vacated spot.


ArrayAtom RemoveAt Function. Removes an Atom at a specified position from the array. ABCpdf .NET PDF Library.

RemoveAt Function

Removes an Atom at a specified position from the array.

Syntax

[C#]
void RemoveAt(int index)

[Visual Basic]
Sub RemoveAt(index As Integer)

Throws Exceptions may throw ArgumentOutOfRangeException()

Params
Name | Description
index | The zero-based index of the item to remove.

Notes

If the index is not valid then an ArgumentOutOfRangeException will be thrown.

When an Atom is removed the elements that follow the removed element move up to occupy the vacated spot.


ArrayAtom AddRange Function. Adds the elements in the supplied array at the end of this array. ABCpdf .NET PDF Library.

AddRange Function

Adds the elements in the supplied array at the end of this array

Syntax

[C#]
void AddRange(ArrayAtom array)

[Visual Basic]
Sub AddRange(array As ArrayAtom)

Throws Exceptions may throw Exception()

Params
Name | Description
array | The array whose elements should be added.

Notes

Adds the elements in the supplied array at the end of this array.

If the supplied array is null then an exception will be raised.


ArrayAtom Equals Function. Test whether the two ArrayAtoms are the same. ABCpdf .NET PDF Library.

Equals Function

Test whether the two ArrayAtoms are the same

Syntax

[C#]
bool Equals(ArrayAtom other)

[Visual Basic]
Function Equals(other As ArrayAtom) As Boolean

Params
Name | Description
other | The ArrayAtom to test against.

Notes

Test whether the two ArrayAtoms are the same.

Two ArrayAtoms are judged to be equal if they have the same number of Atoms contained within them and each Atom in one array is equal to the corresponding Atom in the other array.


ArrayAtom GetEnumerator Function. Gets an enumerator for the Collection. ABCpdf .NET PDF Library.

GetEnumerator Function

Gets an enumerator for the Collection.

Syntax

[C#]
IEnumerator<Atom> GetEnumerator()

[Visual Basic]
Function GetEnumerator() As IEnumerator(Of Atom)

Params
Name | Description
return | The enumerator for the collection.

Notes

Gets an Atom enumerator for the Collection.


ArrayAtom GetRange Function. Creates a shallow copy of a range of elements in the source array. ABCpdf .NET PDF Library.

GetRange Function

Creates a shallow copy of a range of elements in the source array

Syntax

[C#]
ArrayAtom GetRange(int index, int count)

[Visual Basic]
Function GetRange(index As Integer, count As Integer) As ArrayAtom

Throws Exceptions may throw Exception()

Params
Name | Description
index | The zero-based index specifying the first element.
count | The number of elements to be selected.

Notes

Creates a shallow copy of a range of elements in the source array.

If the index is equal to the Count then the elements are added to the end of the array. If the index or count is invalid then an exception will be raised.


ArrayAtom InsertRange Function. Inserts the elements in the supplied array into this array at the specified index. ABCpdf .NET PDF Library.

InsertRange Function

Inserts the elements in the supplied array into this array at the specified index

Syntax

[C#]
void InsertRange(int index, ArrayAtom array)

[Visual Basic]
Sub InsertRange(index As Integer, array As ArrayAtom)

Throws Exceptions may throw Exception()

Params
Name | Description
index | The zero-based index at which the new elements should be inserted.
array | The array whose elements should be inserted.

Notes

Inserts the elements in the supplied array into this array at the specified index.

If the index is equal to the Count then the elements are added to the end of the array.

If the supplied array is null or the index is invalid then an exception will be raised.


ArrayAtom RemoveRange Function. Removes a range of elements from the source array. ABCpdf .NET PDF Library.

RemoveRange Function

Removes a range of elements from the source array

Syntax

[C#]
void RemoveRange(int index, int count)

[Visual Basic]
Sub RemoveRange(index As Integer, count As Integer)

Throws Exceptions may throw Exception()

Params
Name | Description
index | The zero-based index specifying the first element.
count | The number of elements to be removed.

Notes

Removes a range of elements from the source array.

If the index is equal to the Count then the elements are added to the end of the array.

If the index or count is invalid then an exception will be raised.


Atom ToString Function. The string representation of the StringAtom as it would appear in a PDF. ABCpdf .NET PDF Library.

ToString Function

The string representation of the StringAtom as it would appear in a PDF.

Syntax

[C#]
override string ToString()
string ToString(string format)

[Visual Basic]
Overrides Function ToString() As String
Function ToString(format As String) As String

Params
Name | Description
format | The format which should be used for the conversion.
return | The string representation of the object.

Notes

This function derives the content of the object as it will be inserted into the final PDF document.

There are many ways in which a string may be represented. The format string allows more control over how this is done.

The following options may be used in combination.

  • nXX - the number of items per line where XX is the number required

If format options are not specified then ABCpdf will select a sensible set depending on context.

The number of items per line, determines how many array items will be written on one line. If the number is less than or equal to zero then ABCpdf will dynamically determine an appropriate number of items to be written. Note that items may themselves be ArrayAtom or DictAtom so they may contain their own line breaks.


ArrayAtom Count Property. The number of Atoms in the array. ABCpdf .NET PDF Library.

Count Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The number of Atoms in the array.

Notes

The number of Atoms in the array.

As Atoms are added to the array the Count will increase.


ArrayAtom Item Property. Get or set the Atom at the specified index. ABCpdf .NET PDF Library.

Item Property

Type Default Read Only Description
[C#]
Atom this[int index]
int this[int index, int def]
double this[int index, double def]
string this[int index, string def]
string this[int index, Enum def]
byte[] this[int index, byte[] def]

[Visual Basic]
Default Property Item(index As Integer) As Atom
Default Property Item(index As Integer, def As Integer) As Integer
Default Property Item(index As Integer, def As Double) As Double
Default Property Item(index As Integer, def As String) As String
Default Property Item(index As Integer, def As Enum) As String
Default Property Item(index As Integer, def As Byte()) As Byte() 		n/a No Get or set the Atom at the specified index.

Throws Exceptions may throw ArgumentOutOfRangeException()

Notes

Gets or sets the Atom at the specified index. In C# this property is the indexer for the class.

You can access an Atom directly or you can use one of the overloaded operators to specify numbers or strings. Using the overloads to access numbers or strings is more efficient than accessing an Atom and extracting the value from it.

You specify one of the overloads using the def parameter. If you are setting a value then this parameter is ignored. If you are getting a value then this parameter becomes the default value to be used if the underlying Atom was not the correct type. For example the default would be returned if you attempted to get an integer but the underlying Atom was actually a StringAtom.

The integer and double overload allow access to NumAtoms. The string overload allows access to StringAtom values while the Enum overload allows access to NameAtom values. Any Enum may be used and if the entry is not valid or available the string value of the Enum will be returned. The byte[] overload allows access to the raw data of the atom.

Atoms can exist in only one place at a time. If the Atom supplied is already contained by another object then a Clone of the Atom is added.

Adding a null value will result in a NullAtom being added to the array.

If the index is not a valid index this property throws an ArgumentOutOfRangeException.


BoolAtom Class

An Atom containing a Boolean value.

System.Object
   WebSupergoo.ABCpdf12.Atoms.Atom
      WebSupergoo.ABCpdf12.Atoms.BoolAtom

Method | Description
BoolAtom | Construct a BoolAtom.
Equals | Test whether the two BoolAtoms are the same.
 | inherited methods...

Property | Description
Truth | Whether the Boolean is true or false.
 | inherited properties...


BoolAtom BoolAtom Function. Construct a BoolAtom. ABCpdf .NET PDF Library.

BoolAtom Constructor

Construct a BoolAtom.

Syntax

[C#]
BoolAtom()
BoolAtom(bool value)

[Visual Basic]
Sub New()
Sub New(value As Boolean)

Params
Name | Description
value | The initial value that the Atom should adopt.

Notes

Create a BoolAtom.

If a value is not specified the default of false will be used.


BoolAtom Equals Function. Test whether the two BoolAtoms are the same. ABCpdf .NET PDF Library.

Equals Function

Test whether the two BoolAtoms are the same

Syntax

[C#]
bool Equals(BoolAtom other)

[Visual Basic]
Function Equals(other As BoolAtom) As Boolean

Params
Name | Description
other | The BoolAtom to test against.

Notes

Test whether the two BoolAtoms are the same.

Two BoolAtoms are judged to be equal if their Truth is equal.


BoolAtom Truth Property. Whether the Boolean is true or false. ABCpdf .NET PDF Library.

Truth Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | n/a | No | Whether the Boolean is true or false.

Notes

Whether the Boolean is true or false.


DictAtom Class

An Atom containing a dictionary of other Atoms indexed by name.

System.Object
   WebSupergoo.ABCpdf12.Atoms.Atom
      WebSupergoo.ABCpdf12.Atoms.DictAtom

Implements: IDictionary<string, Atom>, ICollection<KeyValuePair<string, Atom>>, IEnumerable<KeyValuePair<string, Atom>>, IDictionary, ICollection, IEnumerable

Method | Description
DictAtom | Construct a DictAtom.
CopyTo | Copies the Atoms into an array.
Throws Exceptions Add | Add an item to the dictionary.
Clear | Removes all elements from the dictionary.
Contains | Determines whether the dictionary contains an element with a specific name.
Remove | Remove an element from the dictionary.
GetKeys | Get an array of all the names in the dictionary.
GetValues | Get an array of all the Atoms in the dictionary.
GetEnumerator | Get an enumerator for the dictionary.
Equals | Test whether the two DictAtoms are the same.
 | inherited methods...

Property | Description
Count | Get the number of elements in the dictionary.
Throws Exceptions Item | Get or set the entry with the specified name.
Keys | Get the collection of the keys in the dictionary.
Values | Get the collection of the Atoms in the dictionary.
 | inherited properties...


DictAtom DictAtom Function. Construct a DictAtom. ABCpdf .NET PDF Library.

DictAtom Constructor

Construct a DictAtom.

Syntax

[C#]
DictAtom()

[Visual Basic]
Sub New()

Params
Name | Description
none |

Notes

Create an empty DictAtom.


DictAtom CopyTo Function. Copies the Atoms into an array. ABCpdf .NET PDF Library.

CopyTo Function

Copies the Atoms into an array.

Syntax

[C#]
void CopyTo(Atom[] array, int index)
void CopyTo(KeyValuePair<string, Atom>[] array, int index)

[Visual Basic]
Sub CopyTo(array As Atom(), index As Integer)
Sub CopyTo(array As KeyValuePair(Of String, Atom)(), index As Integer)

Params
Name | Description
array | The array that is the destination for the elements.
index | The zero-based index in array at which copying begins.

Notes

Copies the elements of the dictionary to an array starting at a particular array index.

The array must be one-dimensional and have zero-based indexing.

The implementation of ICollection.CopyTo copies KeyValuePair<string, Atom> values to the array if the element type of the array is compatible. Otherwise, it copies DictionaryEntry values to the array.


DictAtom Add Function. Add an item to the dictionary. ABCpdf .NET PDF Library.

Add Function

Add an item to the dictionary.

Syntax

[C#]
void Add(string key, Atom atm)
void Add(string key, int num)
void Add(string key, double real)
void Add(string key, string str)

[Visual Basic]
Sub Add(key As String, atm As Atom)
Sub Add(key As String, num As Integer)
Sub Add(key As String, real As Double)
Sub Add(key As String, str As String)

Throws Exceptions may throw ArgumentException()
Throws Exceptions may throw ArgumentNullException()

Params
Name | Description
key | The string to use as the key of the element to add.
atm | The Atom to be added.
num | The integer to be added.
real | The floating point value to be added.
str | The string to be added.

Notes

This method adds an item to the dictionary.

You can add an Atom directly into the dictionary or you can use one of the overloaded operators to add numbers or strings.

When you add a string this is encapsulated within a StringAtom and then inserted. When you add an integer or floating point value this is converted to a NumAtom and then inserted. These operations are more efficient than creating an Atom and adding it yourself.

Atoms can exist in only one place at a time. If the Atom supplied is already contained by another object then a Clone of the Atom is added.

Adding a null value will result in a NullAtom being added to the dictionary.

If the key is null then this method will throw an ArgumentNullException. If the key is already present in the dictionary then this method will throw an ArgumentException.


DictAtom Clear Function. Removes all elements from the dictionary. ABCpdf .NET PDF Library.

Clear Function

Removes all elements from the dictionary.

Syntax

[C#]
void Clear()

[Visual Basic]
Sub Clear()

Params
Name | Description
none |

Notes

Removes all elements from the dictionary.


DictAtom Contains Function. Determines whether the dictionary contains an element with a specific name. ABCpdf .NET PDF Library.

Contains Function

Determines whether the dictionary contains an element with a specific name.

Syntax

[C#]
bool Contains(string name)

[Visual Basic]
Function Contains(name As String) As Boolean

Params
Name | Description
name | The element to locate in the dictionary.
return | True if the name is found, otherwise false.

Notes

Determines whether the dictionary contains an element with a specific name.


DictAtom Remove Function. Remove an element from the dictionary. ABCpdf .NET PDF Library.

Remove Function

Remove an element from the dictionary.

Syntax

[C#]
void Remove(string name)

[Visual Basic]
Sub Remove(name As String)

Params
Name | Description
name | The name of the element to be removed.

Notes

Remove the element with the specified name from the dictionary.


DictAtom GetKeys Function. Get an array of all the names in the dictionary. ABCpdf .NET PDF Library.

GetKeys Function

Get an array of all the names in the dictionary.

Syntax

[C#]
string[] GetKeys()

[Visual Basic]
Function GetKeys() As String()

Params
Name | Description
return | An array of all the names in the dictionary.

Notes

Get an array of all the names in the dictionary.


DictAtom GetValues Function. Get an array of all the Atoms in the dictionary. ABCpdf .NET PDF Library.

GetValues Function

Get an array of all the Atoms in the dictionary.

Syntax

[C#]
Atom[] GetValues()

[Visual Basic]
Function GetValues() As Atom()

Params
Name | Description
return | An array of all the Atoms in the dictionary.

Notes

Get an array of all the Atoms in the dictionary.


DictAtom GetEnumerator Function. Get an enumerator for the dictionary. ABCpdf .NET PDF Library.

GetEnumerator Function

Get an enumerator for the dictionary.

Syntax

[C#]
DictAtom.Enumerator GetEnumerator()

[Visual Basic]
Function GetEnumerator() As DictAtom.Enumerator

Params
Name | Description
return | The enumerator for the dictionary.

Notes

Get an KeyValuePair<string, Atom> enumerator for the dictionary.

DictAtom.Enumerator is a value type that implements IEnumerator<KeyValuePair<string, Atom>> and IDictionaryEnumerator.


DictAtom Equals Function. Test whether the two DictAtoms are the same. ABCpdf .NET PDF Library.

Equals Function

Test whether the two DictAtoms are the same

Syntax

[C#]
bool Equals(DictAtom other)

[Visual Basic]
Function Equals(other As DictAtom) As Boolean

Params
Name | Description
other | The DictAtom to test against.

Notes

Test whether the two DictAtoms are the same.

Two DictAtoms are judged to be equal if they have the same named entries and the Atom corresponding with each named entry is equal to the corresponding Atom in the other dictionary.


DictAtom Count Property. Get the number of elements in the dictionary. ABCpdf .NET PDF Library.

Count Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | Get the number of elements in the dictionary.

Notes

Get the number of elements in the dictionary.

As elements are added to the dictionary the Count will increase.


DictAtom Item Property. Get or set the entry with the specified name. ABCpdf .NET PDF Library.

Item Property

Type Default Read Only Description
[C#]
Atom this[string name]
int this[string name, int def]
double this[string name, double def]
string this[string name, string def]
string this[string name, Enum def]

[Visual Basic]
Default Property Item(name As String) As Atom
Default Property Item(name As String, def As Integer) As Integer
Default Property Item(name As String, def As Double) As Double
Default Property Item(>name As String, def As String) As String
Default Property Item(name As String, def As Enum) As String 		n/a Yes Get or set the entry with the specified name.

Throws Exceptions may throw ArgumentNullException()

Notes

Get or set the Atom with the specified name. In C# this property is the indexer for the class.

You can access an Atom directly or you can use one of the overloaded operators to specify numbers or strings. Using the overloads to access numbers or strings is more efficient than accessing an Atom and extracting the value from it.

You specify one of the overloads using the def parameter. If you are setting a value then this parameter is ignored. If you are getting a value then this parameter becomes the default value to be used if the underlying Atom was not the correct type. For example the default would be returned if you attempted to get an integer but the underlying Atom was actually a StringAtom.

The integer and double overload allow access to NumAtoms. The string overload allows access to StringAtom values while the Enum overload allows access to NameAtom values. Any Enum may be used and if the entry is not valid or available the string value of the Enum will be returned.

Atoms can exist in only one place at a time. If the Atom supplied is already contained by another object then a Clone of the Atom is added.

Adding a null value will result in a NullAtom being added to the array.

If the name is null this property throws an ArgumentNullException.


DictAtom Keys Property. Get the collection of the keys in the dictionary. ABCpdf .NET PDF Library.

Keys Property

Type | Default | Read Only | Description
[C#] DictAtom.KeyCollection [Visual Basic] DictAtom.KeyCollection | n/a | Yes | Get the collection of the keys in the dictionary.

Notes

Get the collection of the keys in the dictionary.

DictAtom.KeyCollection implements ICollection<string> and ICollection.


DictAtom Values Property. Get the collection of the Atoms in the dictionary. ABCpdf .NET PDF Library.

Values Property

Type | Default | Read Only | Description
[C#] DictAtom.ValueCollection [Visual Basic] DictAtom.ValueCollection | n/a | Yes | Get the collection of the Atoms in the dictionary.

Notes

Get the collection of the Atoms in the dictionary.

DictAtom.ValueCollection implements ICollection<Atom> and ICollection.


NameAtom Class

An Atom representing a name.

System.Object
   WebSupergoo.ABCpdf12.Atoms.Atom
      WebSupergoo.ABCpdf12.Atoms.NameAtom

Method | Description
Equals | Test whether the two NameAtoms are the same.
Encode | Encode text into a PDF name.
NameAtom | Construct a NameAtom.
 | inherited methods...

Property | Description
Text | The text of the name.
 | inherited properties...


NameAtom Encode Function. Encode text into a PDF name. ABCpdf .NET PDF Library.

Encode Function

Encode text into a PDF name.

Syntax

[C#]
string Encode(string value)

[Visual Basic]
Function Encode(value As String) As String

Params
Name | Description
value | The text to convert.
returns | The string representation.

Notes

Encode text into a PDF name.

PDF names contain restrictions on the types of characters that can be contained. Reserved characters may need to be escaped.

This function allows you to convert a string into a name format which can be directly inserted into a PDF or content stream.


NameAtom Equals Function. Test whether the two NameAtoms are the same. ABCpdf .NET PDF Library.

Equals Function

Test whether the two NameAtoms are the same

Syntax

[C#]
bool Equals(NameAtom other)

[Visual Basic]
Function Equals(other As NameAtom) As Boolean

Params
Name | Description
other | The NameAtom to test against.

Notes

Test whether the two NameAtoms are the same.

Two NameAtoms are judged to be equal if their Text is equal.


NameAtom NameAtom Function. Construct a NameAtom. ABCpdf .NET PDF Library.

NameAtom Constructor

Construct a NameAtom.

Syntax

[C#]
NameAtom()
NameAtom(string value)

[Visual Basic]
Sub New()
Sub New(value As String)

Params
Name | Description
value | The initial value that the Atom should adopt.

Notes

Create a NameAtom.

If a value is not specified the default - an empty string - will be used.


NameAtom Text Property. The text of the name. ABCpdf .NET PDF Library.

Text Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | n/a | No | The text of the name.

Notes

The text of the name.


NullAtom Class

A null Atom.

System.Object
   WebSupergoo.ABCpdf12.Atoms.Atom
      WebSupergoo.ABCpdf12.Atoms.NullAtom

Method | Description
Equals | Test whether the two NullAtoms are the same.
NullAtom | Construct a NullAtom.
 | inherited methods...

Property | Description
none |
 | inherited properties...


NullAtom Equals Function. Test whether the two NullAtoms are the same. ABCpdf .NET PDF Library.

Equals Function

Test whether the two NullAtoms are the same

Syntax

[C#]
bool Equals(NullAtom other)

[Visual Basic]
Function Equals(other As NullAtom) As Boolean

Params
Name | Description
other | The NullAtom to test against.

Notes

Test whether the two NullAtoms are the same.

NullAtoms are are always equal to each other.


NullAtom NullAtom Function. Construct a NullAtom. ABCpdf .NET PDF Library.

NullAtom Constructor

Construct a NullAtom.

Syntax

[C#]
NullAtom()

[Visual Basic]
Sub New()

Params
Name | Description
none |

Notes

Create a NullAtom.


NumAtom Class

An Atom representing a numeric value.

System.Object
   WebSupergoo.ABCpdf12.Atoms.Atom
      WebSupergoo.ABCpdf12.Atoms.NumAtom

Method | Description
S» Encode | Encode a number into a PDF string. This format may be needed for direct insertion into a content stream.
Equals | Test whether the two NumAtoms are the same.
NumAtom | Construct a NumAtom.
 | inherited methods...

Property | Description
Num | The integer value of the number.
Num64 | The 64-bit integer value of the number.
Real | The floating point value of the number.
 | inherited properties...


NumAtom Encode Function. Encode a number into a PDF string. This format may be needed for direct insertion into a content stream. ABCpdf .NET PDF Library.

Encode Function

Encode a number into a PDF string. This format may be needed for direct insertion into a content stream.

Syntax

[C#]
static string Encode(double value)

[Visual Basic]
Shared Function Encode(value As Double) As String

Params
Name | Description
value | The number to convert.
return | The string representation.

Notes

Encode a number into a PDF string. This format may be needed for direct insertion into a content stream.

PDF content streams accept certain formats of numbers. In many situations these are the same as the strings returned by .NET functions such as ToString. However in the case of floating point conversions, not all output formats are valid in a PDF content stream.

For example, very small or very large numbers can lead to the insertion of exponential format strings which are not an accepted PDF format and can lead to errors. Because numbers typically occur in a non exponential range these errors can be infrequent and difficult to track down.

This method will produce PDF valid strings for use in content streams and similar applications.


NumAtom Equals Function. Test whether the two NumAtoms are the same. ABCpdf .NET PDF Library.

Equals Function

Test whether the two NumAtoms are the same

Syntax

[C#]
bool Equals(NumAtom other)

[Visual Basic]
Function Equals(other As NumAtom) As Boolean

Params
Name | Description
other | The NumAtoms to test against.

Notes

Test whether the two NumAtoms are the same.

Two NumAtoms are judged to be equal if their numeric value is equal.


NumAtom NumAtom Function. Construct a NumAtom. ABCpdf .NET PDF Library.

NumAtom Constructor

Construct a NumAtom.

Syntax

[C#]
NumAtom()
NumAtom(int num)
NumAtom(double real)

[Visual Basic]
Sub New()
Sub New(num As Integer)
Sub New(real As Double)

Params
Name | Description
num | The initial integer value that the Atom should adopt.
real | The initial floating point value that the Atom should adopt.

Notes

Create a NumAtom.

If a value is not specified the default of zero will be used.


NumAtom Num Property. The integer value of the number. ABCpdf .NET PDF Library.

Num Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | No | The integer value of the number.

Notes

The integer value of the number.


NumAtom Num64 Property. The 64-bit integer value of the number. ABCpdf .NET PDF Library.

Num64 Property

Type | Default | Read Only | Description
[C#] long [Visual Basic] Long | n/a | No | The 64-bit integer value of the number.

Notes

The 64-bit integer value of the number.


NumAtom Real Property. The floating point value of the number. ABCpdf .NET PDF Library.

Real Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | n/a | No | The floating point value of the number.

Notes

The floating point value of the number.


OpAtom Class

An atom which represents a content stream operator.

System.Object
   WebSupergoo.ABCpdf12.Atoms.Atom
      WebSupergoo.ABCpdf12.Atoms.OpAtom

Method | Description
OpAtom | Create an operator atom for a string.
Equals | Test whether the two OpAtoms are the same.
Find | Finds specified types of OpAtom entries in an array.
Throws Exceptions GetParameter | Gets the parameter associated with the OpAtom at the specified index and validates that the atom is of the correct type.
GetParameters | Gets the parameters associated with the OpAtom at the specified index and validates that the atoms are of the correct type.
 | inherited methods...

Property | Description
Text | The text of the operator.
 | inherited properties...


OpAtom OpAtom Function. Create an operator atom for a string. ABCpdf .NET PDF Library.

OpAtom Function

Create an operator atom for a string

Syntax

[C#]
OpAtom()
OpAtom(string value)

[Visual Basic]
New()
New(value As String)

Params
Name | Description
value | The operator text.

Notes

Create an operator atom for a string.


OpAtom Equals Function. Test whether the two OpAtoms are the same. ABCpdf .NET PDF Library.

Equals Function

Test whether the two OpAtoms are the same

Syntax

[C#]
bool Equals(OpAtom other)

[Visual Basic]
Function Equals(other As OpAtom) As Boolean

Params
Name | Description
other | The OpAtom to test against.

Notes

Test whether the two OpAtoms are the same.

Two OpAtoms are judged to be equal if their Text is equal.


OpAtom Find Function. Finds specified types of OpAtom entries in an array. ABCpdf .NET PDF Library.

Find Function

Finds specified types of OpAtom entries in an array

Syntax

[C#]
IList<Tuple<string, int>> Find(ArrayAtom atom)
IList<Tuple<string, int>> Find(ArrayAtom atom, string[] names)

[Visual Basic]
Function Find(atom As ArrayAtom) As IList(Of Tuple(Of string, int))
Function Find(atom As ArrayAtom, names() As String) As IList(Of Tuple(Of string, int))

Params
Name | Description
atom | The ArrayAtom to be searched.
names | The types of OpAtoms that should be returned.
return | The positions and text of the items which were found.

Notes

Finds specified types of OpAtom entries in an array.

If you specify no names then the positions and text of all the OpAtoms in the ArrayAtom will be returned. If you are only interested in a particular set of operators then you can specify an array of those types to restrict the number of items returned.

In addition to the standard names there is also the "Meta:InlineImage" name which is a metatag to allow you to access inline image streams. By explicitly setting this - it must be explicitly provided - you can pick up the location of any inline image dictionaries.

Example

This example shows how to use the Array.FromContentStream function to parse a content stream and then use the Find method to search for certain types of color operators and replace them with other color operators. In this example this has the effect of converting some black parts of the PDF to red. For a more comprehensive approach one would use the ContentStreamOperation class to determine all content streams associated with the pages in question.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("spaceshuttle.pdf"));
  doc.RemapPages(new int[] { 1, 1 });
  doc.PageNumber = 2;
  Page page = doc.ObjectSoup[doc.Page] as Page;
  StreamObject[] layers = page.GetLayers();
  MemoryStream st = new MemoryStream();
  foreach (StreamObject layer in layers) {
    if (!layer.Decompress())
      throw new Exception("Unable to decompress stream.");
    byte[] data = layer.GetData();
    st.Write(data, 0, data.Length);
    layer.CompressFlate();
  }
  ArrayAtom array = ArrayAtom.FromContentStream(st.ToArray());
  if (true) {
    var items = OpAtom.Find(array, new string[] { "k" });
    foreach (var pair in items) { // make red
      Atom[] args = OpAtom.GetParameters(array, pair.Item2);
      if (args != null) {
        ((NumAtom)args[0]).Real = 0;
        ((NumAtom)args[1]).Real = 1;
        ((NumAtom)args[2]).Real = 1;
        ((NumAtom)args[3]).Real = 0;
      }
    }
  }
  if (true) {
    var items = OpAtom.Find(array, new string[] { "rg" });
    foreach (var pair in items) { // make green
      Atom[] args = OpAtom.GetParameters(array, pair.Item2);
      if (args != null) {
        ((NumAtom)args[0]).Real = 0;
        ((NumAtom)args[1]).Real = 1;
        ((NumAtom)args[2]).Real = 0;
      }
    }
  }
  byte[] arrayData = array.GetData();
  StreamObject so = new StreamObject(doc.ObjectSoup);
  so.SetData(arrayData, 1, arrayData.Length - 2);
  doc.SetInfo(page.ID, "/Contents:Del", "");
  page.AddLayer(so);
  doc.Save(Server.MapPath("ReplaceColors.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("spaceshuttle.pdf"))
  doc.RemapPages(New Integer() {1, 1})
  doc.PageNumber = 2
  Dim page As Page = TryCast(doc.ObjectSoup(doc.Page), Page)
  Dim layers As StreamObject() = page.GetLayers()
  Dim st As New MemoryStream()
  For Each layer As StreamObject In layers
    If Not layer.Decompress() Then
      Throw New Exception("Unable to decompress stream.")
    End If
    Dim data As Byte() = layer.GetData()
    st.Write(data, 0, data.Length)
    layer.CompressFlate()
  Next
  Dim array As ArrayAtom = ArrayAtom.FromContentStream(st.ToArray())
  If True Then
    Dim items = OpAtom.Find(array, New String() {"k"})
    For Each pair As var In items
      ' make red
      Dim args As Atom() = OpAtom.GetParameters(array, pair.Item2)
      If args <> Nothing Then
        DirectCast(args(0), NumAtom).Real = 0
        DirectCast(args(1), NumAtom).Real = 1
        DirectCast(args(2), NumAtom).Real = 1
        DirectCast(args(3), NumAtom).Real = 0
      End If
    Next
  End If
  If True Then
    Dim items = OpAtom.Find(array, New String() {"rg"})
    For Each pair As var In items
      ' make green
      Dim args As Atom() = OpAtom.GetParameters(array, pair.Item2)
      If args <> Nothing Then
        DirectCast(args(0), NumAtom).Real = 0
        DirectCast(args(1), NumAtom).Real = 1
        DirectCast(args(2), NumAtom).Real = 0
      End If
    Next
  End If
  Dim arrayData As Byte() = array.GetData()
  Dim so As New StreamObject(doc.ObjectSoup)
  so.SetData(arrayData, 1, arrayData.Length - 2)
  doc.SetInfo(page.ID, "/Contents:Del", "")
  page.AddLayer(so)
  doc.Save(Server.MapPath("ReplaceColors.pdf"))
End Using

ReplaceColors.pdf [Page 1]

ReplaceColors.pdf [Page 2]


OpAtom GetParameter Function. Gets the parameter associated with the OpAtom at the specified index and validates that the atom is of the correct type. ABCpdf .NET PDF Library.

GetParameter Function

Gets the parameter associated with the OpAtom at the specified index and validates that the atom is of the correct type

Syntax

[C#]
Atom GetParameter(ArrayAtom array, int index)

[Visual Basic]
Function GetParameter(array As ArrayAtom, index As Integer) As Atom

Throws Exceptions may throw Exception()

Params
Name | Description
array | The array in which the OpAtom is found.
index | The index to the OpAtom.
return | The parameter.

Notes

Gets the parameter associated with the OpAtom at the specified index and validates that the atom is of the correct type.

Only the top level atoms are checked. So for example, the TJ operator takes an ArrayAtom consisting of NumAtoms and StringAtoms. This function will ensure that there is one ArrayAtom available as a parameter. However it will not ensure that all items inside the array are NumAtoms or StringAtoms.

If the atom is not of the correct type, is not available in the array (e.g. because the array is too small) or the operator is unrecognized then the return value will be null. If the operator does not take any parameters the return will be null.

The Atom is the actual object in the supplied array so changing the value of the Atom will change the value in the array. If the index does not point to an OpAtom or is not inside the array bounds then an exception will be thrown.

This function supports all the standard PDF operator types as defined in the PDF Specification apart from BI, ID and EI which are used for inline images. The reason these are not supported is because this sequence is read as a DictAtom with embedded data so you should never encounter it.


OpAtom GetParameters Function. Gets the parameters associated with the OpAtom at the specified index and validates that the atoms are of the correct type. ABCpdf .NET PDF Library.

GetParameters Function

Gets the parameters associated with the OpAtom at the specified index and validates that the atoms are of the correct type

Syntax

[C#]
Atom[] GetParameters(ArrayAtom array, int index)

[Visual Basic]
Function GetParameters(array As ArrayAtom, index As Integer) As Atom()

Params
Name | Description
array | The array in which the OpAtom is found.
index | The index to the OpAtom.
return | The parameters.

Notes

Gets the parameters associated with the OpAtom at the specified index and validates that the atoms are of the correct type.

Because the arguments are validated and the types are checked so you can rely on the fact that the returned array contains a valid number of Atoms of the correct types.

Only the top level atoms are checked. So for example, the TJ operator takes an ArrayAtom consisting of NumAtoms and StringAtoms. This function will ensure that there is one ArrayAtom available as a parameter. However it will not ensure that all items inside the array are NumAtoms or StringAtoms. Also resource lookups are not done so, for example, it is not checked that a font name actually exists in the font resource dictionary.

If the operator takes no parameters a zero length array will be returned. If the operator parameters are incorrect or if the operator is not recognized then the return value will be null. In this unusual situation you may wish to set the OpAtom.Text to white space to remove the invalid operator from the content stream. While this does not fix the underlying problem, it will at least prevent applications like Acrobat from reporting an error.


OpAtom Text Property. The text of the operator. ABCpdf .NET PDF Library.

Text Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | n/a | No | The text of the operator

Notes

The text of the operator.

Typical operators include "rg" for setting a RGB color and "cm" for concatenating a matrix. Further details may be found in the PDF Specification.


RefAtom Class

An Atom which references an IndirectObject.

System.Object
   WebSupergoo.ABCpdf12.Atoms.Atom
      WebSupergoo.ABCpdf12.Atoms.RefAtom

Method | Description
RefAtom | Construct a RefAtom.
Assign | Set the IndirectObject that the reference should point to.
Equals | Test whether the two RefAtoms are the same.
Resolve | Get the IndirectObject that the reference is pointing to.
 | inherited methods...

Property | Description
ID | The ID of the referenced IndirectObject.
Gen | The generation of the referenced IndirectObject.
 | inherited properties...


RefAtom RefAtom Function. Construct a RefAtom. ABCpdf .NET PDF Library.

RefAtom Constructor

Construct a RefAtom.

Syntax

[C#]
RefAtom()
RefAtom(IndirectObject value)

[Visual Basic]
Sub New()
Sub New(value As IndirectObject)

Params
Name | Description
value | The initial IndirectObject that the Atom should point to.

Notes

Create a RefAtom.

If an IndirectObject is not specified the default of the null object at entry zero will be used.


RefAtom Assign Function. Set the IndirectObject that the reference should point to. ABCpdf .NET PDF Library.

Assign Function

Set the IndirectObject that the reference should point to.

Syntax

[C#]
void Assign(IndirectObject value)

[Visual Basic]
Sub Assign(value As IndirectObject)

Params
Name | Description
value | The IndirectObject that the RefAtom should point to.

Notes

Set the IndirectObject that the reference should point to.


RefAtom Equals Function. Test whether the two RefAtoms are the same. ABCpdf .NET PDF Library.

Equals Function

Test whether the two RefAtoms are the same

Syntax

[C#]
bool Equals(RefAtom other)

[Visual Basic]
Function Equals(other As RefAtom) As Boolean

Params
Name | Description
other | The RefAtom to test against.

Notes

Test whether the two RefAtoms are the same.

Two RefAtoms are judged to be equal if their ID and Gen properties are equal.


RefAtom Resolve Function. Get the IndirectObject that the reference is pointing to. ABCpdf .NET PDF Library.

Resolve Function

Get the IndirectObject that the reference is pointing to.

Syntax

[C#]
IndirectObject Resolve(ObjectSoup objects)

[Visual Basic]
Function Resolve(objects As ObjectSoup) as IndirectObject

Params
Name | Description
objects | The collection of objects to be searched.
return | The matching IndirectObject.

Notes

This function resolves a RefAtom to the IndirectObject that it references.

If the RefAtom is referencing another RefAtom then the Resolve process will continue until an Atom which is not a RefAtom is found. If no item is found then null is returned.


RefAtom ID Property. The ID of the referenced IndirectObject. ABCpdf .NET PDF Library.

ID Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | No | The ID of the referenced IndirectObject.

Notes

The ID of the referenced IndirectObject.


RefAtom Gen Property. The generation of the referenced IndirectObject. ABCpdf .NET PDF Library.

Gen Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | No | The generation of the referenced IndirectObject.

Notes

The generation of the referenced IndirectObject.


StringAtom Class

An Atom representing a text value.

System.Object
   WebSupergoo.ABCpdf12.Atoms.Atom
      WebSupergoo.ABCpdf12.Atoms.StringAtom

Method | Description
S» Encode | Encode a string into a format for use in a content stream using a normal or simple font.
S» EncodeDoubleByte | Encode a string into a format for use in a content stream using a composite font with a double byte CMap.
S» DateToString | Convert a DateTime into a standard PDF date string.
S» StringToDate | Convert a standard PDF date string into a DateTime.
StringAtom | Construct a StringAtom.
Decode | Decode a PDF encoded string into a plain string format.
DecodeDoubleByte | Decode a double byte PDF encoded string into a plain string format.
Equals | Test whether the two StringAtoms are the same.
ToString | The string representation of the StringAtom as it would appear in a PDF.
 | inherited methods...

Property | Description
Text | The text of the string.
Data | The raw un-encoded bytes of the string.
 | inherited properties...


StringAtom Encode Function. Encode a string into a format for use in a content stream using a normal or simple font. ABCpdf .NET PDF Library.

Encode Function

Encode a string into a format for use in a content stream using a normal or simple font.

Syntax

[C#]
static StringBuilder Encode(string text, IDictionary<char, char> encoding, StringBuilder builder)

[Visual Basic]
Shared Function Encode(text As String, encoding As IDictionary<char, char>, builder As StringBuilder) As StringBuilder

Params
Name | Description
text | The text to be encoded.
encoding | The encoding to use - typically obtained from the FontObject.GetEncoding method.
builder | The StringBuilder to which the encoded representation should be appended.
return | The updated StringBuilder.

Notes

Encode a string into a format for use in a content stream using a normal or simple font.

Typically you will obtain an appropriate encoding from the FontObject.GetEncoding method. This method supports eight bit characters only as this is what is supported by simple fonts. Most commonly you will want to use the Latin horizontal encoding.

You should not use a null or identity encoding as there are subtle differences between the Latin1 encoding used in PDF and the first 256 characters of Unicode. As such if you use a null or identity encoding then characters such as the Euro sign will appear incorrectly.


StringAtom EncodeDoubleByte Function. Encode a string into a format for use in a content stream using a composite font with a double byte CMap. ABCpdf .NET PDF Library.

EncodeDoubleByte Function

Encode a string into a format for use in a content stream using a composite font with a double byte CMap.

Syntax

[C#]
static StringBuilder EncodeDoubleByte(string text, IDictionary<char, char> encoding, StringBuilder builder)

[Visual Basic]
Shared Function EncodeDoubleByte(text As String, encoding As IDictionary<char, char>, builder As StringBuilder) As StringBuilder

Params
Name | Description
text | The text to be encoded.
encoding | The encoding to use - typically obtained from the FontObject.GetEncoding method.
builder | The StringBuilder to which the encoded representation should be appended.
return | The updated StringBuilder.

Notes

Encode a string into a format for use in a content stream using a composite font with a double byte CMap.

Typically you will obtain an appropriate encoding from the FontObject.GetEncoding method. This method supports eight bit characters only as this is what is supported by simple fonts. Most commonly you will want to use a Korean, Japanese, ChineseS or ChineseT encoding in either horizontal or vertical format.

This method should only be used with composite fonts that specify this type of encoding as only these fonts will understand the fact that the characters are multi-byte. If you attempt to use this method with a simple font then you will get extra characters inserted since each double byte entry will be interpreted as two single characters.

See the Fonts and Languages section for details on language types.


StringAtom DateToString Function. Convert a DateTime into a standard PDF date string. ABCpdf .NET PDF Library.

DateToString Function

Convert a DateTime into a standard PDF date string.

Syntax

[C#]
static string DateToString(DateTime dateTime)

[Visual Basic]
Shared Function DateToString(dateTime As DateTime) As String

Params
Name | Description
dateTime | The DateTime to be converted.
return | The standard PDF date string.

Notes

Convert a DateTime into a standard PDF date string.

The PDF date string covers date, time and time zone. The format is broadly similar to ASN.1 as detailed in ISO/IEC 8824.

For example, February 3, 2017, at 9:14 PM Pacific Standard Time would be represented as "D:201702032114-08'00".


StringAtom StringToDate Function. Convert a standard PDF date string into a DateTime. ABCpdf .NET PDF Library.

StringToDate Function

Convert a standard PDF date string into a DateTime.

Syntax

[C#]
static string StringToDate(DateTime dateTime)

[Visual Basic]
Shared Function StringToDate(dateTime As DateTime) As String

Params
Name | Description
dateTime | The standard PDF date string.
return | The DateTime to be converted.

Notes

Convert a standard PDF date string into a DateTime.

The PDF date string covers date, time and time zone. The format is broadly similar to ASN.1 as detailed in ISO/IEC 8824.

For example, February 3, 2017, at 9:14 PM Pacific Standard Time would be represented as "D:201702032114-08'00".


StringAtom StringAtom Function. Construct a StringAtom. ABCpdf .NET PDF Library.

StringAtom Constructor

Construct a StringAtom.

Syntax

[C#]
StringAtom()
StringAtom(string value)

[Visual Basic]
Sub New()
Sub New(value As String)

Params
Name | Description
value | The initial value that the Atom should adopt.

Notes

Create a StringAtom.

If a value is not specified the default - an empty string - will be used.


StringAtom Decode Function. Decode a PDF encoded string into a plain string format. ABCpdf .NET PDF Library.

Decode Function

Decode a PDF encoded string into a plain string format

Syntax

[C#]
StringBuilder Decode(string text, StringBuilder builder)

[Visual Basic]
Function Decode(text As String, builder As StringBuilder) As StringBuilder

Params
Name | Description
text | The text to be decoded.
builder | The StringBuilder to which the encoded representation should be appended. If null then one will be created.
return | The StringBuilder supplied or created.

Notes

Decode a PDF encoded string into a plain string format.

This type of operation can be useful if you are extracting text from a PDF content stream containing raw PDF string operators.

Typically you would use the StringAtom Decode or DecodeDoubleByte methods to allow text operator parameters to be decoded into the base text encoding. These can then be passed through the FontObject EncodingToChar and EncodingToString properties to allow mapping from the text encoding through to Unicode values.


StringAtom DecodeDoubleByte Function. Decode a double byte PDF encoded string into a plain string format. ABCpdf .NET PDF Library.

DecodeDoubleByte Function

Decode a double byte PDF encoded string into a plain string format

Syntax

[C#]
StringBuilder DecodeDoubleByte(string text, StringBuilder builder)

[Visual Basic]
Function DecodeDoubleByte(text As String, builder As StringBuilder) As StringBuilder

Params
Name | Description
text | The text to be decoded.
builder | The StringBuilder to which the encoded representation should be appended. If null then one will be created.
return | The StringBuilder supplied or created.

Notes

Decode a double byte PDF encoded string into a plain string format.

This may be necessary if you are looking at a content stream using a Composite font with a double byte CMap.

This type of operation can be useful if you are extracting text from a PDF content stream containing raw PDF string operators.

Typically you would use the StringAtom Decode or DecodeDoubleByte methods to allow text operator parameters to be decoded into the base text encoding. These can then be passed through the FontObject EncodingToChar and EncodingToString properties to allow mapping from the text encoding through to Unicode values.


StringAtom Equals Function. Test whether the two StringAtoms are the same. ABCpdf .NET PDF Library.

Equals Function

Test whether the two StringAtoms are the same

Syntax

[C#]
bool Equals(StringAtom other)

[Visual Basic]
Function Equals(other As StringAtom) As Boolean

Params
Name | Description
other | The StringAtom to test against.

Notes

Test whether the two StringAtoms are the same.

Two StringAtoms are judged to be equal if their Text is equal.


Atom ToString Function. The string representation of the StringAtom as it would appear in a PDF. ABCpdf .NET PDF Library.

ToString Function

The string representation of the StringAtom as it would appear in a PDF.

Syntax

[C#]
override string ToString()
string ToString(string format)

[Visual Basic]
Overrides Function ToString() As String
Function ToString(format As String) As String

Params
Name | Description
format | The format which should be used for the conversion.
return | The string representation of the object.

Notes

This function derives the content of the object as it will be inserted into the final PDF document.

There are many ways in which a string may be represented. The format string allows more control over how this is done.

The following options may be used in combination.

  • l - literal format with unusual characters escaped in octal
  • x - hexadecimal format with all characters represented in hex
  • lx - best choice literal or hexadecimal format depending on the content of the string
  • b1 - allow the string to be broken over multiple lines
  • b0 - do not allow the string to be broken over multiple lines
  • r1 - allow random elements when applying a crypt filter
  • r0 - do not allow random elements when applying a crypt filter

If format options are not specified then ABCpdf will select a sensible set depending on context.


StringAtom Data Property. The raw un-encoded bytes of the string. ABCpdf .NET PDF Library.

Data Property

Type Default Read Only Description
[C#]
byte[]

[Visual Basic]
Byte() 		n/a No The raw un-encoded bytes of the string.

Notes

The raw un-encoded bytes of the string.


StringAtom Text Property. The text of the string. ABCpdf .NET PDF Library.

Text Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | n/a | No | The text of the string.

Notes

The text of the string.


Atoms PDFLimits

PDFLimits Class

An atom representing a PDF limits.

This static class is used to access global information about the architectural limits which ABCpdf is designed to work within.

All the methods and properties on this class are static, so you will never need to instantiate a new object of this class

System.Object
   WebSupergoo.ABCpdf12.Atoms.PDFLimits

Method
 Description

Property | Description
FloatDigits | The number of digits that can be written in the fractional part of a floating point number.
Epsilon | The smallest value that can be written out to a PDF document.


Atoms PDFLimits FloatDigits Property. The number of digits that can be written in the fractional part of a floating point number. ABCpdf .NET PDF Library.

FloatDigits Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Int32 | 5 | No | The number of digits that can be written in the fractional part of a floating point number.

Notes

The number of digits that can be written in the fractional part of a floating point number.

For example if the value was five then the smallest number which could be represented would be 0.00001.

The PDF 1.4 specification limited this value to five digits. You might ask how relevant the PDF 1.4 spec is now - after all it came out in 2003 and then was superseded in 2004.

However the PDF/A spec is designed against the PDF 1.4 spec so is is not just that the document might display badly in a version of Acrobat from fifteen years ago.

This value defaults to five and may be set to any value between five and thirty-eight.


Atoms PDFLimits Epsilon Property. The smallest value that can be written out to a PDF document. ABCpdf .NET PDF Library.

Epsilon Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 0.00001 | Yes | The smallest value that can be written out to a PDF document.

Notes

The smallest value that can be written out to a PDF document.

This value is based around the number of digits that can be written in the fractional part of a floating point number.


JSCallInfo Class

JSCallInfo encapsulates the information of a JavaScript function call.

System.Object
   WebSupergoo.ABCpdf12.JavaScript.JSCallInfo

Method | Description
Throws Exceptions JSCallInfo | JSCallInfo constructor.

Property | Description
Context | Gets the JavaScript context.
Callee | Gets the callee.
IsConstructCall | Indicates whether the call is a 'new' call.
ArgCount | Gets the number of arguments.
Args | Gets the arguments to the function.
This | Gets or sets the 'this' argument of the call.
NewTarget | Gets or sets the constructor function of the 'new' call.


JSCallInfo Constructor. Creates a new JavaScript call information object. ABCpdf .NET PDF Library.

JSCallInfo Constructor

Creates a new JavaScript call information object.

Syntax

[C#]
JSCallInfo(JSContext context, JSValue callee, bool isConstructCall, IList<JSValue> args)
[Visual Basic]
Sub New(context As JSContext, callee As JSValue, isConstructCall As Boolean, args As IList(Of JSValue))

Throws Exceptions may throw Exception()

Params
Name | Description
context | The JavaScript context. This must be non-null/non-Nothing.
callee | The callee.
isConstructCall | Indicates whether the call is a 'new' call.
args | The arguments to the call.

Notes

The constructor creates a new JavaScript call information object.


JSCallInfo Context Property. Gets the JavaScript context. ABCpdf .NET PDF Library.

Context Property

Type | Default Value | Read Only | Description
[C#] JSContext [Visual Basic] JSContext | n/a | Yes | Gets the JavaScript context.

Notes

The property holds the JavaScript context of the function call.


JSCallInfo Callee Property. Gets the callee. ABCpdf .NET PDF Library.

Callee Property

Type | Default Value | Read Only | Description
[C#] JSValue [Visual Basic] JSValue | n/a | Yes | Gets the callee.

Notes

The property holds the callee of the function call.


JSCallInfo IsConstructCall Property. Indicates whether the call is a 'new' call. ABCpdf .NET PDF Library.

IsConstructCall Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | n/a | Yes | Indicates whether the call is a 'new' call.

Notes

The property indicates whether the function call is a 'new' call.


JSCallInfo ArgCount Property. Gets the number of arguments. ABCpdf .NET PDF Library.

ArgCount Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | Gets the number of arguments.

Notes

The property holds the number of arguments.


JSCallInfo Args Property. Gets the arguments to the function. ABCpdf .NET PDF Library.

Args Property

Type | Default Value | Read Only | Description
[C#] IList<JSValue> [Visual Basic] IList(Of JSValue) | n/a | Yes | Gets the arguments to the function.

Notes

The property holds the arguments to the function.


JSCallInfo This Property. Gets or sets the 'this' argument of the call. ABCpdf .NET PDF Library.

This Property

Type | Default Value | Read Only | Description
[C#] JSValue [Visual Basic] JSValue | null | No | Gets or sets the 'this' argument of the call.

Notes

The property holds the 'this' argument of the function call.


JSCallInfo NewTarget Property. Gets or sets the constructor function of the 'new' call. ABCpdf .NET PDF Library.

NewTarget Property

Type | Default Value | Read Only | Description
[C#] JSValue [Visual Basic] JSValue | null | No | Gets or sets the constructor function of the 'new' call.

Notes

The property holds the constructor function of the 'new' call.


JSConstant Class

JSConstant provides constants for specifying JavaScript values. When these constants are provided to the JavaScript engine, the corresponding values are created inside the JavaScript engine.

System.Object
   WebSupergoo.ABCpdf12.JavaScript.JSConstant

Method | Description
none |

Property | Description
S» Undefined | JavaScript undefined value.
S» Null | JavaScript null value.


JSConstant Undefined Property. JavaScript undefined value. ABCpdf .NET PDF Library.

Undefined Property

Type | Default Value | Read Only | Description
[C#] JSConstant (static) [Visual Basic] JSConstant (Shared) | n/a | Yes | JavaScript undefined value.

Notes

This specifies the JavaScript undefined value.


JSConstant Null Property. JavaScript null value. ABCpdf .NET PDF Library.

Null Property

Type | Default Value | Read Only | Description
[C#] JSConstant (static) [Visual Basic] JSConstant (Shared) | n/a | Yes | JavaScript null value.

Notes

This specifies the JavaScript null value.


JSContext Class

JSContext encapsulates the JavaScript environment.

System.Object
   WebSupergoo.ABCpdf12.JavaScript.JSContext

Method | Description
Throws Exceptions ConvertToJS | Gets a JavaScript value for the parameter value.
Throws Exceptions CreateObject | Creates a JavaScript object.
Throws Exceptions DisposeOfCallback | Disposes of a delegate used to create a JavaScript function.
Throws Exceptions GetFieldPrototype | Gets the Field prototype object.

Property | Description
Doc | Gets the PDF document on which JavaScript code runs.
Options | Gets the options for running JavaScript code.
JSUndefined | Gets the JavaScript undefined value.
JSNull | Gets the JavaScript null value.
JSTrue | Gets the JavaScript true value.
JSFalse | Gets the JavaScript false value.
GlobalObject | Gets the JavaScript global object.


JSContext ConvertToJS Method. Gets a JavaScript value for the parameter value. ABCpdf .NET PDF Library.

ConvertToJS Method

Gets a JavaScript value for the parameter value.

Syntax

[C#]
JSValue ConvertToJS(bool v)
JSValue ConvertToJS(double v)
JSValue ConvertToJS(int v)
JSValue ConvertToJS(long v)
JSValue ConvertToJS(string v)
JSValue ConvertToJS(Func<JSCallInfo, object> v)
JSValue ConvertToJS(object v)
[Visual Basic]
Function ConvertToJS(v As Boolean) As JSValue
Function ConvertToJS(v As Double) As JSValue
Function ConvertToJS(v As Integer) As JSValue
Function ConvertToJS(v As Long) As JSValue
Function ConvertToJS(v As String) As JSValue
Function ConvertToJS(v As Func(Of JSCallInfo, Object)) As JSValue
Function ConvertToJS(v As Object) As JSValue

Throws Exceptions may throw Exception()

Params
Name | Description
v | The value for conversion.
return | The converted JavaScript value.

Notes

The method creates a value in the JavaScript engine. The parameter can be any of the following independent values:

  • JSConstant.Undefined – the undefined value.
  • JSConstant.Null – the null value.
  • A JSValue – itself; no conversion.
  • A Boolean – a primitive Boolean.
  • A Char – a primitive string consisting of one character.
  • A SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, Single, Double or Decimal – a primitive number.
  • A String – a primitive string.
  • A Func<JSCallInfo, object> – a function.
  • IEnumerable<KeyValuePair<string, object>> – an object created using Object.defineProperty. (Please see JSValue.DefineProperty.) In addition to the independent values listed here, KeyValuePair<string, object>.Value may be JSDataDescriptor or JSAccessorDescriptor.
  • IEnumerable<T> – an array with the values after this conversion as the element values. If the parameter is an ICollection<T> or IReadOnlyCollection<T>, the array is create with the given length.

    • T can be any of the following types:

    • SByte – the array is a signed-8bit typed array.
    • Byte – the array is a unsigned-8bit typed array.
    • Int16 – the array is a signed-16bit typed array.
    • UInt16 – the array is a unsigned-16bit typed array.
    • Int32 – the array is a signed-32bit typed array.
    • UInt32 – the array is a unsigned-32bit typed array.
    • Int64 – the array is a signed-64bit typed array.
    • UInt64 – the array is a unsigned-64bit typed array.
    • Single, Double, or Decimal – the array is a 64bit-floating-point typed array.
    • Object (other than the above types) – items are values after this conversion.

Reference semantics of objects is supported. When the same object (which is an independent value) is in different parts of this parameter, the same JavaScript value is used. In particular, you can create objects and properties/element values that form circular references.


JSContext CreateObject Method. Creates a JavaScript object. ABCpdf .NET PDF Library.

CreateObject Method

Creates a JavaScript object.

Syntax

[C#]
JSValue CreateObject()
[Visual Basic]
Function CreateObject() As JSValue

Throws Exceptions may throw Exception()

Params
Name | Description
return | A new JavaScript object.

Notes

The method creates a JavaScript object. It is much better than calling ConvertToJS with an empty array of KeyValuePair<string, object>.


JSContext DisposeOfCallback Method. Disposes of a delegate used to create a JavaScript function. ABCpdf .NET PDF Library.

DisposeOfCallback Method

Disposes of a delegate used to create a JavaScript function.

Syntax

[C#]
void DisposeOfCallback(Func<JSCallInfo, object> func)
[Visual Basic]
Sub DisposeOfCallback(func As Func(Of JSCallInfo, Object))

Params
Name | Description
func | A delegate used to create a JavaScript function.

Notes

Delegates need to be kept alive while the native code may call them. Additionally, a managed API is provided to access the parameters from the native code, so the native code does not call the delegates directly. Therefore, all delegates for which a JavaScript function is created are maintained by the JavaScript context. If your code creates JavaScript functions (including property accessors) for tens of thousands (or more) of distinct delegates (in the sense of reference equality), you may need to dispose of delegates that are no longer callable from JavaScript code.

Your code does not need to call this method if it creates only a small number of JavaScript functions using managed delegates. Delegates that are disposed of in this way can later be used to create new JavaScript functions.

Do not dispose of delegates that are still callable from JavaScript code.


JSContext GetFieldPrototype Method. Gets the Field prototype object. ABCpdf .NET PDF Library.

GetFieldPrototype Method

Gets the Field prototype object.

Syntax

[C#]
JSValue GetFieldPrototype()
[Visual Basic]
Function GetFieldPrototype() As JSValue

Throws Exceptions may throw Exception()

Params
Name | Description
return | The Field prototype object.

Notes

The method returns the Field prototype object, which you can use to define any missing property or method.

Example

See the JSOptions.SetUp event.


JSContext Doc Property. Gets the PDF document on which JavaScript code runs. ABCpdf .NET PDF Library.

Doc Property

Type | Default Value | Read Only | Description
[C#] Doc [Visual Basic] Doc | n/a | Yes | Gets the PDF document on which JavaScript code runs.

Notes

The property holds the PDF document that JavaScript code runs on.


JSContext Options Property. Gets the options for running JavaScript code. ABCpdf .NET PDF Library.

Options Property

Type | Default Value | Read Only | Description
[C#] JSOptions [Visual Basic] JSOptions | n/a | Yes | Gets the options for running JavaScript code.

Notes

The property holds the specified options object.


JSContext JSUndefined Property. Gets the JavaScript undefined value. ABCpdf .NET PDF Library.

JSUndefined Property

Type | Default Value | Read Only | Description
[C#] JSValue [Visual Basic] JSValue | n/a | Yes | Gets the JavaScript undefined value.

Notes

The property holds the JavaScript undefined value.


JSContext JSNull Property. Gets the JavaScript null value. ABCpdf .NET PDF Library.

JSNull Property

Type | Default Value | Read Only | Description
[C#] JSValue [Visual Basic] JSValue | n/a | Yes | Gets the JavaScript null value.

Notes

The property holds the JavaScript null value.


JSContext JSTrue Property. Gets the JavaScript true value. ABCpdf .NET PDF Library.

JSTrue Property

Type | Default Value | Read Only | Description
[C#] JSValue [Visual Basic] JSValue | n/a | Yes | Gets the JavaScript true value.

Notes

The property holds the JavaScript true value.


JSContext JSFalse Property. Gets the JavaScript false value. ABCpdf .NET PDF Library.

JSFalse Property

Type | Default Value | Read Only | Description
[C#] JSValue [Visual Basic] JSValue | n/a | Yes | Gets the JavaScript false value.

Notes

The property holds the JavaScript false value.


JSContext GlobalObject Property. Gets the JavaScript global object. ABCpdf .NET PDF Library.

GlobalObject Property

Type | Default Value | Read Only | Description
[C#] JSValue [Visual Basic] JSValue | n/a | Yes | Gets the JavaScript global object.

Notes

The property holds the JavaScript global object.


JSOptions Class

JSOptions specifies options for running JavaScript code.

System.Object
   WebSupergoo.ABCpdf12.JavaScript.JSOptions

Method | Description
none |

Property | Description
LoadGlobals | Gets or sets whether to create certain predefined global variables and execute some JavaScript code defined in the document.

Event | Description
SetUp | Occurs after the JavaScript engine is initialized and before the specified JavaScript code is executed.


JSOptions LoadGlobals Property. Gets or sets whether to create certain predefined global variables and execute some JavaScript code defined in the document. ABCpdf .NET PDF Library.

LoadGlobals Property

Type | Default Value | Read Only | Description
[C#] JSValue.Type [Visual Basic] JSValue.Type | True | No | Whether to create certain predefined global variables and execute some JavaScript code defined in the document.

Notes

There are seldom used global variables provided by the PDF JavaScript environment, and PDF documents may contain JavaScript code for initialization. This property specifies whether to create those global variables and to run the document-specific initialization code.


JSOptions SetUp Event. Occurs after the JavaScript engine is initialized and before the specified JavaScript code is executed. ABCpdf .NET PDF Library.

SetUp Event

Occurs after the JavaScript engine is initialized and before the specified JavaScript code is executed.

Syntax

[C#]
event Func<JSCallInfo, object> SetUp;
[Visual Basic]
Event SetUp As Func(Of JSCallInfo, Object)

Params
Name | Description
arg | A JSCallInfo providing only the context in JSCallInfo.Context.
return | The return value is ignored.

Notes

This event allows the set-up of the JavaScript environment. No JavaScript function is created for the delegate of the event.

Example

Here, we implement the Field.display property.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/sample.pdf"));
  JSOptions options = new JSOptions();
  options.SetUp += delegate (JSCallInfo arg) {
    JSValue prototype = arg.Context.GetFieldPrototype();
    if(!prototype.HasProperty("display")) {
      JSAccessorDescriptor desc = new JSAccessorDescriptor();
      desc.Configurable = false;
      desc.Enumerable = true;
      desc.Get = delegate (JSCallInfo info) {
        JSContext context = info.Context;
        int id = info.This.GetDocObjectID();
        if(id==0)
          return null;
        Annotation annot = (Annotation)context.Doc.ObjectSoup[id];
        Annotation.AnnotationFlags flags = annot.Flags;
        if((flags & Annotation.AnnotationFlags.Hidden)!=0)
          return 1;  // display.hidden
        int v = 0;  // display.visible
        if((flags & Annotation.AnnotationFlags.Print)==0)
          v |= 2; // display.noPrint
        if((flags & Annotation.AnnotationFlags.NoView)!=0)
          v = v ^ 2 | 1;  // display.hidden, display.noView
        return v;
      };
      desc.Set = delegate (JSCallInfo info) {
        if(info.ArgCount<2)
          return null;
        JSContext context = info.Context;
        int id = info.This.GetDocObjectID();
        if(id==0)
          return null;
        Annotation annot = (Annotation)context.Doc.ObjectSoup[id];
        Annotation.AnnotationFlags flags = annot.Flags;
        int v = info.Args[1].GetValueInt();
        switch(v) {
        case 0:  // display.visible
          flags = flags & ~Annotation.AnnotationFlags.Hidden
            & ~Annotation.AnnotationFlags.NoView
            | Annotation.AnnotationFlags.Print;
          break;
        case 1:  // display.hidden
          flags = flags & ~Annotation.AnnotationFlags.NoView
            | Annotation.AnnotationFlags.Print
            | Annotation.AnnotationFlags.Hidden;
          break;
        case 2:  // display.noPrint
          flags = flags & ~Annotation.AnnotationFlags.Hidden
            & ~Annotation.AnnotationFlags.NoView
            & ~Annotation.AnnotationFlags.Print;
          break;
        case 3:  // display.noView
          flags = flags & ~Annotation.AnnotationFlags.Hidden
            | Annotation.AnnotationFlags.Print
            | Annotation.AnnotationFlags.NoView;
          break;
        default: return null;
        }
        annot.Flags = flags;
        return null;
      };
      prototype.DefineProperty("display", desc);
    }
    return null;
  };
  options.LoadGlobals = true;
  doc.Form.RunJS("var f = this.getField(\"Text1\"); f.display = display.hidden;", options);
  doc.Save(Server.MapPath("hiddenfield.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/sample.pdf"))
  Dim field As Field = doc.Form("CheckBox1")
  Dim options As New JSOptions()
  AddHandler options.SetUp, Function(arg As JSCallInfo)
    Dim prototype As JSValue = arg.Context.GetFieldPrototype()
    If Not prototype.HasProperty("display") Then
      Dim desc As New JSAccessorDescriptor()
      desc.Configurable = False
      desc.Enumerable = True
      desc.Get = Function(info As JSCallInfo)
        Dim context As JSContext = info.Context
        Dim id As Integer = info.This.GetDocObjectID()
        If id = 0 Then
          Return Nothing
        End If
        Dim annot As Annotation = CType(context.Doc.ObjectSoup(id), Annotation)
        Dim flags As Annotation.AnnotationFlags = annot.Flags
        If (flags And Annotation.AnnotationFlags.Hidden) <> 0 Then
          Return 1 ' display.hidden
        End If
        Dim v As Integer = 0 ' display.visible
        If (flags And Annotation.AnnotationFlags.Print) = 0 Then
          v = v Or 2 ' display.noPrint
        End If
        If (flags And Annotation.AnnotationFlags.NoView) <> 0 Then
          v = v Xor 2 Or 1 ' display.hidden, display.noView
        End If
        Return v
      End Function
      desc.Set = Function(info As JSCallInfo)
        If info.ArgCount < 2 Then
          Return Nothing
        End If
        Dim context As JSContext = info.Context
        Dim id As Integer = info.This.GetDocObjectID()
        If id = 0 Then
          Return Nothing
        End If
        Dim annot As Annotation = CType(context.Doc.ObjectSoup(id), Annotation)
        Dim flags As Annotation.AnnotationFlags = annot.Flags
        Dim v As Integer = info.Args(1).GetValueInt()
        Select Case v
        Case 0 ' display.visible
          flags = flags And Not Annotation.AnnotationFlags.Hidden _
            And Not Annotation.AnnotationFlags.NoView _
            Or Annotation.AnnotationFlags.Print
        Case 1 ' display.hidden
          flags = flags And Not Annotation.AnnotationFlags.NoView _
            Or Annotation.AnnotationFlags.Print _
            Or Annotation.AnnotationFlags.Hidden
        Case 2 ' display.noPrint
          flags = flags And Not Annotation.AnnotationFlags.Hidden _
            And Not Annotation.AnnotationFlags.NoView _
            And Not Annotation.AnnotationFlags.Print
        Case 3 ' display.noView
          flags = flags And Not Annotation.AnnotationFlags.Hidden _
            Or Annotation.AnnotationFlags.Print _
            Or Annotation.AnnotationFlags.NoView
        Case Else
          Return Nothing
        End Select
        annot.Flags = flags
        Return Nothing
      End Function
      prototype.DefineProperty("display", desc)
    End If
    Return Nothing
  End Function
  options.LoadGlobals = True
  doc.Form.RunJS("var f = this.getField(""Text1""); f.display = display.hidden;", options)
  doc.Save(Server.MapPath("hiddenfield.pdf"))
End Using


JSValue Class

JSValue represents a value or an object reference inside the JavaScript engine.

System.Object
   WebSupergoo.ABCpdf12.JavaScript.JSValue

Method | Description
Throws Exceptions DefineProperties | Defines a list of this object's own properties.
Throws Exceptions DefineProperty | Defines this object's own property.
Throws Exceptions GetProperty | Gets this object's property.
Throws Exceptions SetProperty | Sets this object's property.
Throws Exceptions HasProperty | Determines whether this object has a property.
Throws Exceptions DeleteProperty | Deletes this object's property.
Throws Exceptions Equals | Determines whether the specified object is strictly equal to this object.
Throws Exceptions GetHashCode | Gets the Boolean value of this Boolean value.
GetDocObjectID | Gets the Boolean value of this Boolean value.
Throws Exceptions Call | Calls this function.
Throws Exceptions GetBooleanBool | Gets the Boolean value of this Boolean value.
Throws Exceptions GetNumberDouble | Gets the Double value of this number. It fails if this value is not a number.
Throws Exceptions GetNumberInt | Gets the Int32 value of this number. It fails if this value is not a number.
Throws Exceptions GetString | Gets the String value of this string. It fails if this value is not a string.
Throws Exceptions GetStringLength | Gets the length of this string.
Throws Exceptions GetValueBool | Gets the Boolean value of this value converted to Boolean value using the standard JavaScript conversion.
Throws Exceptions GetValueDouble | Gets the Double value of this value converted to number using the standard JavaScript conversion.
Throws Exceptions GetValueInt | Gets the Int32 value of this value converted to number using the standard JavaScript conversion.
Throws Exceptions GetValueString | Gets the String value of this value converted to string using the standard JavaScript conversion.
Throws Exceptions ToJSBoolean | Gets a Boolean value from this value using the standard JavaScript conversion.
Throws Exceptions ToJSNumber | Gets a number from this value using the standard JavaScript conversion.
Throws Exceptions ToJSObject | Gets an object from this value using the standard JavaScript conversion.
Throws Exceptions ToJSString | Gets a string from this value using the standard JavaScript conversion.

Property | Description
ValueType | The type of the value.


JSValue DefineProperties Method. Defines a list of this object's own properties. ABCpdf .NET PDF Library.

DefineProperties Method

Defines a list of this object's own properties.

Syntax

[C#]
void DefineProperties(IEnumerable<KeyValuePair<string, object>> props)
[Visual Basic]
Sub DefineProperties(props As IEnumerable(Of KeyValuePair(Of String, Object)))

Throws Exceptions may throw Exception()

Params
Name | Description
props | A list of name-value pairs of new properties. Each value is a new value of the property, a JSDataDescriptor, or a JSAccessorDescriptor.

Notes

The method defines the properties with the names specified by KeyValuePair.Key.

Please see DefineProperty for the allowed values.

Reference semantics of objects is supported. When the same object (which is an independent value) is in different parts of this parameter, the same JavaScript value is used. In particular, you can create objects and properties/element values that form circular references.


JSValue DefineProperty Method. Defines this object's own property. ABCpdf .NET PDF Library.

DefineProperty Method

Defines this object's own property.

Syntax

[C#]
void DefineProperty(string name, object value)
[Visual Basic]
Sub DefineProperty(name As String, value As Object)

Throws Exceptions may throw Exception()

Params
Name | Description
name | The name of the property.
value | A new value of the property, a JSDataDescriptor, or a JSAccessorDescriptor.

Notes

The method defines the property with the specified name.

In addition to the independent values (supported by JSContext.ConvertToJS), the value parameter can be a property descriptor. JSDataDescriptor and JSAccessorDescriptor are classes for specifying data descriptor and accessor descriptor, respectively. If in JSAccessorDescriptor, both the delegate property (e.g. Get) and the JavaScript-value property (e.g. JSGet) are non-null/non-Nothing, the delegate property takes precedence for that accessor. Please refer to JavaScript documentation on how to use property descriptors on Object.defineProperty for details.


JSValue GetProperty Method. Gets this object's property. ABCpdf .NET PDF Library.

GetProperty Method

Gets this object's property.

Syntax

[C#]
JSValue GetProperty(string name)
[Visual Basic]
Function GetProperty(name As String) As JSValue

Throws Exceptions may throw Exception()

Params
Name | Description
name | The name of the property.
return | The value of the property.

Notes

The method gets the property with the specified name.


JSValue SetProperty Method. Sets this object's property. ABCpdf .NET PDF Library.

SetProperty Method

Sets this object's property.

Syntax

[C#]
void SetProperty(string name, JSValue v)
[Visual Basic]
Sub SetProperty(name As String, v As JSValue)

Throws Exceptions may throw Exception()

Params
Name | Description
name | The name of the property.
v | A new value of the property.

Notes

The method sets the property with the specified name to the new value.


JSValue HasProperty Method. Determines whether this object has a property. ABCpdf .NET PDF Library.

HasProperty Method

Determines whether this object has a property.

Syntax

[C#]
bool HasProperty(string name)
[Visual Basic]
Function HasProperty(name As String) As Boolean

Throws Exceptions may throw Exception()

Params
Name | Description
name | The name of the property.
return | Whether this object has the property.

Notes

The method returns a value indicating whether this object has the property with the specified name.


JSValue DeleteProperty Method. Deletes this object's property. ABCpdf .NET PDF Library.

DeleteProperty Method

Deletes this object's property.

Syntax

[C#]
JSValue DeleteProperty(string name)
[Visual Basic]
Function DeleteProperty(name As String) As JSValue

Throws Exceptions may throw Exception()

Params
Name | Description
name | The name of the property.
return | Whether the property has been deleted.

Notes

The method deletes this object's property with the specified name.


JSValue Equals Method. Determines whether the specified object is strictly equal to this object. ABCpdf .NET PDF Library.

Equals Method

Determines whether the specified object is strictly equal to this object.

Syntax

[C#]
override bool Equals(object obj)
[Visual Basic]
Overrides Function Equals(obj As Object) As Boolean

Throws Exceptions may throw Exception()

Params
Name | Description
obj | The object to compare with this object.
return | Whether the objects are strictly equal.

Notes

The method returns a value indicating wether the objects are strictly equal in the sense of the JavaScript operator ===.


JSValue GetHashCode Method. Gets a hash code of this JavaScript value. ABCpdf .NET PDF Library.

GetHashCode Method

Gets a hash code of this JavaScript value.

Syntax

[C#]
override int GetHashCode()
[Visual Basic]
Overrides Function GetHashCode() As Integer

Throws Exceptions may throw Exception()

Params
Name | Description
return | A hash code for this object.

Notes

The method returns a hash code for this JavaScript value. If this is a JavaScript structural object (non-primitive), the hash code represents the object reference and not the object value.


JSValue GetDocObjectID Method. Gets the object ID of the IndirectObject in the PDF document. ABCpdf .NET PDF Library.

GetDocObjectID Method

Gets the object ID of the IndirectObject in the PDF document.

Syntax

[C#]
int GetDocObjectID()
[Visual Basic]
Function GetDocObjectID() As Integer

Params
Name | Description
return | The object ID (or zero if it has no associated object).

Notes

The method returns the object ID of the IndirectObject for this JavaScript value. For example, if this value is a Field, the method returns the object ID of the corresponding Annotation.

Example

See the JSOptions.SetUp event.


JSValue Call Method. Calls this function. ABCpdf .NET PDF Library.

Call Method

Calls this function.

Syntax

[C#]
JSValue Call(IList<JSValue> args)
[Visual Basic]
Function Call(args As IList(Of JSValue)) As JSValue

Throws Exceptions may throw Exception()

Params
Name | Description
args | A list of arguments. The first item is the 'this' argument.
return | The return value of the function call.

Notes

The method calls this value as a function.


JSValue GetBooleanBool Method. Gets the Boolean value of this Boolean value. ABCpdf .NET PDF Library.

GetBooleanBool Method

Gets the Boolean value of this Boolean value.

Syntax

[C#]
bool GetBooleanBool()
[Visual Basic]
Function GetBooleanBool() As Boolean

Throws Exceptions may throw Exception()

Params
Name | Description
return | The Boolean value.

Notes

The method returns the Boolean value of this Boolean value. It fails if this value is not a Boolean value.


JSValue GetNumberDouble Method. Gets the Double value of this number. ABCpdf .NET PDF Library.

GetNumberDouble Method

Gets the Double value of this number.

Syntax

[C#]
double GetNumberDouble()
[Visual Basic]
Function GetNumberDouble() As Double

Throws Exceptions may throw Exception()

Params
Name | Description
return | The Double value.

Notes

The method returns the Double value of this number. It fails if this value is not a number.


JSValue GetNumberInt Method. Gets the Int32 value of this number. ABCpdf .NET PDF Library.

GetNumberInt Method

Gets the Int32 value of this number.

Syntax

[C#]
int GetNumberInt()
[Visual Basic]
Function GetNumberInt() As Integer

Throws Exceptions may throw Exception()

Params
Name | Description
return | The Int32 value.

Notes

The method returns the Int32 value of this number. It fails if this value is not a number.


JSValue GetString Method. Gets the String value of this string. ABCpdf .NET PDF Library.

GetString Method

Gets the String value of this string.

Syntax

[C#]
string GetString()
[Visual Basic]
Function GetString() As String

Throws Exceptions may throw Exception()

Params
Name | Description
return | The String value.

Notes

The method returns the String value of this string. It fails if this value is not a string.


JSValue GetStringLength Method. Gets the length of this string. ABCpdf .NET PDF Library.

GetStringLength Method

Gets the length of this string.

Syntax

[C#]
int GetStringLength()
[Visual Basic]
Function GetStringLength() As Integer

Throws Exceptions may throw Exception()

Params
Name | Description
return | The length.

Notes

The method returns the length of this string.


JSValue GetValueBool Method. Gets the Boolean value of this value converted to Boolean value using the standard JavaScript conversion. ABCpdf .NET PDF Library.

GetValueBool Method

Gets the Boolean value of this value converted to Boolean value using the standard JavaScript conversion.

Syntax

[C#]
bool GetValueBool()
[Visual Basic]
Function GetValueBool() As Boolean

Throws Exceptions may throw Exception()

Params
Name | Description
return | The Boolean value of the converted value.

Notes

The method is the chain of ToJSBoolean and GetBooleanBool without intermediate object creation.


JSValue GetValueDouble Method. Gets the Double value of this value converted to number using the standard JavaScript conversion. ABCpdf .NET PDF Library.

GetValueDouble Method

Gets the Double value of this value converted to number using the standard JavaScript conversion.

Syntax

[C#]
double GetValueDouble()
[Visual Basic]
Function GetValueDouble() As Double

Throws Exceptions may throw Exception()

Params
Name | Description
return | The Double value of the converted value.

Notes

The method is the chain of ToJSNumber and GetNumberDouble without intermediate object creation.


JSValue GetValueInt Method. Gets the Int32 value of this value converted to number using the standard JavaScript conversion. ABCpdf .NET PDF Library.

GetValueInt Method

Gets the Int32 value of this value converted to number using the standard JavaScript conversion.

Syntax

[C#]
int GetValueInt()
[Visual Basic]
Function GetValueInt() As Integer

Throws Exceptions may throw Exception()

Params
Name | Description
return | The Int32 value of the converted value.

Notes

The method is the chain of ToJSNumber and GetNumberInt without intermediate object creation.


JSValue GetValueString Method. Gets the String value of this value converted to string using the standard JavaScript conversion. ABCpdf .NET PDF Library.

GetValueString Method

Gets the String value of this value converted to string using the standard JavaScript conversion.

Syntax

[C#]
string GetValueString()
[Visual Basic]
Function GetValueString() As String

Throws Exceptions may throw Exception()

Params
Name | Description
return | The String value of the converted value.

Notes

The method is the chain of ToJSString and GetString without intermediate object creation.


JSValue ToJSBoolean Method. Gets a Boolean value from this value using the standard JavaScript conversion. ABCpdf .NET PDF Library.

ToJSBoolean Method

Gets a Boolean value from this value using the standard JavaScript conversion.

Syntax

[C#]
JSValue ToJSBoolean()
[Visual Basic]
Function ToJSBoolean() As JSValue

Throws Exceptions may throw Exception()

Params
Name | Description
return | The converted Boolean value.

Notes

The method returns a JavaScript Boolean value using the standard JavaScript conversion.


JSValue ToJSNumber Method. Gets a number from this value using the standard JavaScript conversion. ABCpdf .NET PDF Library.

ToJSNumber Method

Gets a number from this value using the standard JavaScript conversion.

Syntax

[C#]
JSValue ToJSNumber()
[Visual Basic]
Function ToJSNumber() As JSValue

Throws Exceptions may throw Exception()

Params
Name | Description
return | The converted number.

Notes

The method returns a JavaScript number using the standard JavaScript conversion.


JSValue ToJSObject Method. Gets an object from this value using the standard JavaScript conversion. ABCpdf .NET PDF Library.

ToJSObject Method

Gets an object from this value using the standard JavaScript conversion.

Syntax

[C#]
JSValue ToJSObject()
[Visual Basic]
Function ToJSObject() As JSValue

Throws Exceptions may throw Exception()

Params
Name | Description
return | The converted object.

Notes

The method returns a JavaScript object using the standard JavaScript conversion.


JSValue ToJSString Method. Gets a string from this value using the standard JavaScript conversion. ABCpdf .NET PDF Library.

ToJSString Method

Gets a string from this value using the standard JavaScript conversion.

Syntax

[C#]
JSValue ToJSString()
[Visual Basic]
Function ToJSString() As JSValue

Throws Exceptions may throw Exception()

Params
Name | Description
return | The converted string.

Notes

The method returns a JavaScript string using the standard JavaScript conversion.


JSConstant ValueType Property. Gets the type of the value. ABCpdf .NET PDF Library.

ValueType Property

Type | Default Value | Read Only | Description
[C#] JSValue.Type [Visual Basic] JSValue.Type | n/a | Yes | The type of the value.

Notes

The JSValue.Type enumeration can take any of the following values:

  • Undefined
  • Null
  • Number
  • String
  • Boolean
  • Object
  • Function
  • Error
  • Array
  • Symbol
  • ArrayBuffer — ArrayBuffer object
  • TypedArray — typed array object
  • DataView — DataView object


Operation Class

An operation to be performed on a document.

System.Object
   WebSupergoo.ABCpdf12.Operations.Operation
      WebSupergoo.ABCpdf12.Operations.AccessibilityOperation
      WebSupergoo.ABCpdf12.Operations.EffectOperation
      WebSupergoo.ABCpdf12.Operations.FlattenTransparencyOperation
      WebSupergoo.ABCpdf12.Operations.ImageOperation
      WebSupergoo.ABCpdf12.Operations.PdfConformityOperation
      WebSupergoo.ABCpdf12.Operations.PdfValidationOperation
      WebSupergoo.ABCpdf12.Operations.RecolorOperation
      WebSupergoo.ABCpdf12.Operations.ReduceSizerOperation
      WebSupergoo.ABCpdf12.Operations.RenderOperation
      WebSupergoo.ABCpdf12.Operations.SwfImportOperation
      WebSupergoo.ABCpdf12.Operations.TextOperation
      WebSupergoo.ABCpdf12.Operations.XpsImportOperation

Implements: IDisposable

Method | Description
none |

Property | Description
none |
Event | Description
ProcessingObject | Occurs before an IndirectObject is operated on.
ProcessedObject | Occurs after an IndirectObject has been operated on.


ProcessingObject Event

Occurs just before an IndirectObject is processed.

Syntax

[C#]
event ProcessingObjectEventHandler ProcessingObject;

delegate void ProcessingObjectEventHandler(object sender, ProcessingObjectEventArgs e);

[Visual Basic]
Event ProcessingObject As ProcessingObjectEventHandler

Delegate Sub ProcessingObjectEventHandler(sender As Object, e As ProcessingObjectEventArgs);

Params
Name | Description
sender | The Operation firing the event.
e | The ProcessingObjectEventArgs used to control the operation.

Notes

Typically you handle the ProcessingObject event in order to determine properties about an IndirectObject before processing.

Because the handler passes an EventArgs class which inherits from CancelEventArgs you can also choose to cancel the operation on the IndirectObject.

To associate the event with your event handle add an instance of the ProcessingObjectEventHandler delegate to the event. The event handler will be called whenever the event occurs.

Example

See the RecolorOperation.Recolor method.


ProcessedObject Event

Occurs just after an IndirectObject has been processed.

Syntax

[C#]
event ProcessedObjectEventHandler ProcessedObject;

delegate void ProcessedObjectEventHandler(object sender, ProcessedObjectEventArgs e);

[Visual Basic]
Event ProcessedObject As ProcessedObjectEventHandler

Delegate Sub ProcessedObjectEventHandler(sender As Object, e As ProcessedObjectEventArgs);

Params
Name | Description
sender | The Operation firing the event.
e | The ProcessedObjectEventArgs used to report back the status of the operation.

Notes

Typically you handle the ProcessedObject event in order to post-process an IndirectObject.

To associate the event with your event handle add an instance of the ProcessedObjectEventHandler delegate to the event. The event handler will be called whenever the event occurs.

Example

See the RecolorOperation.Recolor method.


ProcessedObjectEventArgs Class

Provides data for the ProcessedObject event.

System.Object
   System.EventArgs
      WebSupergoo.ABCpdf12.Operations.ProcessedObjectEventArgs

Method | Description
ProcessedObjectEventArgs | ProcessedObjectEventArgs Constructor.

Property | Description
Object | Gets the IndirectObject which has just been processed.
Successful | Gets a value indicating whether the processing was successful.
Tag | Gets or sets an object which can be used to save data about the event.


ProcessedObjectEventArgs ProcessedObjectEventArgs Function. ProcessedObjectEventArgs Constructor. ABCpdf .NET PDF Library.

ProcessedObjectEventArgs Constructor

ProcessedObjectEventArgs Constructor.

Syntax

[C#]
ProcessedObjectEventArgs(IndirectObject obj, bool successful)

[Visual Basic]
Sub New(obj As IndirectObject, successful As Boolean)

Params
Name | Description
obj | The IndirectObject processed.
successful | A value indicating whether the processing was successful.

Notes

Create a ProcessedObjectEventArgs detailing an IndirectObject and whether it was processed successfully or not.


ProcessedObjectEventArgs Object Property. Gets the IndirectObject which has just been processed. ABCpdf .NET PDF Library.

Object Property

Type | Default | Read Only | Description
[C#] IndirectObject [Visual Basic] IndirectObject | n/a | Yes | Gets the IndirectObject which has just been processed.

Notes

The IndirectObject which has just been processed.

Example

See the RecolorOperation.Recolor method.


ProcessedObjectEventArgs Successful Property. Gets a value indicating whether the processing was successful. ABCpdf .NET PDF Library.

Successful Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | n/a | Yes | Gets a value indicating whether the processing was successful.

Notes

Gets a value indicating whether the processing was successful.

Example

See the RecolorOperation.Recolor method.


ProcessedObjectEventArgs Tag Property. Gets or sets an object which can be used to save data about the event. ABCpdf .NET PDF Library.

Tag Property

Type | Default | Read Only | Description
[C#] object [Visual Basic] Object | n/a | No | Gets or sets an object which can be used to save data about the event.

Notes

Gets or sets an object which can be used to save data about the event.

This can be useful if you need to pass information from a ProcessingObject event to a ProcessedObject event.

Example

See the RecolorOperation.Recolor method.


ProcessingObjectEventArgs Class

Provides data for the ProcessingObject event.

This class inherits from the CancelEventArgs class to allow processing of the operation to be cancelled.

System.Object
   System.EventArgs
      System.ComponentModel.CancelEventArgs
         WebSupergoo.ABCpdf12.Operations.ProcessingObjectEventArgs

Method | Description
ProcessingObjectEventArgs | ProcessingObjectEventArgs Constructor.

Property | Description
Object | Gets the IndirectObject to be processed.
Tag | Gets or sets an object which can be used to save data about the event.
Info | Gets the ProcessingInfo containing related information.


ProcessingObjectEventArgs ProcessingObjectEventArgs Function. ProcessingObjectEventArgs Constructor. ABCpdf .NET PDF Library.

ProcessingObjectEventArgs Constructor

ProcessingObjectEventArgs Constructor.

Syntax

[C#]
ProcessingObjectEventArgs(IndirectObject obj)
ProcessingObjectEventArgs(IndirectObject obj, ProcessingInfo info)

[Visual Basic]
Sub New(obj As IndirectObject)
Sub New(obj As IndirectObject, info As ProcessingInfo)

Params
Name | Description
obj | The IndirectObject which is about to be processed.
info | The ProcessingInfo containing related information.

Notes

Create a ProcessingObjectEventArgs detailing an IndirectObject which is about to be processed.


ProcessingObjectEventArgs Object Property. Gets the IndirectObject to be processed. ABCpdf .NET PDF Library.

Object Property

Type | Default | Read Only | Description
[C#] IndirectObject [Visual Basic] IndirectObject | n/a | Yes | Gets the IndirectObject to be processed.

Notes

The IndirectObject to be processed.

Example

See the RecolorOperation.Recolor method.


ProcessingObjectEventArgs Tag Property. Gets or sets an object which can be used to save data about the event. ABCpdf .NET PDF Library.

Tag Property

Type | Default | Read Only | Description
[C#] object [Visual Basic] Object | n/a | No | Gets or sets an object which can be used to save data about the event.

Notes

Gets or sets an object which can be used to save data about the event.

This can be useful if you need to pass information from a ProcessingObject event to a ProcessedObject event.

Example

See the RecolorOperation.Recolor method.


ProcessingObjectEventArgs Info Property. Gets the ProcessingInfo containing related information. ABCpdf .NET PDF Library.

Info Property

Type | Default | Read Only | Description
[C#] ProcessingInfo [Visual Basic] ProcessingInfo | n/a | Yes | Gets the ProcessingInfo containing related information.

Notes

The ProcessingInfo containing related information.

Example

See the XpsImportOperation.Import and the SwfImportOperation.Import methods.


ProcessingInfo Class

Provides generic information relating to the Operation.ProcessingObject event. The information about the source of the operation is available here when ProcessingObjectEventArgs.Object is null if the source is in a non-PDF format.

System.Object
   WebSupergoo.ABCpdf12.Operations.ProcessingInfo

Method | Description
ProcessingInfo | ProcessingInfo Constructor.

Property | Description
SourceType | Gets the type of the source object to be processed and the stage of operation.
Handled | Gets or sets a value that indicates whether the event handler has handled the event so that the operation skips the default processing.
X | Gets the x-coordinate of the location of the source object.
Y | Gets the y-coordinate of the location of the source object.
Width | Gets the width of the source object.
Height | Gets the height of the source object.
DocNumber | Gets or sets the document number of the source document being/to be processed.
DocCount | Gets the number of documents in the source object.
PageNumber | Gets or sets the page number of the source page being/to be processed.
PageCount | Gets the number of pages in the source object.
FrameNumber | Gets or sets the frame number of the source frame being/to be processed.
FrameCount | Gets the number of frames in the source object.
FrameRate | Gets the number of frames per second for the source object.
BackgroundColor | Gets the background color of the source object.
StreamPosition | Gets or Sets the stream position of the source object, if applicable.
StreamLength | Gets the stream length of the source object, if applicable.
Text | Gets the unicode Text of the Source Event, if applicable.


ProcessingInfo ProcessingInfo Function. ProcessingInfo Constructor. ABCpdf .NET PDF Library.

ProcessingInfo Constructor

ProcessingInfo Constructor.

Syntax

[C#]
ProcessingInfo()

[Visual Basic]
Sub New()

Params
Name | Description
none |

Notes

Create a ProcessingInfo.


ProcessingInfo SourceType Property. Gets the type of the source object to be processed and the stage of operation. ABCpdf .NET PDF Library.

SourceType Property

Type | Default | Read Only | Description
[C#] ProcessingSourceType [Visual Basic] ProcessingSourceType | See description. | Yes | Gets the type of the source object to be processed and the stage of operation.

Notes

The ProcessingSourceType enumeration may take the following values:

  • Unknown
  • Document
  • Page
  • PageContent
  • Image
  • ImageMask
  • MultiFrameImage
  • ImageFrame
  • Stream
  • Path
  • Text
  • FormXObject
  • Shading

The meaning of these source types depends on the operations.


ProcessingInfo Handled Property. Gets or sets a value that indicates whether the event handler has handled the event so that the operation skips the default processing. ABCpdf .NET PDF Library.

Handled Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Gets or sets a value that indicates whether the event handler has handled the event so that the operation skips the default processing.

Notes

This property determines whether the operation skips the default processing.

Example

See the XpsImportOperation.Import method.


ProcessingInfo X Property. Gets the x-coordinate of the location of the source object. ABCpdf .NET PDF Library.

X Property

Type | Default | Read Only | Description
[C#] double? [Visual Basic] Nullable(Of Double) | n/a | Yes | Gets the x-coordinate of the location of the source object.

Notes

This property holds the horizontal offset of the location.

Values are in the coordinate system of the source object.


ProcessingInfo Y Property. Gets the y-coordinate of the location of the source object. ABCpdf .NET PDF Library.

Y Property

Type | Default | Read Only | Description
[C#] double? [Visual Basic] Nullable(Of Double) | n/a | Yes | Gets the y-coordinate of the location of the source object.

Notes

This property holds the vertical offset of the location.

Values are in the coordinate system of the source object.


ProcessingInfo Width Property. Gets the width of the source object. ABCpdf .NET PDF Library.

Width Property

Type | Default | Read Only | Description
[C#] double? [Visual Basic] Nullable(Of Double) | n/a | Yes | Gets the width of the source object.

Notes

This property holds the width of the source object.

Values are in the coordinate system of the source object.


ProcessingInfo Height Property. Gets the height of the source object. ABCpdf .NET PDF Library.

Height Property

Type | Default | Read Only | Description
[C#] double? [Visual Basic] Nullable(Of Double) | n/a | Yes | Gets the height of the source object.

Notes

This property holds the height of the source object.

Values are in the coordinate system of the source object.


ProcessingInfo DocNumber Property. Gets or sets the document number of the source document being/to be processed. ABCpdf .NET PDF Library.

DocNumber Property

Type | Default | Read Only | Description
[C#] int? [Visual Basic] Nullable(Of Integer) | n/a | No | Gets or sets the document number of the source document being/to be processed.

Notes

The value of this property when the Operation.ProcessingObject event is generated depends on the operation.

The event handler should change this value when a processing sequence other than the default is desired. Set this value to null to end the processing of the current set of documents.

Example

See the XpsImportOperation.Import method.


ProcessingInfo DocCount Property. Gets the number of documents in the source object. ABCpdf .NET PDF Library.

DocCount Property

Type | Default | Read Only | Description
[C#] int? [Visual Basic] Nullable(Of Integer) | n/a | Yes | Gets the number of documents in the source object.

Notes

This property holds the number of pages in the document.


ProcessingInfo PageNumber Property. Gets or sets the page number of the source page being/to be processed. ABCpdf .NET PDF Library.

PageNumber Property

Type | Default | Read Only | Description
[C#] int? [Visual Basic] Nullable(Of Integer) | n/a | No | Gets or sets the page number of the source page being/to be processed.

Notes

The value of this property when the Operation.ProcessingObject event is generated depends on the operation.

The event handler should change this value when a processing sequence other than the default is desired. Set this value to null to end the processing of the current set of pages.

Example

See the XpsImportOperation.Import method.


ProcessingInfo PageCount Property. Gets the number of pages in the source object. ABCpdf .NET PDF Library.

PageCount Property

Type | Default | Read Only | Description
[C#] int? [Visual Basic] Nullable(Of Integer) | n/a | Yes | Gets the number of pages in the source object.

Notes

This property holds the number of pages in the source object.


ProcessingInfo FrameNumber Property. Gets or sets the frame number of the source frame being/to be processed. ABCpdf .NET PDF Library.

FrameNumber Property

Type | Default | Read Only | Description
[C#] long? [Visual Basic] Nullable(Of Long) | n/a | No | Gets or sets the frame number of the source frame being/to be processed.

Notes

The value of this property when the Operation.ProcessingObject event is generated depends on the operation.

The event handler should change this value when a processing sequence other than the default is desired. Set this value to null to end the processing of the current set of frames.

Example

See the SwfImportOperation.Import method.

Here we import the frame at 3.5 seconds.

[C#]

using (Doc doc = new Doc()) {
  using (SwfImportOperation operation = new SwfImportOperation()) {
    operation.Doc = doc;
    operation.ContentAlign = ContentAlign.Top;
    operation.ContentScaleMode = ContentScaleMode.ShowAll;
    operation.ProcessingObject += delegate (object sender, ProcessingObjectEventArgs e) {
      if (e.Info.SourceType == ProcessingSourceType.MultiFrameImage && e.Info.FrameNumber.HasValue)
        e.Info.FrameNumber = 1 + (long)(e.Info.FrameRate.Value * 3.5);
    };
    operation.Import(Server.MapPath("ABCpdf.swf"));
  }
  doc.Save(Server.MapPath("swf.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  Using operation As New SwfImportOperation()
    operation.Doc = doc
    operation.ContentAlign = ContentAlign.Top
    operation.ContentScaleMode = ContentScaleMode.ShowAll
    operation.ProcessingObject += Sub(sender As Object, e As ProcessingObjectEventArgs) If e.Info.SourceType = ProcessingSourceType.MultiFrameImage AndAlso e.Info.FrameNumber.HasValue Then
      e.Info.FrameNumber = 1 + DirectCast(e.Info.FrameRate.Value * 3.5, Long)
    End If
    operation.Import(Server.MapPath("ABCpdf.swf"))
  End Using
  doc.Save(Server.MapPath("swf.pdf"))
End Using


ProcessingInfo FrameCount Property. Gets the number of frames in the source object. ABCpdf .NET PDF Library.

FrameCount Property

Type | Default | Read Only | Description
[C#] long? [Visual Basic] Nullable(Of Long) | n/a | Yes | Gets the number of frames in the source object.

Notes

This property holds the number of frames in the source object.


ProcessingInfo FrameRate Property. Gets the number of frames per second for the source object. ABCpdf .NET PDF Library.

FrameRate Property

Type | Default | Read Only | Description
[C#] double? [Visual Basic] Nullable(Of Double) | n/a | Yes | Gets the number of frames per second for the source object.

Notes

This property holds the number of frames per second for the source object.

Example

See the FrameNumber property and the SwfImportOperation.Import method.


ProcessingInfo BackgroundColor Property. Gets the background color of the source object. ABCpdf .NET PDF Library.

BackgroundColor Property

Type | Default | Read Only | Description
[C#] XColor [Visual Basic] XColor | n/a | Yes | Gets the background color of the source object.

Notes

This property holds the background color of the source object.

Example

See the SwfImportOperation.Import method.


ProcessingInfo StreamPosition Property. Gets or Sets the stream position of the source object, if applicable. ABCpdf .NET PDF Library.

StreamPosition Property

Type | Default | Read Only | Description
[C#] long? [Visual Basic] Nullable(Of Long) | n/a | Yes | Gets or Sets the stream position of the source object, if applicable.

Notes

The value of this property when the Operation.ProcessingObject event is generated depends on the operation.

This property holds the position in the PDF stream. Set this value to null to end the processing of the current stream.

See the RenderOperation.Save method.


ProcessingInfo StreamLength Property. Gets the stream length of the source object, if applicable. ABCpdf .NET PDF Library.

StreamLength Property

Type | Default | Read Only | Description
[C#] long? [Visual Basic] Nullable(Of Long) | n/a | No | Gets the stream length of the source object, if applicable.

Notes

The value of this property when the Operation.ProcessingObject event is generated depends on the operation.

See the RenderOperation.Save method.


ProcessingInfo Text Property. Gets the unicode Text of the Source Event, if applicable. ABCpdf .NET PDF Library.

Text Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | n/a | No | Gets the unicode Text of the Source Event, if applicable.

Notes

The value of this property when the Operation.ProcessingObject event is generated depends on the operation.

See the RenderOperation.Save method.


RecolorOperation Class

An operation used to recolor PDF documents.

System.Object
   WebSupergoo.ABCpdf12.Operations.Operation
      WebSupergoo.ABCpdf12.Operations.RecolorOperation

Method | Description
RecolorOperation | RecolorOperation Constructor.
Throws Exceptions Recolor | Recolor pages in a document.
GetPipe | Gets a color conversion pipe which may be used to map colors from one color space to another.
 | inherited methods...

Property | Description
IccRgb | The path to the default RGB ICC color profile.
IccGray | The path to the default Gray ICC color profile.
IccCmyk | The path to the default CMYK ICC color profile.
IccOutput | The path to the default output ICC color profile.
ConvertAnnotations | Gets or sets a value indicating whether annotations are to be recolored.
DestinationColorSpace | Gets or sets the destination ColorSpace.
PreserveK | Switch for preserving black options when converting color values to cmyk.
PreserveKOptions | Tell the color management system how to preserve black when converting color values to cmyk.
RenderingIntent | Gets or sets the default rendering intent.
AllowIntentChanges | Whether content in the PDF is allowed to override the rendering intent.
Type0SampleCount | Gets or sets the number of Type 0 function samples to generate when converting from Type 2 functions.
 | inherited properties...


RecolorOperation RecolorOperation Function. RecolorOperation Constructor. ABCpdf .NET PDF Library.

RecolorOperation Constructor

RecolorOperation Constructor.

Syntax

[C#]
RecolorOperation()

[Visual Basic]
Sub New()

Params
Name | Description
none |

Notes

Create a RecolorOperation.

You must specify a DestinationColorSpace before calling the Recolor method.

Example

See the Recolor method.


RecolorOperation GetPipe Function. Gets a color conversion Pipe which may be used to map colors from one color space to another. ABCpdf .NET PDF Library.

GetPipe Function

Gets a color conversion Pipe which may be used to map colors from one color space to another.

Syntax

[C#]
RecolorOperation.Pipe GetPipe(Page page, Atom source)

[Visual Basic]
Function GetPipe(page As Page, source As Atom) As RecolorOperation.Pipe

Params
Name | Description
page | The page for which the pipe is needed.
source | The source color space atom.
returns | A Pipe which can be used for converting colors.

Notes

Gets a color conversion Pipe which may be used to map colors from one color space to another.

The Pipe maps from the provided color space source in the context of the provided page, to the DestinationColorSpace and RenderingIntent of the RecolorOperation.

Pipes are owned by the RecolorOperation which means that repeated Pipe requests will use cached Pipes rather than recreating the same conversion repeatedly.

While this greatly increases the efficiency of conversion, it does also mean that at the point at which the RecolorOperation is disposed of, all owned Pipes will also be disposed of. So if you attempt to use a Pipe after your RecolorOperation has been disposed of, an exception will be raised.


RecolorOperation Recolor Function. Recolor pages in a document. ABCpdf .NET PDF Library.

Recolor Function

Recolor pages in a document.

Syntax

[C#]
void Recolor(Doc doc)
void Recolor(Pages pages)
void Recolor(Page page)

[Visual Basic]
Sub Recolor(doc As Doc)
Sub Recolor(pages As Pages)
Sub Recolor(page As Page)

Throws Exceptions may throw Exception()

Params
Name | Description
doc | The document to be recolored.
pages | The pages to be recolored as referenced by a Pages IndirectObject.
page | The page to be recolored as referenced by a Page IndirectObject.

Notes

Converts the specified pages from one color space to another.

The destination color space is specified by assigning a value to the DestinationColorSpace property. All images used on the page are converted to the new color space. All color operators used in the page content stream are converted to the new color space.

Annotations and fields are not part of the page but instead float over the page. You can choose whether to convert the appearance stream of any annotations or leave them in their native color space. This is controlled using the ConvertAnnotations property.

Colors can only be sensibly mapped from one color space to another if we know something about the characteristics of the color space. If your color spaces do not contain this information (e.g. if they are device color spaces) then ABCpdf will use a default color profile.

An exception will be thrown if the operation is not possible. This may happen if the IndirectObjects provided are not in an ObjectSoup or if the destination ColorSpace is in some way invalid.

As part of the Recolor process, all images used on the page(s) are also recolored. (See also PixMap.Recolor.) After the recolor process has been completed these PixMap objects will no longer be compressed. You may wish to analyse and recompress these images by pre and post processing them during the ProcessingObject and ProcessedObject events.

Although the Recolor operation is designed to convert a document to a single color space, such as CMYK, with actual colors unchanged, it can also be used to convert a document to a single, different, color. When you add a spot color (please see AddColorSpaceSpot) and make it the destination color space, the conversion will be to shades of the spot color specified.

Example

Here we recolor one page out of a document. We pick up the ProcessingObject events so that we can store the source color space for all the PixMap objects which are processed. We do not want to convert CMYK pixmaps so we set the Cancel property to true if we find these.

We then pick up the ProcessedObject events so that we can recompress the PixMap objects after they have been recolored. We vary the recompression method used dependent on the source color space and the size of the image.

Here we use standard delegates for backwards compatibility with older code. However anonymous delegates will provide a more compact solution.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/sample.pdf"));
  MyOp.Recolor(doc, (Page)doc.ObjectSoup[doc.Page]);
  doc.Save(Server.MapPath("RecolorOperation.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/sample.pdf"))
  MyOp.Recolor(doc, DirectCast(doc.ObjectSoup(doc.Page), Page))
  doc.Save(Server.MapPath("RecolorOperation.pdf"))
End Using

[C#]

class MyOp {
  public static void Recolor(Doc doc, Page page) {
    RecolorOperation op = new RecolorOperation();
    op.DestinationColorSpace = new ColorSpace(doc.ObjectSoup, ColorSpaceType.DeviceGray);
    op.ConvertAnnotations = false;
    op.ProcessingObject += Recoloring;
    op.ProcessedObject += Recolored;
    op.Recolor(page);
  }

  public static void Recoloring(object sender, ProcessingObjectEventArgs e) {
    PixMap pm = e.Object as PixMap;
    if (pm != null) {
      ColorSpaceType cs = pm.ColorSpaceType;
      if (cs == ColorSpaceType.DeviceCMYK)
        e.Cancel = true;
      e.Tag = cs;
    }
  }

  public static void Recolored(object sender, ProcessedObjectEventArgs e) {
    if (e.Successful) {
      PixMap pm = e.Object as PixMap;
      if (pm != null) {
        ColorSpaceType cs = (ColorSpaceType)e.Tag;
        if (pm.Width > 1000)
          pm.CompressJpx(30);
        else if (cs == ColorSpaceType.DeviceRGB)
          pm.CompressJpeg(30);
        else
          pm.Compress(); // Flate
      }
    }
  }
}

[Visual Basic]
Private Class MyOp
  Public Shared Sub Recolor(doc As Doc, page As Page)
    Dim op As New RecolorOperation()
    op.DestinationColorSpace = New ColorSpace(doc.ObjectSoup, ColorSpaceType.DeviceGray)
    op.ConvertAnnotations = False
    op.ProcessingObject += Recoloring
    op.ProcessedObject += Recolored
    op.Recolor(page)
  End Sub

  Public Shared Sub Recoloring(sender As Object, e As ProcessingObjectEventArgs)
    Dim pm As PixMap = TryCast(e.[Object], PixMap)
    If pm <> Nothing Then
      Dim cs As ColorSpaceType = pm.ColorSpaceType
      If cs = ColorSpaceType.DeviceCMYK Then
        e.Cancel = True
      End If
      e.Tag = cs
    End If
  End Sub

  Public Shared Sub Recolored(sender As Object, e As ProcessedObjectEventArgs)
    If e.Successful Then
      Dim pm As PixMap = TryCast(e.[Object], PixMap)
      If pm <> Nothing Then
        Dim cs As ColorSpaceType = DirectCast(e.Tag, ColorSpaceType)
        If pm.Width > 1000 Then
          pm.CompressJpx(30)
        ElseIf cs = ColorSpaceType.DeviceRGB Then
          pm.CompressJpeg(30)
        Else
          pm.Compress()
          ' Flate
        End If
      End If
    End If
  End Sub
End Class


RecolorOperation ConvertAnnotations Property. Gets or sets a value indicating whether annotations are to be recolored. ABCpdf .NET PDF Library.

ConvertAnnotations Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Gets or sets a value indicating whether annotations are to be recolored.

Notes

Whether annotations should be recolored.

Annotations and fields are not part of the page but instead float over the page. You can choose whether to convert the appearance stream of any annotations or leave them in their native color space.

Example

See the Recolor method.


RecolorOperation DestinationColorSpace Property. Gets or sets the destination ColorSpace. ABCpdf .NET PDF Library.

DestinationColorSpace Property

Type | Default | Read Only | Description
[C#] ColorSpace [Visual Basic] ColorSpace | null | No | Gets or sets the destination ColorSpace.

Notes

The destination ColorSpace for the operation.

Example

See the Recolor method.


RecolorOperation Type0SampleCount Property. Gets or sets the number of Type 0 function samples to generate (between 64 and 1000). ABCpdf .NET PDF Library.

Type0SampleCount Property

Type | Default | Read Only | Description
[C#] Type0SampleCount [Visual Basic] Type0SampleCount | 64 | No | Gets or sets the number of Type 0 function samples to generate (between 64 and 1000).

Notes

The default number of Type 0 sample values to generate when converting from a Type 2 to a Type 0 function.

When a colorspace that uses a Type 2 function is converted to a new colorspace, that new colorspace is sampled to create a replacement Type 0 function. Many times the default number of samples is adequate, but occasionally one needs more samples to eliminate the subtle banding effect encountered during shades, etc.


Recoloring IccCmyk Property. The path to the default CMYK ICC color profile. ABCpdf .NET PDF Library.

IccCmyk Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "standard" | No | The path to the default CMYK ICC color profile.

Notes

A path to the default CMYK ICC color profile.

For a device independent conversion both the source and destination color spaces must both have a color profile. They may have a color profile available because one has been embedded in the PDF, or one may be available as a fallback option via the IccCmyk, IccRgb, IccGray and IccOutput properties.

If profiles are available for both source and destination, the profile for the source may be used to convert any device CMYK colors to the device independent CIE working color space. From the working space the color can then be converted to the DestinationColorSpace.

If either the source or destination do not have a color profile then no accurate conversion is possible and simple mathematical formulas will be used to convert from the source color space to the destination.

This property can take a path to an icm file. If this property is set to a file name with no path information, then the folder "<windows>\system32\spool\drivers\color" will be searched to locate the file.

However there are also two special values you can use. If the property takes the value "standard" then a built in default color profile will be used. If the property takes the value "device" then the output is device dependent - no fallback profile is available.

Example

The following example illustrates how one could convert the first page of a PDF document so all colors and color spaces are in Lab format

Any DeviceCMYK color values are run though the CoatedGRACoL2006 ICC color profile for conversion to Lab.

We assign 96 to the Type0SampleCount which means that continuous shading functions are converted to Type 0 (sample based) functions with 96 samples.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/SpaceShuttlePage6.pdf"));
  ColorSpace cs = new ColorSpace(doc.ObjectSoup, ColorSpaceType.Lab);
  using (var op = new RecolorOperation()) {
    op.DestinationColorSpace = cs;
    op.IccCmyk = Server.MapPath("CoatedGRACoL2006.icc");
    op.Type0SampleCount = 96;
    op.RenderingIntent = RenderingIntent.Perceptual;
    op.Recolor((Page)doc.ObjectSoup[doc.Page]);
  }
  doc.Save(Server.MapPath("RecolorToLab.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/SpaceShuttlePage6.pdf"))
  Dim cs As New ColorSpace(doc.ObjectSoup, ColorSpaceType.Lab)
  Using op = New RecolorOperation()
    op.DestinationColorSpace = cs
    op.IccCmyk = Server.MapPath("CoatedGRACoL2006.icc")
    op.Type0SampleCount = 96
    op.RenderingIntent = RenderingIntent.Perceptual
    op.Recolor(CType(doc.ObjectSoup(doc.Page), Page))
  End Using
  doc.Save(Server.MapPath("RecolorToLab.pdf"))
End Using


Recoloring IccGray Property. The path to the default Gray ICC color profile. ABCpdf .NET PDF Library.

IccGray Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "standard" | No | The path to the default Gray ICC color profile.

Notes

A path to the default Gray ICC color profile.

The principles behind this propery are the same as IccCmyk but for colors in device Gray.

Example

See the IccCmyk property.


Recoloring IccOutput Property. The path to the default output ICC color profile. ABCpdf .NET PDF Library.

IccOutput Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "standard" | No | The path to the default output ICC color profile.

Notes

When recoloring to a DestinationColorSpace one needs an ICC profile or set of calibration settings to describe the characteristics of the output device.

Normally these are held in the DestinationColorSpace itself and if this is the case, then this property is not required and is ignored.

However some color spaces like such as DeviceCMYK, DeviceRGB or DeviceGray do not have profiles because they are abstract and device dependent rather than specific to a particular device.

In this situation we need to find an ICC color profile we can use for the conversion. This property supplies the ICC color profile which will be used if the destination color space does not contain one.

The supplied ICC profile must be in the same color space family as the DestinationColorSpace. So if you are recoloring to DeviceRGB, be sure to provide an RGB ICC profile not a CMYK one.

This property can take a path to an icm file. If this property is set to a file name with no path information, then the folder "<windows>\system32\spool\drivers\color" will be searched to locate the file.

However there are also two special values you can use. If the property takes the value "device" then the device color space will be used. If the property takes the value "standard" then a built in default color profile will be used.

If this property is set to "device" then simple mathematical formulas are used to convert components from one color space to another. Any color profiles in the PDF or in other properties will be ignored as every conversion involves a destination color space which has no profile.


Recoloring IccRgb Property. The path to the default RGB ICC color profile. ABCpdf .NET PDF Library.

IccRgb Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "standard" | No | The path to the default RGB ICC color profile.

Notes

A path to the default RGB ICC color profile.

The principles behind this propery are the same as IccCmyk but for colors in device RGB.

Example

See the IccCmyk property.


PreserveK Property. Determines if color transforms will attempt to preserve the black (K). ABCpdf .NET PDF Library.

PreserveK Property

Type | Default | Read Write | Description
[C#] bool [Visual Basic] bool | false | Yes | Determines if color transforms preserve black when recoloring to CMYK.

Notes

Tell the color management system how to preserve black (K) when recoloring to CMYK.

If true the PreserveKOptions property method is followed. If false it is not.


RecolorOperation PreserveKOption Property. Determines how color transforms preserve black when recoloring to CMYK. ABCpdf .NET PDF Library.

PreserveKOptions Property

Type | Default | Read Write | Description
[C#] BlackPreservation [Visual Basic] BlackPreservation | Intent | Yes | Determines how color transforms preserve black when recoloring to CMYK.

Notes

Tell the color management system how to preserve black (K) when converting color to CMYK.

Normal color transforms first convert to device independent XYZ using the source profile, then from XYZ to the destination space using the destination profile.

Since CMYK is an overdetermined colorspace, an XYZ intermediate value can be converted into a number of different and equivalent CMYK values.

The XRendering.BlackPreservation enumeration may take the following values:

  • Off - Do not attempt to preserve black when transforming.
  • Intent - Use special rendering intents to preserve black - must be supported by the ICC profile.
  • Plane - for CMYK to CMYK transforms only; run CMY through the profile, do not change K.

See also the XRendering.PreserveKOptions property.


XpsImportOperation Class

An operation used to import XPS and OXPS documents.

System.Object
   WebSupergoo.ABCpdf12.Operations.Operation
      WebSupergoo.ABCpdf12.Operations.XpsImportOperation

Method | Description
S» GetApplicationFolder | Gets the installation folder of an import application.
XpsImportOperation | XpsImportOperation Constructor.
ApplicationIsRunning | Gets a value indicating whether an import application is running for this XpsImportOperation.
EnableApplicationReuse | Enables an import application process to be reused so that it is terminated only manually or when this operation is disposed of.
Throws Exceptions Import | Imports a portion of an XPS document.
ImportAny | Imports a portion of a document via an intermediate XPS print-out.
KillApplication | Terminates a running import application.
ReusesApplication | Gets a value indicating whether an import application process is to be kept running and reused.

Property | Description
AddAnnotations | The types of annotations to be added.
BoldWidth | The percentage of boldness to apply when creating a synthetic bold style.
Application | The application used by ImportAny.
ApplicationFolder | The folder of the application used by ImportAny.
DocNumber | The one-based document number used by ImportAny.
EnableMSOfficeMacros | Whether to enable macros when opening MS Office documents.
Password | The password needed to read the source.


XpsImportOperation GetApplicationFolder Function. Gets the installation folder of an import application. ABCpdf .NET PDF Library.

GetApplicationFolder Function

Gets the installation folder of an import application.

Syntax

[C#]
static string GetApplicationFolder(ImportApplicationType app)
[Visual Basic]
Shared Function GetApplicationFolder(app As ImportApplicationType) As String

Params
Name | Description
app | The import application.
return | The installation folder of the application.

Notes

This function returns the installation folder of an application that can be used by ImportAny.

The installation folder of ImportApplicationType.ShellAssociation is null. For the Microsoft Office applications, it will be the Microsoft Office installation folder. If this function returns null for an application other than ShellAssociation, it means that the application is not installed or that ABCpdf has failed to find the application. If this is the case, ImportAny will fail. Before calling ImportAny, you can use this function to make sure that ABCpdf finds the application.


XpsImportOperation XpsImportOperation Function. XpsImportOperation Constructor. ABCpdf .NET PDF Library.

XpsImportOperation Constructor

XpsImportOperation Constructor.

Syntax

[C#]
XpsImportOperation()

[Visual Basic]
Sub New()

Params
Name | Description
none |

Notes

Create an XpsImportOperation.

Example

See the Import method.


XpsImportOperation ApplicationIsRunning Function. Gets a value indicating whether an import application is running for this XpsImportOperation. ABCpdf .NET PDF Library.

ApplicationIsRunning Function

Gets a value indicating whether an import application is running for this XpsImportOperation.

Syntax

[C#]
bool ApplicationIsRunning(ImportApplicationType app)
[Visual Basic]
Function ApplicationIsRunning(app As ImportApplicationType) As Boolean

Params
Name | Description
app | The import application.
return | Whether the application is running.

Notes

This function indicates whether an application is running for this XpsImportOperation when the process reuse for the application is enabled with EnableApplicationReuse.


XpsImportOperation EnableApplicationReuse Function. Enables an import application process to be reused so that it is terminated only manually or when this operation is disposed of. ABCpdf .NET PDF Library.

EnableApplicationReuse Function

Enables an import application process to be reused so that it is terminated only manually or when this operation is disposed of.

Syntax

[C#]
bool EnableApplicationReuse(ImportApplicationType app, bool reuse)
[Visual Basic]
Function EnableApplicationReuse(app As ImportApplicationType, reuse As Boolean) As Boolean

Params
Name | Description
app | The import application.
reuse | Whether the application process is to be reused.
return | Whether the reuse status of the application has been changed.

Notes

This function changes the reuse status of an application. Currently, the application processes of only Microsoft Word, Microsoft Excel, and Microsoft PowerPoint can be reused.

Without application reuse, each call to ImportAny starts and terminates the application process. To avoid the overhead of the application start-up and exit, enable the reuse of the process for the particular application(s). The same process of that application is used in multiple calls to ImportAny of the same XpsImportOperation that uses the application.

The reuse status is not changed if the process reuse of the application is not supported. If the process is running (for this XpsImportOperation object), the running process is terminated when its reuse is disabled.


XpsImportOperation Import Function. Imports a portion of an XPS document. ABCpdf .NET PDF Library.

Import Function

Imports a portion of an XPS document.

Syntax

[C#]
void Import(Doc doc, string path)

[Visual Basic]
Sub Import(doc As Doc, path As String)

Throws Exceptions may throw Exception()

Params
Name | Description
doc | The target PDF document.
path | The file path to the XPS document.

Notes

Imports an XPS or OXPS Document. By default, the entire XPS document is imported.

An exception will be thrown if the operation is not possible. This may happen if the XPS document is corrupt.

You may notice that colors in the PDF files are slightly different. PDF handles alpha blending differently from other file formats. Refer to SwfImportOperation.Import for notes about alpha blending.

    This method generates events as follows:
  1. After the StartPart FixedDocumentSequence is opened, a ProcessingObject event of ProcessingSourceType.Document is generated.
    Name | Description
    ProcessingObjectEventArgs.Cancel | See ProcessingObjectEventArgs.Info.DocNumber below.
    ProcessingObjectEventArgs.Info.Handled | Ignored.
    ProcessingObjectEventArgs.Info.SourceType | ProcessingSourceType.Document
    ProcessingObjectEventArgs.Info.DocCount | The number of FixedDocument's in the FixedDocumentSequence.
    ProcessingObjectEventArgs.Info.DocNumber | The one-based document number of the FixedDocument to be processed. The value of this property for the first of such events for each FixedDocumentSequence is one unless DocCount is zero. Subsequent value is the value returned by the event handler for the previous such event plus one if the new value is between 1 and DocCount inclusively. Otherwise, it is null. The event handler may change this value between 1 and DocCount inclusively. Set it to null to end the processing of all FixedDocument's in the FixedDocumentSequence. If it is null, the corresponding ProcessedObject event is not generated. Otherwise, if ProcessingObjectEventArgs.Cancel is set to true, the corresponding ProcessedObject event is not generated, and the same event is immediately generated again with this value incremented subject to mentioned bounds.
  2. After a previous ProcessingObject event of ProcessingSourceType.Document returns a proper DocNumber and the FixedDocument is opened, a ProcessingObject event of ProcessingSourceType.Page is generated.
    Name | Description
    ProcessingObjectEventArgs.Cancel | See ProcessingObjectEventArgs.Info.PageNumber below.
    ProcessingObjectEventArgs.Info.Handled | Ignored.
    ProcessingObjectEventArgs.Info.SourceType | ProcessingSourceType.Page
    ProcessingObjectEventArgs.Info.DocCount | The number of FixedDocument's in the FixedDocumentSequence.
    ProcessingObjectEventArgs.Info.DocNumber | The document number of the FixedDocument being processed.
    ProcessingObjectEventArgs.Info.PageCount | The number of FixedPage's in the FixedDocument.
    ProcessingObjectEventArgs.Info.PageNumber | The one-based page number of the FixedPage to be processed. The value of this property for the first of such events for each FixedDocument is one unless PageCount is zero. Subsequent value is the value returned by the event handler for the previous such event plus one if the new value is between 1 and PageCount inclusively. Otherwise, it is null. The event handler may change this value between 1 and PageCount inclusively. Set it to null to end the processing of all FixedPage's in the FixedDocument. If it is null, the corresponding ProcessedObject event is not generated. Otherwise, if ProcessingObjectEventArgs.Cancel is set to true, the corresponding ProcessedObject event is not generated, and the same event is immediately generated again with this value incremented subject to mentioned bounds.
  3. After a previous ProcessingObject event of ProcessingSourceType.Page returns a proper PageNumber and the FixedPage is opened, a ProcessingObject event of ProcessingSourceType.PageContent is generated.
    Name | Description
    ProcessingObjectEventArgs.Cancel | If this property is set to true, the page content is not rendered and the corresponding ProcessedObject event is not generated.
    ProcessingObjectEventArgs.Info.Handled | The value of this property is false when the event is generated. If it is false when the handler returns, a new page will be created in the target PDF document. The media box, crop box, and art box of the new page are set according to the information in the FixedPage, and the page content is rendered on to the entire page. Set this value to true to render the page content on to Doc.Rect of the current page using Doc.Transform.
    ProcessingObjectEventArgs.Info.SourceType | ProcessingSourceType.PageContent
    ProcessingObjectEventArgs.Info.DocCount | The number of FixedDocument's in the FixedDocumentSequence.
    ProcessingObjectEventArgs.Info.DocNumber | The document number of the FixedDocument being processed.
    ProcessingObjectEventArgs.Info.PageCount | The number of FixedPage's in the FixedDocument.
    ProcessingObjectEventArgs.Info.PageNumber | The page number of the FixedPage being processed.
    ProcessingObjectEventArgs.Info.Width | The width of the FixedPage (as specified on the FixedPage element, not the one on the PageContent element) in 1/96 inches.
    ProcessingObjectEventArgs.Info.Height | The height of the FixedPage (as specified on the FixedPage element, not the one on the PageContent element) in 1/96 inches.
  4. While processing page content, a ProcessingObject event of ProcessingSourceType.Image is generated when an image is imported.
    Name | Description
    ProcessingObjectEventArgs.Cancel | Ignored.
    ProcessingObjectEventArgs.Info.Handled | Ignored.
    ProcessingObjectEventArgs.Info.SourceType | ProcessingSourceType.Image
    ProcessingObjectEventArgs.Info.DocCount | The number of FixedDocument's in the FixedDocumentSequence.
    ProcessingObjectEventArgs.Info.DocNumber | The document number of the FixedDocument being processed.
    ProcessingObjectEventArgs.Info.PageCount | The number of FixedPage's in the FixedDocument.
    ProcessingObjectEventArgs.Info.PageNumber | The page number of the FixedPage being processed.
    ProcessingObjectEventArgs.Info.Width | The pixel width of the image.
    ProcessingObjectEventArgs.Info.Height | The pixel height of the image.

Unless stated otherwise, a ProcessedObject event corresponding to each ProcessingObject event is generated with an object as follows:

ProcessingObjectEventArgs.Info.SourceType | ProcessedObjectEventArgs.Object when successful
ProcessingSourceType.Document | null
ProcessingSourceType.Page | GraphicLayer
ProcessingSourceType.PageContent | null
ProcessingSourceType.Image | PixMap

Imported images are not compressed. You may wish to analyse and compress these PixMap objects by pre and post processing them during the ProcessingObject and ProcessedObject events.

Example

Here we import the pages with odd page numbers of an XPS document up to page 8, 2 pages per sheet in landscape. The aspect ratio is preserved and a border is also drawn.

[C#]

using (Doc doc = new Doc()) {
  MyImportOperation importOp = new MyImportOperation(doc);
  importOp.Import(Server.MapPath("mypics/AdvancedGraphicsExamples.xps"));
  doc.Save(Server.MapPath("xps.pdf"));
}

[Visual Basic]

Using doc As New Doc()
  Dim importOp As New MyImportOperation(doc)
  importOp.Import(Server.MapPath("mypics/AdvancedGraphicsExamples.xps"))
  doc.Save(Server.MapPath("xps.pdf"))
End Using

[C#]

class MyImportOperation {
  private Doc _doc = null;
  private double _margin = 10;
  private int _pagesAdded = 0;

  public MyImportOperation(Doc doc) {
    _doc = doc;

    _doc.Transform.Rotate(90, _doc.MediaBox.Left, _doc.MediaBox.Bottom);
    _doc.Transform.Translate(_doc.MediaBox.Width, 0);

    int theID = _doc.GetInfoInt(_doc.Root, "Pages");
    _doc.SetInfo(theID, "/Rotate", "90");
  }

  public void Import(string inPath) {
    using (XpsImportOperation op = new XpsImportOperation()) {
      op.ProcessingObject += Processing;
      op.ProcessedObject += Processed;
      op.Import(_doc, inPath);
    }
  }

  public void Processing(object sender, ProcessingObjectEventArgs e) {
    if (e.Info.SourceType == ProcessingSourceType.Page && e.Info.PageNumber != null) {
      if ((e.Info.PageNumber % 2) == 0)
        e.Info.PageNumber++;

      if (e.Info.PageNumber >= 8)
        e.Info.PageNumber = null;

      e.Tag = e.Info.PageNumber;
    }
    else if (e.Info.SourceType == ProcessingSourceType.PageContent) {
      if ((_pagesAdded % 2) == 0)
        _doc.Page = _doc.AddPage();

      double width = _doc.MediaBox.Height;
      double height = _doc.MediaBox.Width;
      double scale = Math.Min((width - 4 * _margin) / (2 * e.Info.Width.Value),
        (height - 2 * _margin) / e.Info.Height.Value);

      double rectWidth = scale * e.Info.Width.Value;
      double rectHeight = scale * e.Info.Height.Value;

      double distanceX = (width - 2 * rectWidth) / 3;
      double distanceY = (height - rectHeight) / 2;

      _doc.Rect.SetRect(distanceX + (_pagesAdded % 2) * (distanceX + rectWidth),
        distanceY, rectWidth, rectHeight);

      e.Info.Handled = true;
      _pagesAdded++;
    }
  }

  public void Processed(object sender, ProcessedObjectEventArgs e) {
    if (e.Successful) {
      PixMap pixmap = e.Object as PixMap;
      if (pixmap != null)
        pixmap.Compress();

      GraphicLayer graphic = e.Object as GraphicLayer;
      if (graphic != null) {
        _doc.FrameRect();

        int pageNumber = (int)e.Tag;
        _doc.FontSize = 16;
        _doc.TextStyle.HPos = 0.5;
        _doc.Rect.Top = _doc.Rect.Bottom - _margin;
        _doc.Rect.Bottom = _doc.MediaBox.Bottom;
        _doc.AddText(string.Format("Page {0}", pageNumber));
      }
    }
  }
}

[Visual Basic]

Private Class MyImportOperation
  Private _doc As Doc = Nothing
  Private _margin As Double = 10
  Private _pagesAdded As Integer = 0

  Public Sub New(doc As Doc)
    _doc = doc

    _doc.Transform.Rotate(90, _doc.MediaBox.Left, _doc.MediaBox.Bottom)
    _doc.Transform.Translate(_doc.MediaBox.Width, 0)

    Dim theID As Integer = _doc.GetInfoInt(_doc.Root, "Pages")
    _doc.SetInfo(theID, "/Rotate", "90")
  End Sub

  Public Sub Import(inPath As String)
    Using op As New XpsImportOperation()
      op.ProcessingObject += Processing
      op.ProcessedObject += Processed
      op.Import(_doc, inPath)
    End Using
  End Sub

  Public Sub Processing(sender As Object, e As ProcessingObjectEventArgs)
    If e.Info.SourceType = ProcessingSourceType.Page AndAlso e.Info.PageNumber <> Nothing Then
      If (e.Info.PageNumber Mod 2) = 0 Then
        System.Math.Max(System.Threading.Interlocked.Increment(e.Info.PageNumber),e.Info.PageNumber - 1)
      End If

      If e.Info.PageNumber >= 8 Then
        e.Info.PageNumber = Nothing
      End If

      e.Tag = e.Info.PageNumber
    ElseIf e.Info.SourceType = ProcessingSourceType.PageContent Then
      If (_pagesAdded Mod 2) = 0 Then
        _doc.Page = _doc.AddPage()
      End If

      Dim width As Double = _doc.MediaBox.Height
      Dim height As Double = _doc.MediaBox.Width
      Dim scale As Double = Math.Min((width - 4 * _margin) / (2 * e.Info.Width.Value), (height - 2 * _margin) / e.Info.Height.Value)

      Dim rectWidth As Double = scale * e.Info.Width.Value
      Dim rectHeight As Double = scale * e.Info.Height.Value

      Dim distanceX As Double = (width - 2 * rectWidth) / 3
      Dim distanceY As Double = (height - rectHeight) / 2

      _doc.Rect.SetRect(distanceX + (_pagesAdded Mod 2) * (distanceX + rectWidth), distanceY, rectWidth, rectHeight)

      e.Info.Handled = True
      System.Math.Max(System.Threading.Interlocked.Increment(_pagesAdded),_pagesAdded - 1)
    End If
  End Sub

  Public Sub Processed(sender As Object, e As ProcessedObjectEventArgs)
    If e.Successful Then
      Dim pixmap As PixMap = TryCast(e.[Object], PixMap)
      If pixmap <> Nothing Then
        pixmap.Compress()
      End If

      Dim graphic As GraphicLayer = TryCast(e.[Object], GraphicLayer)
      If graphic <> Nothing Then
        _doc.FrameRect()

        Dim pageNumber As Integer = DirectCast(e.Tag, Integer)
        _doc.FontSize = 16
        _doc.TextStyle.HPos = 0.5
        _doc.Rect.Top = _doc.Rect.Bottom - _margin
        _doc.Rect.Bottom = _doc.MediaBox.Bottom
        _doc.AddText(String.Format("Page {0}", pageNumber))
      End If
    End If
  End Sub
End Class


XpsImportOperation ImportAny Function. Imports a portion of a document via an intermediate XPS print-out. ABCpdf .NET PDF Library.

ImportAny Function

Imports a portion of a document via an intermediate XPS print-out.

Syntax

[C#]
void ImportAny(Doc doc, string path)
void ImportAny(Doc doc, string path, int timeout
[Visual Basic]
Sub ImportAny(doc As Doc, path As String)
Sub ImportAny(doc As Doc, path As String, timeout As Integer)

Throws Exceptions may throw Exception()

Params
Name | Description
doc | The target PDF document.
path | The file path to the source document.
timeout | The timeout in milliseconds for the XPS printer driver. The default is 15500 milliseconds.

Notes

Imports several types of documents, by converting them to XPS first using the Microsoft XPS Document Writer (MXDW). An attempt is made to silently print the document to a temporary XPS file. An application which will print the document is launched. This application is intercepted and, assuming that only the default Print dialogs are used, the XPS print output is silently captured. This output is then imported into PDF just like any other XPS file.

You can refer to Application for a list of supported applications. This property also determines which application will be used to print the document to XPS.

By default the shell default program will be used. To set the shell default program for a file, in Windows Explorer, right-click on the file, select "Open With" and then "Choose Default Program". When the shell default program is used, there must be a "Print" option when right-clicking on the document in Windows Explorer. If this is not the case, ImportAny will fail except for the following applications: MS Word, MS Excel, MS PowerPoint, MS InfoPath and MS Project.

If you prefer not to rely on the shell default program, set Application to any of the applications defined in ImportAnyApplicationType. These applications are officially supported by ImportAny. You may try your luck with other applications, but in this case you must associate your application via the shell default program.

The Microsoft XPS Document Writer (MXDW) must also be available. This is the default on Windows Vista. For Windows XP, you can download MXDW at this address: http://msdn.microsoft.com/en-us/library/dd183313(VS.85).aspx.

When ImportAny fails, the associated application will likely hang, normally waiting for a "Print" dialog of some sort to be closed, but this dialog is hidden by ImportAny so you will not see it. If this is the case, ImportAny will wait for the specified timeout before killing the associated application and reporting an error. The default timeout is 15.5 seconds. You can reduce or increase this value depending on your requirements, by using the overload that accepts a timeout as a parameter.

When using ImportAny from either a Windows Service or an IIS process, it is recommended that you wrap ABCpdf into a COM+ application. Refer to the PdfEnterpriseServices example in order to do this.

You may debug ImportAny problems using the PrintHookShow and PrintHookLog registry keys. For further details see the Registry Keys section in Concepts.

Example

The usage of ImportAny is identical to Import except that it takes any file format whose associated application supports the "Print" option.


XpsImportOperation KillApplication Function. Terminates a running import application. ABCpdf .NET PDF Library.

KillApplication Function

Terminates a running import application.

Syntax

[C#]
bool KillApplication(ImportApplicationType app)
[Visual Basic]
Function KillApplication(app As ImportApplicationType) As Boolean

Params
Name | Description
app | The import application.
return | Whether the application has been running and killed.

Notes

This function terminates an application running for this XpsImportOperation when the process reuse for the application is enabled with EnableApplicationReuse.


XpsImportOperation ReusesApplication Function. Gets a value indicating whether an import application process is to be kept running and reused. ABCpdf .NET PDF Library.

ReusesApplication Function

Gets a value indicating whether an import application process is to be kept running and reused.

Syntax

[C#]
bool ReusesApplication(ApplicationType app)
[Visual Basic]
Function ReusesApplication(app As ImportApplicationType) As Boolean

Params
Name | Description
app | The import application.
return | Whether the application process is to be kept running and reused.

Notes

This function returns the reuse status of an application.

The reuse status can be changed with EnableApplicationReuse.


XpsImportOperation AddAnnotations Property. The types of annotations to be added. ABCpdf .NET PDF Library.

AddAnnotations Property

Type | Default | Read Only | Description
[C#] XpsImportOperation.AnnotationFlags [Visual Basic] XpsImportOperation.AnnotationFlags | None | No | The types of annotations to be added.

Notes

This property specifies the types of annotations to be added for hyperlinks in the XPS file.

It can take a combination of the following values:

  • None — This is the default value. No annotation is added.
  • InternalLink — Link annotations that point to pages in the same document are added.
  • ExternalLink — Link annotations that link to external resources (e.g. URLs) are added.


XpsImportOperation Application Property. The application used by ImportAny. ABCpdf .NET PDF Library.

Application Property

Type | Default | Read Only | Description
[C#] ImportApplicationType [Visual Basic] ImportApplicationType | ShellAssociation | No | The application used by ImportAny.

Notes

The application used by the import-any operation, see ImportAny.

This property can have one of the following values:

  • ShellAssociation — This is the default value. The Shell will decide which application to use based on file association. The application that starts up when opening a file from the Windows explorer will also be used to do the conversion.
  • MicrosoftWord — Microsoft Word will be used. If it is not installed an exception will be thrown.
  • MicrosoftExcel — Microsoft Excel will be used. If it is not installed an exception will be thrown.
  • MicrosoftPowerPoint — Microsoft PowerPoint will be used. If it is not installed an exception will be thrown.
  • MicrosoftInfoPath — Microsoft InfoPath will be used. If it is not installed an exception will be thrown. Because only one process exists at any one time per user, the interactive user cannot use InfoPath if ABCpdf is importing InfoPath documents from an application running interactively. If the ABCpdf application runs from within a Windows service this limitation does not apply because a separate instance of InfoPath is created. However you cannot have multiple ABCpdf processes using InfoPath at the same time. A mutex has been implemented to prevent this. So only one InfoPath document at a time can be imported.
  • MicrosoftOneNote — Microsoft OneNote will be used. If it is not installed an exception will be thrown. Because only one process instance exists at any one time per user, the same limitations apply, as described for InfoPath.
  • MicrosoftPublisher — Microsoft Publisher will be used. If it is not installed an exception will be thrown.
  • MicrosoftProject — Microsoft Project will be used. If it is not installed an exception will be thrown. Because only one process instance exists at any one time per user, the same limitations apply, as described for InfoPath.
  • MicrosoftVisio — Microsoft Visio will be used. If it is not installed an exception will be thrown.


XpsImportOperation ApplicationFolder Property. The folder of the application used by ImportAny. ABCpdf .NET PDF Library.

ApplicationFolder Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | null | No | The folder of the application used by ImportAny.

Notes

The folder of the application used by the import-any operation, see ImportAny.

If this property is null, the application path will be determined automatically by looking at the registry. Set this property only if the automatic mechanism is failing.


XpsImportOperation BoldWidth Property. The percentage of boldness to apply when creating a synthetic bold style. ABCpdf .NET PDF Library.

BoldWidth Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 1.0 | No | The percentage of boldness to apply when creating a synthetic bold style.

Notes

This property specifies the percentage of boldness to apply when creating a synthetic bold style.

XPS documents can contain text in simulated bold. Simulated bold is used where a font does not have a bold variant and a synthetic approximation is required. However this is a feature which is specific to XPS and which does not have an analog in PDF.

So this means that during the import process ABCpdf has to create an appropriate synthetic bold substitute. The XPS specification says that this should be done using an outline which is 1% of the size of the font.

However this level of emboldenment can look somewhat lighter than one might expect. By increasing the value of this property you can make such fonts look more bold.


XpsImportOperation DocNumber Property. The one-based document number used by ImportAny. ABCpdf .NET PDF Library.

DocNumber Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | The one-based document number used by ImportAny.

Notes

This property can be used to select which document will be imported when calling ImportAny. In most cases only a single document is available in any file and this property is ignored. However in some cases, such as Microsoft Excel, a single workbook contains multiple worksheets. This property will select which Excel worksheet will be imported.

When it is set to zero or a negative value, the entire Excel workbook will be imported. This is the default case. When it is set to any positive value the corresponding worksheet will be imported. Indexing is one-based so set it to one to print the first worksheet and so on. It is up to you to make sure that you set it to a valid value, less than or equal to the total number of worksheets in the workbook.

For applications other than Microsoft Excel this property is currently ignored.


XpsImportOperation EnableMSOfficeMacros Property. Whether to enable macros when opening MS Office documents. ABCpdf .NET PDF Library.

EnableMSOfficeMacros Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to enable macros when opening MS Office documents.

Notes

This property specifies whether to enable macros when opening MS Office documents. It is supported only for MS Word, Excel and PowerPoint. It is ignored in all other cases.

By default, macros are disabled.


XpsImportOperation Password Property. The password needed to read the source. ABCpdf .NET PDF Library.

Password Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | null | No | The password needed to read the source.

Notes

Specify with this property the password for accessing the source. It is supported only for MS Word and MS Excel documents.


SwfImportOperation Class

An operation used to import Flash movies (SWF files).

System.Object
   WebSupergoo.ABCpdf12.Operations.Operation
      WebSupergoo.ABCpdf12.Operations.SwfImportOperation

Method | Description
SwfImportOperation | SwfImportOperation Constructor.
Throws Exceptions Import | Imports selected frames of a Flash movie.

Property | Description
Doc | The target PDF document.
BackgroundRegion | Gets or sets the backgound rectangle.
ClipRegion | Gets or sets the clip rectangle.
ResetRegions | Gets or sets a value that indicates whether BackgroundRegion and ClipRegion are reset when the Operation.ProcessingObject event of ProcessingSourceType.MultiFrameImage or of ProcessingSourceType.ImageFrame is generated.
Timeout | Gets or sets the time-out for script execution.
ContentAlign | Gets or sets the content alignment.
ContentScaleMode | Gets or sets the content scale mode.
Parameters | The parameters for initializing the SWF machine.


SwfImportOperation SwfImportOperation Function. SwfImportOperation Constructor. ABCpdf .NET PDF Library.

SwfImportOperation Constructor

SwfImportOperation Constructor.

Syntax

[C#]
SwfImportOperation()

[Visual Basic]
Sub New()

Params
Name | Description
none |

Notes

Create a SwfImportOperation.

You must specify a Doc before the ProcessingObject event of ProcessingSourceType.ImageFrame returns/is handled.

Example

See the Import method.


SwfImportOperation Import Function. Imports selected frames of a Flash movie. ABCpdf .NET PDF Library.

Import Function

Imports selected frames of a Flash movie.

Syntax

[C#]
void Import(string path)
void Import(Stream stream, string url)
[Visual Basic]
Sub Import(path As String)
Sub Import(stream As Stream, url As String)

Throws Exceptions may throw Exception()

Params
Name | Description
path | The file path to the Flash movie.
stream | The stream containing the Flash movie.
url | The value of the MovieClip._url ActionScript property.

Notes

Imports selected frames of a Flash movie. By default, only one frame is imported. ActionScript 2 or below is supported. ActionScript 3 is not supported.

Alpha Blending. PDF supports using different color spaces for alpha blending. When there is a transparent object on a page, the blending color space will be used. By default, it uses DeviceCMYK. You will likely see some color shifts even for opaque objects because colors are converted to the alpha blending color space and then to DeviceRGB for display. The effect is more noticeable for objects using component-wise alpha blending.

To use RGB as it is used in SWF for alpha blending, set the default blending color space for the page to DeviceRGB:

[C#]

doc.SetInfo(doc.Page, "/Group*/Type:Name", "Group");
doc.SetInfo(doc.Page, "/Group*/S:Name", "Transparency");
doc.SetInfo(doc.Page, "/Group*/CS:Name", "DeviceRGB");

[Visual Basic]
doc.SetInfo(doc.Page, "/Group*/Type:Name", "Group");
doc.SetInfo(doc.Page, "/Group*/S:Name", "Transparency");
doc.SetInfo(doc.Page, "/Group*/CS:Name", "DeviceRGB");

You must specify a Doc before the ProcessingObject event of ProcessingSourceType.ImageFrame returns/is handled.

An exception will be thrown if the operation is not possible. This may happen if the Flash movie is corrupt.

    This method generates events as follows:
  1. Before the Flash engine advances, a ProcessingObject event of ProcessingSourceType.MultiFrameImage is generated. If ResetRegions is true, BackgroundRegion and ClipRegion are reset to the frame bounds/stage size of the Flash movie when the event is generated. The regions are set as if XRect.SetRect is called with the X, Y, Width, and Height properties of the ProcessingInfo. You can provide parameters in Parameters for initializing the SWF machine before the first time a proper FrameNumber is returned in this event.
    Name | Description
    ProcessingObjectEventArgs.Cancel | See ProcessingObjectEventArgs.Info.FrameNumber below.
    ProcessingObjectEventArgs.Info.Handled | Ignored.
    ProcessingObjectEventArgs.Info.SourceType | ProcessingSourceType.MultiFrameImage
    ProcessingObjectEventArgs.Info.FrameCount | The number of frames in the Flash movie.
    ProcessingObjectEventArgs.Info.FrameNumber | The positive number of frames from the start of the movie to elapse before rendering. This value is not bounded by FrameCount. The value of this property for the first of such events is one. Subsequent value is null. The event handler may set this value to a number equal to or greater than the value set in a previous such event. If the value is set smaller, the corresponding ProcessedObject event indicating failure is generated. Set it to null to end the processing of the entire movie. If it is null, the corresponding ProcessedObject event is not generated. Otherwise, if ProcessingObjectEventArgs.Cancel is set to true, the corresponding ProcessedObject event is not generated, and the same event is immediately generated again with this value set to null.
    ProcessingObjectEventArgs.Info.FrameRate | The number of frames per second of the Flash movie.
    ProcessingObjectEventArgs.Info.X | The x-coordinate (in twips) of the frame bounds of the Flash movie.
    ProcessingObjectEventArgs.Info.Y | The y-coordinate (in twips) of the frame bounds of the Flash movie.
    ProcessingObjectEventArgs.Info.Width | The width (in twips) of the stage of the Flash movie.
    ProcessingObjectEventArgs.Info.Height | The height (in twips) of the stage of the Flash movie.
  2. After a proper FrameNumber is returned in a previous ProcessingObject event of ProcessingSourceType.MultiFrameImage and the Flash engine advances to the frame, a ProcessingObject event of ProcessingSourceType.ImageFrame is generated. If ResetRegions is true, BackgroundRegion and ClipRegion are reset to the frame bounds/stage size of the Flash movie when the event is generated because the frame actions may have changed the stage scale mode. You must specify a Doc before this event returns/is handled. The frame is rendered on to Doc.Rect of the current page using Doc.Transform.
    Name | Description
    ProcessingObjectEventArgs.Cancel | If this property is set to true, the frame is not rendered and the corresponding ProcessedObject event is not generated.
    ProcessingObjectEventArgs.Info.Handled | Ignored.
    ProcessingObjectEventArgs.Info.SourceType | ProcessingSourceType.ImageFrame
    ProcessingObjectEventArgs.Info.FrameCount | The number of frames in the Flash movie.
    ProcessingObjectEventArgs.Info.FrameNumber | The number of frames elapsed from the start of the movie.
    ProcessingObjectEventArgs.Info.FrameRate | The number of frames per second of the Flash movie.
    ProcessingObjectEventArgs.Info.X | The x-coordinate (in twips) of the frame bounds of the Flash movie.
    ProcessingObjectEventArgs.Info.Y | The y-coordinate (in twips) of the frame bounds of the Flash movie.
    ProcessingObjectEventArgs.Info.Width | The width (in twips) of the stage of the Flash movie.
    ProcessingObjectEventArgs.Info.Height | The height (in twips) of the stage of the Flash movie.
    ProcessingObjectEventArgs.Info.BackgroundColor | The background color of the frame.
  3. While rendering a frame, a ProcessingObject event of ProcessingSourceType.Image is generated when an image is imported.
    Name | Description
    ProcessingObjectEventArgs.Cancel | Ignored.
    ProcessingObjectEventArgs.Info.Handled | Ignored.
    ProcessingObjectEventArgs.Info.SourceType | ProcessingSourceType.Image
    ProcessingObjectEventArgs.Info.FrameCount | The number of frames in the Flash movie.
    ProcessingObjectEventArgs.Info.FrameNumber | The number of frames elapsed from the start of the movie.
    ProcessingObjectEventArgs.Info.FrameRate | The number of frames per second of the Flash movie.
    ProcessingObjectEventArgs.Info.Width | The pixel width of the image.
    ProcessingObjectEventArgs.Info.Height | The pixel height of the image.
  4. While rendering a frame, a ProcessingObject event of ProcessingSourceType.ImageMask is generated when an image used as a mask is imported.
    Name | Description
    ProcessingObjectEventArgs.Cancel | Ignored.
    ProcessingObjectEventArgs.Info.Handled | Ignored.
    ProcessingObjectEventArgs.Info.SourceType | ProcessingSourceType.ImageMask
    ProcessingObjectEventArgs.Info.FrameCount | The number of frames in the Flash movie.
    ProcessingObjectEventArgs.Info.FrameNumber | The number of frames elapsed from the start of the movie.
    ProcessingObjectEventArgs.Info.FrameRate | The number of frames per second of the Flash movie.
    ProcessingObjectEventArgs.Info.Width | The pixel width of the image.
    ProcessingObjectEventArgs.Info.Height | The pixel height of the image.

Unless stated otherwise, a ProcessedObject event corresponding to each ProcessingObject event is generated.
ProcessingObjectEventArgs.Info.SourceType | ProcessedObjectEventArgs.Object when successful
ProcessingSourceType.MultiFrameImage | GraphicLayer
ProcessingSourceType.ImageFrame | null
ProcessingSourceType.Image | PixMap
ProcessingSourceType.ImageMask | PixMap

Imported images are not compressed. You may wish to analyse and compress these PixMap objects by pre and post processing them during the ProcessingObject and ProcessedObject events.

Example

See the SwfParameters.FlashVars property or the ProcessingInfo.FrameNumber property for simple examples.

Here we import 24 frames from a Flash movie alternately into two PDF documents. The frames are 0.2 seconds apart. Doc.Rect is set so that the outputs are 6-up and preserve the aspect ratio. For the fifth to the eighth imported frames in each document, the background is suppressed and a transparent oval in the same color is drawn instead.

[C#]

Doc doc1 = new Doc();
Doc doc2 = new Doc();
using (SwfImportOperation operation = new SwfImportOperation()) {
  const int fontSize = 20;
  int k = 0;
  bool failed = false;
  operation.ProcessingObject += delegate (object sender, ProcessingObjectEventArgs e) {
    switch (e.Info.SourceType) {
      case ProcessingSourceType.MultiFrameImage:
        if (failed || k >= 24)
          e.Info.FrameNumber = null;
        else
          e.Info.FrameNumber = 1 + Convert.ToInt64(0.2 * k * e.Info.FrameRate.Value);
        e.Tag = ProcessingSourceType.MultiFrameImage;
        break;
      case ProcessingSourceType.ImageFrame: {
          SwfImportOperation op = (SwfImportOperation)sender;
          op.Doc = op.Doc == doc1 ? doc2 : doc1;
          const int distance = 20;
          const int margin = 30;
          double width = op.Doc.MediaBox.Width - 2 * margin;
          double height = op.Doc.MediaBox.Height - 2 * margin;
          double scale = Math.Min((width - distance) / (2 * e.Info.Width.Value),
            (height - 2 * distance - 3 * fontSize) / (3 * e.Info.Height.Value));

          int p = k / 2;
          double rectWidth = scale * e.Info.Width.Value;
          double rectHeight = scale * e.Info.Height.Value;
          op.Doc.Rect.SetRect(margin + (width + distance) * (p % 2) / 2,
            margin + height - rectHeight - (height + 2 * distance) * (p / 2 % 3) / 3,
            rectWidth, rectHeight);
          if (p % 6 == 0)
            op.Doc.Page = op.Doc.AddPage();
          if (p >= 4 && p < 8 && e.Info.BackgroundColor != null) {
            op.BackgroundRegion = null;
            op.Doc.Color.String = e.Info.BackgroundColor.String;
            op.Doc.Color.Alpha = 127;
            op.Doc.AddOval(true);
          }
        }
        break;
    }
  };
  operation.ProcessedObject += delegate (object sender, ProcessedObjectEventArgs e) {
    if (!e.Successful) {
      failed = true;
      return;
    }
    if (e.Tag is ProcessingSourceType
      && (ProcessingSourceType)e.Tag == ProcessingSourceType.MultiFrameImage) {
      SwfImportOperation op = (SwfImportOperation)sender;
      op.Doc.Color.Gray = 0;
      op.Doc.Color.Alpha = 255;
      op.Doc.FontSize = fontSize;
      op.Doc.TextStyle.HPos = 0.5;
      op.Doc.Rect.Top = op.Doc.Rect.Bottom;
      op.Doc.Rect.Bottom = op.Doc.MediaBox.Bottom;
      op.Doc.AddText(string.Format("{0} secs", 0.2 * k));
      ++k;
    }
    PixMap pixmap = e.Object as PixMap;
    if (pixmap != null)
      pixmap.Compress();
  };
  operation.Import(Server.MapPath("ABCpdf.swf"));
}
doc1.Save(Server.MapPath("swf1.pdf"));
doc1.Clear();
doc2.Save(Server.MapPath("swf2.pdf"));
doc2.Clear();

[Visual Basic]
Dim doc1 As New Doc()
Dim doc2 As New Doc()
Using operation As New SwfImportOperation()
  Const  fontSize As Integer = 20
  Dim k As Integer = 0
  Dim failed As Boolean = False
  operation.ProcessingObject += Sub(sender As Object, e As ProcessingObjectEventArgs) Select Case e.Info.SourceType
    Case ProcessingSourceType.MultiFrameImage
      If failed OrElse k >= 24 Then
        e.Info.FrameNumber = Nothing
      Else
        e.Info.FrameNumber = 1 + Convert.ToInt64(0.2 * k * e.Info.FrameRate.Value)
      End If
      e.Tag = ProcessingSourceType.MultiFrameImage
      Exit Select
    Case ProcessingSourceType.ImageFrame
      If True Then
        Dim op As SwfImportOperation = DirectCast(sender, SwfImportOperation)
        op.Doc = If(op.Doc = doc1, doc2, doc1)
        Const  distance As Integer = 20
        Const  margin As Integer = 30
        Dim width As Double = op.Doc.MediaBox.Width - 2 * margin
        Dim height As Double = op.Doc.MediaBox.Height - 2 * margin
        Dim scale As Double = Math.Min((width - distance) / (2 * e.Info.Width.Value), (height - 2 * distance - 3 * fontSize) / (3 * e.Info.Height.Value))

        Dim p As Integer = k / 2
        Dim rectWidth As Double = scale * e.Info.Width.Value
        Dim rectHeight As Double = scale * e.Info.Height.Value
        op.Doc.Rect.SetRect(margin + (width + distance) * (p Mod 2) / 2, margin + height - rectHeight - (height + 2 * distance) * (p / 2 Mod 3) / 3, rectWidth, rectHeight)
        If p Mod 6 = 0 Then
          op.Doc.Page = op.Doc.AddPage()
        End If
        If p >= 4 AndAlso p < 8 AndAlso e.Info.BackgroundColor <> Nothing Then
          op.BackgroundRegion = Nothing
          op.Doc.Color.String = e.Info.BackgroundColor.[String]
          op.Doc.Color.Alpha = 127
          op.Doc.AddOval(True)
        End If
      End If
      Exit Select
  End Select
  operation.ProcessedObject += Sub(sender As Object, e As ProcessedObjectEventArgs)
  If Not e.Successful Then
    failed = True
    Return
  End If
  If TypeOf e.Tag Is ProcessingSourceType AndAlso DirectCast(e.Tag, ProcessingSourceType) = ProcessingSourceType.MultiFrameImage Then
    Dim op As SwfImportOperation = DirectCast(sender, SwfImportOperation)
    op.Doc.Color.Gray = 0
    op.Doc.Color.Alpha = 255
    op.Doc.FontSize = fontSize
    op.Doc.TextStyle.HPos = 0.5
    op.Doc.Rect.Top = op.Doc.Rect.Bottom
    op.Doc.Rect.Bottom = op.Doc.MediaBox.Bottom
    op.Doc.AddText(String.Format("{0} secs", 0.2 * k))
    System.Threading.Interlocked.Increment(k)
  End If
  Dim pixmap As PixMap = TryCast(e.[Object], PixMap)
  If pixmap <> Nothing Then
    pixmap.Compress()
  End If

  End Sub
  operation.Import(Server.MapPath("ABCpdf.swf"))
End Using
doc1.Save(Server.MapPath("swf1.pdf"))
doc1.Clear()
doc2.Save(Server.MapPath("swf2.pdf"))
doc2.Clear()

swf1.pdf

swf2.pdf


SwfImportOperation Doc Property. The target PDF document. ABCpdf .NET PDF Library.

Doc Property

Type | Default | Read Only | Description
[C#] Doc [Visual Basic] Doc | null | No | The target PDF document.

Notes

The document used by the import operation. This is where the flash movie frames are imported into.

This property must not be null before the ProcessingObject event of ProcessingSourceType.ImageFrame returns/is handled.

Example

See the Import method.


SwfImportOperation BackgroundRegion Property. Gets or sets the backgound rectangle. ABCpdf .NET PDF Library.

BackgroundRegion Property

Type | Default | Read Only | Description
[C#] XRect [Visual Basic] XRect | null | No | Gets or sets the backgound rectangle.

Notes

The background region (in twips) is where the frame background is drawn. Set this property to change the extent or location of the background. The background region is set to the frame bounds/stage size if ResetRegions is true. If it is null (and not set to non-null because of ResetRegions), no background is drawn.

Example

See the Import method.


SwfImportOperation ClipRegion Property. Gets or sets the clip rectangle. ABCpdf .NET PDF Library.

ClipRegion Property

Type | Default | Read Only | Description
[C#] XRect [Visual Basic] XRect | null | No | Gets or sets the clip rectangle.

Notes

The clip region (in twips) is where the frame foreground is drawn. Set this property to change the extent or location of the frame foreground. If the foreground extends outside of this region, it will be clipped. The clip region is set to the frame bounds/stage size if ResetRegions is true. If it is null (and not set to non-null because of ResetRegions), the content is not clipped.


SwfImportOperation ResetRegions Property. Gets or sets a value that indicates whether BackgroundRegion and ClipRegion are reset when the Operation.ProcessingObject event of ProcessingSourceType.MultiFrameImage or of ProcessingSourceType.ImageFrame is generated. ABCpdf .NET PDF Library.

ResetRegions Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Gets or sets a value that indicates whether BackgroundRegion and ClipRegion are reset when the Operation.ProcessingObject event of ProcessingSourceType.MultiFrameImage or of ProcessingSourceType.ImageFrame is generated.

Notes

Indicates whether the background and clip regions should be reset to the frame bounds each time a new frame is about to be imported. The regions are set as if XRect.SetRect is called with the X, Y, Width, and Height properties of the ProcessingInfo. Set this property to false when you want the regions not to be reset when the Operation.ProcessingObject event of ProcessingSourceType.MultiFrameImage or of ProcessingSourceType.ImageFrame is generated.


SwfImportOperation Timeout Property. Gets or sets the time-out for script execution. ABCpdf .NET PDF Library.

Timeout Property

Type | Default | Read Only | Description
[C#] TimeSpan? [Visual Basic] Nullable(Of TimeSpan) | null | No | Gets or sets the time-out for script execution.

Notes

This property specifies for each advancement of the Flash engine the period within which scripts are executed while the Flash engine advances to the specified frame. It enables the termination of infinite loops in the scripts.


SwfImportOperation ContentAlign Property. Gets or sets the content alignment. ABCpdf .NET PDF Library.

ContentAlign Property

Type | Default | Read Only | Description
[C#] ContentAlign? [Visual Basic] Nullable(Of ContentAlign) | null | No | Gets or sets the content alignment.

Notes

This property specifies the alignment of the content in the target rectangle.

It can take a combination of the following values:

  • Center
  • Left
  • Right
  • Top
  • Bottom

If it is null, the value of the ActionScript property Stage.align is used.

Example

See the ProcessingInfo.FrameNumber property.


SwfImportOperation ContentScaleMode Property. Gets or sets the content scale mode. ABCpdf .NET PDF Library.

ContentScaleMode Property

Type | Default | Read Only | Description
[C#] ContentScaleMode? [Visual Basic] Nullable(Of ContentScaleMode) | ExactFit | No | Gets or sets the content scale mode.

Notes

This property specifies the scale mode of the content in the target rectangle.

It can take any of the following values:

  • ShowAll – make the content the biggest and completely within the area while keeping the aspect ratio.
  • NoBorder – make the content the smallest and covering the entire area while keeping the aspect ratio.
  • ExactFit – scale the content possibly with distortion to fit the entire area.
  • NoScale – no scaling.

If it is null, the value of the ActionScript property Stage.scaleMode is used.

Example

See the ProcessingInfo.FrameNumber property.


SwfImportOperation Parameters Property. The parameters for initializing the SWF machine. ABCpdf .NET PDF Library.

Parameters Property

Type | Default | Read Only | Description
[C#] SwfParameters [Visual Basic] SwfParameters | null | No | The parameters for initializing the SWF machine.

Notes

This property specifies the parameters for initializing the SWF machine.

If it is set, it should be set before the first time a proper FrameNumber is returned in a ProcessingObject event of ProcessingSourceType.MultiFrameImage. It is not used after the machine is initialized.

Example

See the SwfParameters.FlashVars property.


SwfParameters Class

Parameters to initialize the SWF machine.

System.Object
   WebSupergoo.ABCpdf12.Operations.SwfParameters

Property | Description
FlashVars | The Flash variables.
StageAlign | The stage alignment.
StageHeight | The stage height when the scale mode is NoScale.
StageScaleMode | The stage scale mode.
StageWidth | The stage width when the scale mode is NoScale.


SwfParameters FlashVars Property. The Flash variables. ABCpdf .NET PDF Library.

FlashVars Property

Type Default Read Only Description
[C#]
IEnumerable<KeyValuePair<string, object>>

[Visual Basic]
IEnumerable(Of KeyValuePair(Of String, Object)) 		null No The Flash variables.

Notes

This property specifies the Flash variables. The object values can be any of the following:

  • SwfActionValue.Undefined – the undefined value.
  • SwfActionValue.Null – the null value.
  • A Boolean – a primitive Boolean.
  • A Char – a primitive string consisting of one character.
  • A SByte, Byte, Int16, UInt16, or Int32 – a primitive number (32-bit integer).
  • A UInt32, Int64, or UInt64 – a primitive number (32-bit integer if it is within the range of 32-bit integer; double-precision floating-point number, otherwise).
  • A Single – a primitive number (single-precision floating-point number).
  • A Double – a primitive number (double-precision floating-point number).
  • A Decimal – a primitive number (32-bit integer if it is an integer within the range of 32-bit integer; double-precision floating-point number, otherwise).
  • A String – a primitive string.
  • IEnumerable<KeyValuePair<string, object>> – an object with KeyValuePair<string, object>.Key as the property names and KeyValuePair<string, object>.Value after this conversion as the property values.
  • IEnumerable<object> – an array with the objects after this conversion as the element values.

Reference semantics of objects is supported. When the same IEnumerable<KeyValuePair<string, object>> or the same IEnumerable<object> is in different parts of this property value, the same object is used. In particular, you can create objects and properties/element values that form circular references.

Example

Here, we import the chart in the frame at two seconds into a Flash movie.

[C#]
Doc doc = new Doc();
using(SwfImportOperation operation = new SwfImportOperation()) {
  operation.Doc = doc;
  operation.ContentAlign = ContentAlign.Top;
  operation.ContentScaleMode = ContentScaleMode.ShowAll;
  operation.ProcessingObject += delegate(object sender, ProcessingObjectEventArgs e) {
    if(e.Info.SourceType==ProcessingSourceType.MultiFrameImage && e.Info.FrameNumber.HasValue)
      e.Info.FrameNumber = 1+(long)(e.Info.FrameRate.Value*2);
  };

  const int chartWidth = 400;
  const int chartHeight = 300;
  SwfParameters parameters = new SwfParameters();
  parameters.StageWidth = chartWidth*20;
  parameters.StageHeight = chartHeight*20;

  Dictionary<string, object> flashVars = new Dictionary<string, object>();
  flashVars.Add("chartWidth", chartWidth);
  flashVars.Add("chartHeight", chartHeight);
  flashVars.Add("dataXML",
    "<chart caption='Weekly Sales Summary' xAxisName='Week'"
    +" yAxisName='Amount' numberPrefix='$'>"
    +"<set label='Week 1' value='14400' />"
    +"<set label='Week 2' value='19600' />"
    +"<set label='Week 3' value='24000' />"
    +"<set label='Week 4' value='15700' />"
    +"</chart>");
  parameters.FlashVars = flashVars;
  operation.Parameters = parameters;
  operation.Import(Server.MapPath("Column3D.swf"));
}
doc.Save(Server.MapPath("chart.pdf"));
doc.Clear();
[Visual Basic]
Dim theDoc As Doc = New Doc()
Using theOperation As New SwfImportOperation
  theOperation.Doc = theDoc
  theOperation.ContentAlign = ContentAlign.Top
  theOperation.ContentScaleMode = ContentScaleMode.ShowAll
  AddHandler theOperation.ProcessingObject, AddressOf Processing

  Const theChartWidth As Integer = 400
  Const theChartHeight As Integer = 300
  Dim theParameters As SwfParameters = New SwfParameters()
  theParameters.StageWidth = theChartWidth * 20
  theParameters.StageHeight = theChartHeight * 20

  Dim theFlashVars As Dictionary(Of String, Object) = New Dictionary(Of String, Object)()
  theFlashVars.Add("chartWidth", theChartWidth)
  theFlashVars.Add("chartHeight", theChartHeight)
  theFlashVars.Add("dataXML", _
    "<chart caption='Weekly Sales Summary' xAxisName='Week'" _
    & " yAxisName='Amount' numberPrefix='$'>" _
    & "<set label='Week 1' value='14400' />" _
    & "<set label='Week 2' value='19600' />" _
    & "<set label='Week 3' value='24000' />" _
    & "<set label='Week 4' value='15700' />" _
    & "</chart>")
  theParameters.FlashVars = theFlashVars
  theOperation.Parameters = theParameters
  theOperation.Import(Server.MapPath("Column3D.swf"))
End Using
theDoc.Save(Server.MapPath("chart.pdf"))
theDoc.Clear()

Private Shared Sub Processing(sender As Object, e As ProcessingObjectEventArgs)
  If e.Info.SourceType = ProcessingSourceType.MultiFrameImage _
    AndAlso e.Info.FrameNumber.HasValue Then
    e.Info.FrameNumber = 1 + CLng(e.Info.FrameRate.Value * 2)
  End If
End Sub


SwfParameters StageAlign Property. The stage alignment. ABCpdf .NET PDF Library.

StageAlign Property

Type | Default | Read Only | Description
[C#] ContentAlign? [Visual Basic] Nullable(Of ContentAlign) | null | No | The stage alignment.

Notes

This property specifies the value of the ActionScript property Stage.align. If it is not null, Stage.align is set to (the string representation of) this value.

It can take a combination of the following values:

  • Center
  • Left
  • Right
  • Top
  • Bottom


SwfParameters StageHeight Property. The stage height when the scale mode is NoScale. ABCpdf .NET PDF Library.

StageHeight Property

Type | Default | Read Only | Description
[C#] double? [Visual Basic] Nullable(Of Double) | null | No | The stage height when the scale mode is NoScale.

Notes

This property specifies 20 times the value of the ActionScript property Stage.height. If it is not null, Stage.height holds 1/20 of this value when Stage.scaleMode is "noScale".

Example

See the FlashVars property.


SwfParameters StageScaleMode Property. The stage scale mode. ABCpdf .NET PDF Library.

StageScaleMode Property

Type | Default | Read Only | Description
[C#] ContentScaleMode? [Visual Basic] Nullable(Of ContentScaleMode) | null | No | The stage scale mode.

Notes

This property specifies the value of the ActionScript property Stage.scaleMode. If it is not null, Stage.scaleMode is set to (the string representation of) this value.

It can take any of the following values:

  • ShowAll – make the content the biggest and completely within the area while keeping the aspect ratio.
  • NoBorder – make the content the smallest and covering the entire area while keeping the aspect ratio.
  • ExactFit – scale the content possibly with distortion to fit the entire area.
  • NoScale – no scaling.


SwfParameters StageWidth Property. The stage width when the scale mode is NoScale. ABCpdf .NET PDF Library.

StageWidth Property

Type | Default | Read Only | Description
[C#] double? [Visual Basic] Nullable(Of Double) | null | No | The stage width when the scale mode is NoScale.

Notes

This property specifies 20 times the value of the ActionScript property Stage.width. If it is not null, Stage.width holds 1/20 of this value when Stage.scaleMode is "noScale".

Example

See the FlashVars property.


RenderOperation Class

An operation used to render pages of PDF documents.

System.Object
   WebSupergoo.ABCpdf12.Operations.Operation
      WebSupergoo.ABCpdf12.Operations.RenderOperation

Method | Description
RenderOperation | RenderOperation Constructor.
Throws Exceptions Save | Renders a page into a file.
Throws Exceptions GetBitmap | Renders a page into a bitmap.
Throws Exceptions GetData | Renders a page into an array of bytes.


RenderOperation RenderOperation Function. RenderOperation Constructor. ABCpdf .NET PDF Library.

RenderOperation Constructor

RenderOperation Constructor.

Syntax

[C#]
RenderOperation(Doc doc)

[Visual Basic]
Sub New(doc As Doc)

Params
Name | Description
doc | The PDF Document

Notes

Create a RenderOperation to allow rendering of multiple pages from different threads.

You can use Doc.Rendering to set rendering options before creating a RenderOperation. When a RenderOperation is created, relevant doc properties are copied, so modifying properties of Doc.Rendering after creating the operation does not affect the RenderOperation. Likewise, setting the current page to another page after creating the operation has no effect.

Example

See the Save method.


RenderOperation Save Function. Renders and saves a page. ABCpdf .NET PDF Library.

Save Function

Renders and saves a page.

Syntax

[C#]
void Save(string path)

[Visual Basic]
Sub Save(path As String)

Throws Exceptions may throw Exception()

Params
Name | Description
path | The destination file path.

Notes

Renders and saves a page.

The page and rendering options which will be used are those which were current at the time the RenderOperation was created.

This method is similar in functionality to XRendering.Save, but allows safe multithreaded use.

You can create multiple different RenderOperations to render different pages, or indeed the same page, of a document. Each RenderOperation may live on a different thread. So the typical process is to create multiple RenderOperations on the main thread and then parcel them off to different threads which will call the Save method. The only restriction is that the pages in question must not be modified while being rendered.

Furthermore, this method generates the following events, allowing fine tuning of the rendering operations:
  1. Before rendering begins, a ProcessingObject event of ProcessingSourceType.PageContent is generated. Set the event arguments' Cancel property to true to skip rendering altogether.
  2. When a PDF path stroking or filling operator is found in the page content, a ProcessingObject event of ProcessingSourceType.Path is generated. Set the event arguments' Cancel property to true to skip this object. The stream length and position can be retrieved via the StreamPosition and StreamLength properties. Set the stream position to null to skip the remaining of the stream.
  3. When a text PDF operator is found, a ProcessingObject event of ProcessingSourceType.Text is generated. The Unicode text can be retrieved in the Text property of the event Info property. the event cancel property to true to skip this object. The stream length and position can be retrieved via the StreamPosition and StreamLength properties. Set the stream position to null to skip the remaining of the stream.
  4. When a shading PDF operator is found, a ProcessingObject event of ProcessingSourceType.Shading is generated. The same comments of point 2 above apply, for skipping the object or retrieving/setting the stream position and length.
  5. When an image is found (inline or XObject), a ProcessingObject event of ProcessingSourceType.Image is generated. If the image is XObject, the indirect object can be retrieved via the event arguments' Object property. the event cancel property to true to skip this object. The stream length and position can be retrieved via the StreamPosition and StreamLength properties. Set the stream position to null to skip the remaining of the stream.
  6. When a Form XObject is found, a ProcessingObject event of ProcessingSourceType.FormXObject is generated. The indirect object can be retrieved via the event arguments' Object property. Set the event arguments' Cancel property to true to skip this object. The stream length and position can be retrieved via the StreamPosition and StreamLength properties. Set the stream position to null to skip the remaining of the stream. In addition, because Forms contain streams, a ProcessingObject event of ProcessingSourceType.Stream will follow. You can set the stream position to null to skip the stream at any time. That is events for the objects contained in the Form stream will be generated, as described in points 2 to 5. Setting the stream position to null for Form objects will skip the Form stream, not the entire page content.

Every ProcessingObject event is followed by a corresponding ProcessedObject, event with the same source type. The PageContent ProcessedObject event will be the last event received, in that all the page objects events are sandwiched between a PageContent processing and processed events. Similarly for form streams, all the form objects events are sandwiched between a Stream processing and processed events, which in turn are sandwiched between the FormXObject processing and processed events.

Any event property or event Info property not mentioned here will be ignored.

Example

Here we render all the pages of the doc using 10 threads at a time. We alternate rendering format between jpg and tiff. We also alternate resolution between 150 and 300 dpi. Note how the RenderingOperation is created in the constructor of TheRenderingWorker. This is because at this point a copy of the rendering options is made. Had we created the RenderingOperation in DoWork, we would have picked up only the last doc.Rendering.DotsPerInch, because the threads are started in the following loop. Also note how we dispose the operation in DoWork, to release resources stored on the native side (the copy of the rendering options basically).

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("spaceshuttle.pdf"));
  string[] theExts = { ".jpg", ".tif" };
  int[] theDpis = { 150, 300 };
  Thread[] threadList = new Thread[10];
  int pageNum = 1, pageCount = doc.PageCount;
  while (pageNum <= pageCount) {
    int count = 0;
    while (count < threadList.Length && pageNum <= pageCount) {
      doc.Rendering.DotsPerInch = theDpis[(pageNum - 1) % 2];
      doc.PageNumber = pageNum;
      string path = Server.MapPath($"ABCpdf{pageNum}{theExts[(pageNum - 1) % 2]}");

      threadList[count] = new Thread(new RenderingWorker(doc, path).DoWork);
      ++count;
      ++pageNum;
    }
    for (int i = 0; i < count; ++i)
      threadList[i].Start();
    for (int i = 0; i < count; ++i)
      threadList[i].Join();
  }
}

[Visual Basic]

Using doc As New Doc()
  doc.Read(Server.MapPath("spaceshuttle.pdf"))
  Dim theExts As String() = {".jpg", ".tif"}
  Dim theDpis As Integer() = {150, 300}
  Dim threadList As Thread() = New Thread(9) {}
  Dim pageNum As Integer = 1, pageCount As Integer = doc.PageCount
  While pageNum <= pageCount
    Dim count As Integer = 0
    While count < threadList.Length AndAlso pageNum <= pageCount
      doc.Rendering.DotsPerInch = theDpis((pageNum - 1) Mod 2)
      doc.PageNumber = pageNum
      Dim path As String = Server.MapPath($"ABCpdf{pageNum}{theExts[(pageNum - 1) % 2]}")

      threadList(count) = New Thread(New RenderingWorker(doc, path).DoWork)
      System.Threading.Interlocked.Increment(count)
      System.Threading.Interlocked.Increment(pageNum)
    End While
    Dim i As Integer = 0
    While i < count
      threadList(i).Start()
      System.Threading.Interlocked.Increment(i)
    End While
    Dim i As Integer = 0
    While i < count
      threadList(i).Join()
      System.Threading.Interlocked.Increment(i)
    End While
  End While
End Using

[C#]

class RenderingWorker {
  private string mPath;
  private RenderOperation mOp;

  public RenderingWorker(Doc inDoc, string inPath) {
    mPath = inPath;
    mOp = new RenderOperation(inDoc);
  }

  public void DoWork() {
    mOp.Save(mPath);
    mOp.Dispose();
  }
}

[Visual Basic]

Private Class RenderingWorker
  Private mPath As String
  Private mOp As RenderOperation

  Public Sub New(inDoc As Doc, inPath As String)
    mPath = inPath
    mOp = New RenderOperation(inDoc)
  End Sub

  Public Sub DoWork()
    mOp.Save(mPath)
    mOp.Dispose()
  End Sub
End Class


RenderOperation GetBitmap Function. Renders a page into a bitmap. ABCpdf .NET PDF Library.

GetBitmap Function

Renders a page into a bitmap.

Syntax

[C#]
System.Drawing.Bitmap GetBitmap()

[Visual Basic]
Function GetData(name As String) As Byte()

Throws Exceptions may throw Exception()

Params
Name | Description
return | The Bitmap containing the image.

Notes

Renders a page into a Bitmap.

The page and rendering options which will be used are those which were current at the time the RenderOperation was created.

This method is similar in functionality to XRendering.GetBitmap but allows safe muti-threaded use.

For details see the Save method.

Example

Nne.


RenderOperation GetData Function. Renders a page into an array of bytes. ABCpdf .NET PDF Library.

GetData Function

Renders a page into an array of bytes.

Syntax

[C#]
byte[] GetData(string name)

[Visual Basic]
Function GetData(name As String) As Byte()

Throws Exceptions may throw Exception()

Params
Name | Description
name | A dummy file name used to determine the type of image required.
return | The image as an array of bytes.

Notes

Renders a page into an array of bytes.

The page and rendering options which will be used are those which were current at the time the RenderOperation was created.

This method is similar in functionality to XRendering.GetBitmap but allows safe muti-threaded use.

For details see the Save method.

Example

See the Save method.


PdfConformanceIdentification Class

The PDF conformance identification.

Note that this feature is only available under the ABCpdf Professional License.

System.Object
   WebSupergoo.ABCpdf12.Operations.PdfConformanceIdentification

Method | Description
FromDoc | Gets the conformance identification from a document.

Property | Description
Part | The conformance version identifier.
Amd | The conformance amendment identifier.
Corr | The conformance corrigendum identifier.
Conformance | The conformance level.
Prefix | The schema namespace prefix.
EffectiveConformance | The effective PdfConformance value.


PdfConformanceIdentification FromDoc Function. Gets the conformance identification from a document. ABCpdf .NET PDF Library.

FromDoc Function

Gets the conformance identification from a document.

Syntax

[C#]
static PdfConformanceIdentification FromDoc(Doc doc, PdfConformance conformance)
[Visual Basic]
Shared Function FromDoc(doc As Doc, conformance As PdfConformance) As PdfConformanceIdentification

Params
Name | Description
doc | The document.
conformance | The conformance specification for which the identification is to be retrieved.
return | The conformance identification.

Notes

This method identifies the conformance a document is marked to satisfy.

It is possible that a document conforms to more than one specification (e.g. PDF/A-1 and PDF/X-1) so you need to indicate which specification you want to retrieve the identification for.

The conformance parameter can take the following values:

  • Pdf – not valid.
  • PdfA1b - PDF/A-1 specification.
  • PdfA1a - PDF/A-1 specification (exactly the same as PdfA1b).
  • PdfA2b - PDF/A-2 specification.
  • PdfA2u - PDF/A-2 specification (exactly the same as PdfA2b).
  • PdfA2a - PDF/A-2 specification (exactly the same as PdfA2b).
  • PdfUA1 - PDF/UA-1 specification.


PdfConformanceIdentification Part Property. The conformance version identifier. ABCpdf .NET PDF Library.

Part Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | null | No | The conformance version identifier.

Notes

This property indicates the part number of the conformance specification. For PDF/A-1, the value is "1".


PdfConformanceIdentification Amd Property. The conformance amendment identifier. ABCpdf .NET PDF Library.

Amd Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | null | No | The conformance amendment identifier.

Notes

This property indicates the amendment to a part of the conformance specification. For PDF/A, the value is the amendment number and year, separated by a colon. There is currently no amendment to PDF/A-1.


PdfConformanceIdentification Corr Property. The conformance corrigendum identifier. ABCpdf .NET PDF Library.

Corr Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | null | No | The conformance corrigendum identifier.

Notes

This property indicates the corrigendum to a part of the conformance specification. For PDF/A, the value is the corrigendum number and year, separated by a colon. There is currently no corrigendum to PDF/A-2.


PdfConformanceIdentification Conformance Property. The conformance level. ABCpdf .NET PDF Library.

Conformance Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | null | No | The conformance level.

Notes

This property indicates the conformance level. For PDF/A-1a, the value is "A"; for PDF/A-1b, the value is "B".


PdfConformanceIdentification Prefix Property. The schema namespace prefix. ABCpdf .NET PDF Library.

Prefix Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | null | No | The schema namespace prefix.

Notes

This property indicates the schema namespace prefix. For PDF/A, the value is "pdfaid"; for PDF/UA, the value is "pdfuaid".

EffectiveConformance may be Pdf when Part is invalid or indicates a recent specification which PdfConformance does not include. In that case, you can use Prefix to identify the conformance.


PdfConformanceIdentification EffectiveConformance Property. The effective PdfConformance value. ABCpdf .NET PDF Library.

EffectiveConformance Property

Type | Default | Read Only | Description
[C#] PdfConformance [Visual Basic] PdfConformance | Pdf | Yes | The effective PdfConformance value.

Notes

This property indicates the effective conformance specified by the Part, Amd, Corr, and Conformance properties.

It can take any of the following values:

  • Pdf – PDF conformance.
  • PdfA1b - PDF/A Part 1 Level B conformance.
  • PdfA1a - PDF/A Part 1 Level A conformance.
  • PdfA2b - PDF/A Part 2 Level B conformance.
  • PdfA2u - PDF/A Part 2 Level U conformance.
  • PdfA2a - PDF/A Part 2 Level A conformance.
  • PdfUA1 - PDF/UA Part 1 conformance.


PdfConformityOperation Class

Operation to produce conforming PDF files.

Note that this feature is only available under the ABCpdf Professional License.

System.Object
   WebSupergoo.ABCpdf12.Operations.PdfConformityOperation

Implements: IDisposable

Method | Description
Throws Exceptions GetData | Get the conforming document as raw data.
Throws Exceptions GetStream | Get the conforming document as raw data stream.
Throws Exceptions Save | Write the conforming PDF document.

Property | Description
Conformance | The PDF conformance to be applied.
Conformity | The PDF conformity options.
ExcludedConformity | The PDF conformity options to exclude.
Options | The PDF update options.
Messages | The changes made to make the document conformant.
Errors | The features within the document which could not be made conformant.


PdfConformityOperation GetData Function. Get the conforming document as raw data. ABCpdf .NET PDF Library.

GetData Function

Get the conforming document as raw data.

Syntax

[C#]
byte[] GetData(Doc doc)
[Visual Basic]
Function GetData(doc As Doc) As Byte()

Throws Exceptions may throw Exception()

Params
Name | Description
doc | The document.
return | The PDF document as an array of bytes.

Notes

The method writes the document in a conforming PDF format according to the Conformance property. Any conformance error is reported in the Errors property after the method finishes.


PdfConformityOperation GetStream Function. Get the conforming document as raw data stream. ABCpdf .NET PDF Library.

GetStream Function

Get the conforming document as raw data stream.

Syntax

[C#]
Stream GetStream(Doc doc)
[Visual Basic]
Function GetStream(doc As Doc) As Stream

Throws Exceptions may throw Exception()

Params
Name | Description
doc | The document.
return | The PDF document as a stream.

Notes

The method writes the document in a conforming PDF format according to the Conformance property. Any conformance error is reported in the Errors property after the method finishes.

Because of the CLR limit of 2 GB per object, the GetData method cannot return the data for a document larger than 2 GB. Use this method for documents larger than 2 GB. Dispose of the returned stream as soon as it is no longer needed for small memory footprint.


PdfConformityOperation Save Function. Write the conforming PDF document. ABCpdf .NET PDF Library.

Save Function

Write the conforming PDF document.

Syntax

[C#]
void Save(Doc doc, string path)
void Save(Doc doc, Stream stream)
[Visual Basic]
Sub Save(doc As Doc, path As String)
Sub Save(doc As Doc, stream As Stream)

Throws Exceptions may throw Exception()

Params
Name | Description
doc | The document.
path | The destination file path.
stream | The destination stream.

Notes

This method writes the document in a conforming PDF format according to the Conformance property. Any conformance error is reported in the Errors property after the method finishes.

Example

Here we save a document in PDF/A-1b format.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("mypics/Acrobat.pdf"));
  string thePath = Server.MapPath("pdfa.pdf");
  using (PdfConformityOperation theOperation = new PdfConformityOperation()) {
    theOperation.Conformance = PdfConformance.PdfA1b;
    theOperation.Save(doc, thePath);

    if (theOperation.Errors.Count > 0) {
      Console.WriteLine("Errors:");
      for (int i = 0; i < theOperation.Errors.Count; ++i)
        Console.WriteLine(theOperation.Errors[i]);
    }
  }
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("mypics/Acrobat.pdf"))
  Dim thePath As String = Server.MapPath("pdfa.pdf")
  Using theOperation As New PdfConformityOperation()
    theOperation.Conformance = PdfConformance.PdfA1b
    theOperation.Save(doc, thePath)

    If theOperation.Errors.Count > 0 Then
      Console.WriteLine("Errors:")
      Dim i As Integer = 0
      While i < theOperation.Errors.Count
        Console.WriteLine(theOperation.Errors(i))
        System.Threading.Interlocked.Increment(i)
      End While
    End If
  End Using
End Using


PdfConformityOperation Conformance Property. The PDF conformance to be applied. ABCpdf .NET PDF Library.

Conformance Property

Type | Default | Read Only | Description
[C#] PdfConformance [Visual Basic] PdfConformance | Pdf | No | The PDF conformance to be applied.

Notes

This property specifies the conformance of the output PDF.

It can take any of the following values:

  • Pdf – PDF conformance.
  • PdfA1b - PDF/A Part 1 Level B conformance.
  • PdfA1a - PDF/A Part 1 Level A conformance.
  • PdfA2b - PDF/A Part 2 Level B conformance.
  • PdfA2u - PDF/A Part 2 Level U conformance.
  • PdfA2a - PDF/A Part 2 Level A conformance.

Example

See the Save method.


PdfConformityOperation Conformity Property. The PDF conformity. ABCpdf .NET PDF Library.

Conformity Property

Type | Default | Read Only | Description
[C#] PdfConformity [Visual Basic] PdfConformity | None | No | The PDF conformity.

Notes

This property specifies the conformity operations to perform. They provides more precise specifications than Conformance.

It can take a combination of the following values:

  • None – no operation.
  • NoJavaScriptAction – removes JavaScript actions. (included in PDF/A conformance.)
  • NoDocMetadataWithUnknownNamespace – removes document metadata with unknown XML namespaces. (included in PDF/A conformance.)


PdfConformityOperation ExcludedConformity Property. The excluded PDF conformity. ABCpdf .NET PDF Library.

ExcludedConformity Property

Type | Default | Read Only | Description
[C#] PdfConformity [Visual Basic] PdfConformity | None | No | The PDF conformity to exclude.

Notes

This property specifies the conformity operations not to perform. This property takes precedence over Conformity and Conformance.


PdfConformityOperation Options Property. The PDF update options. ABCpdf .NET PDF Library.

Options Property

Type | Default | Read Only | Description
[C#] PdfConformityOperationOptions [Visual Basic] PdfConformityOperationOptions | None | No | The PDF update options.

Notes

Options related to the way that the PDF may be changed as part of the operation.

It can take a combination of the following values:

  • None – no option.
  • KeepDocumentModDate – do not update the document modification date if it exists.


PdfConformityOperation Messages Property. The changes made to make the document conformant. ABCpdf .NET PDF Library.

Messages Property

Type | Default | Read Only | Description
[C#] IList<string> [Visual Basic] IList(Of String) | null | Yes | The changes made to make the document conformant.

Notes

To make a document conformant, it may need to be changed.

After the document has been changed, this property contains a list of the changes made to the document.


PdfConformityOperation Errors Property. The features within the document which could not be made conformant. ABCpdf .NET PDF Library.

Errors Property

Type | Default | Read Only | Description
[C#] IList<string> [Visual Basic] IList(Of String) | null | Yes | The features within the document which could not be made conformant.

Notes

To make a document conformant, it may need to be changed. However, not all features that are non-compliant can be changed.

After the document has been changed, this property contains a list of the features within the document which could not be made conformant.

Example

See the Save method.


PdfValidationOperation Class

Operation to produce conforming PDF files.

Note that this feature is only available under the ABCpdf Professional License.

System.Object
   WebSupergoo.ABCpdf12.Operations.PdfValidationOperation

Implements: IDisposable

Method | Description
Throws Exceptions Read | Read and validate an existing document.

Property | Description
Conformance | The PDF conformance.
Doc | The Doc object into which the document is read.
Errors | The validation errors.
Warnings | The validation warnings.


PdfValidationOperation Read Function. Read and validate an existing document. ABCpdf .NET PDF Library.

Read Function

Read and validate an existing document.

Syntax

[C#]
Doc Read(string path, XReadOptions options)
Doc Read(byte[] data, XReadOptions options)
Doc Read(Stream stream, XReadOptions options)
[Visual Basic]
Function Read(path As String, options As XReadOptions) As Doc
Function Read(data() As Byte, options As XReadOptions) As Doc
Function Read(stream As Stream, options As XReadOptions) As Doc

Throws Exceptions may throw Exception()

Params
Name | Description
path | The file path to PDF document.
data | The source PDF data.
stream | The source PDF stream.
options | The settings for the read. (May be null.)

Notes

This method reads and validates the document according to the Conformance property. Any conformance error or warning is reported in the Errors property or the Warnings property after the method finishes.

If the Doc property is null, the document is read into a new Doc object, which is returned; otherwise, the document is read into the value of the Doc property, which is returned.

Example

Here we validate a document against PDF/A-1b format.

[C#]

string thePath = Server.MapPath("pdfa.pdf");
using (PdfValidationOperation theOperation = new PdfValidationOperation()) {
  theOperation.Conformance = PdfConformance.PdfA1b;
  Doc doc = theOperation.Read(thePath, null);
  doc.Dispose();

  if (theOperation.Errors.Count > 0) {
    Console.WriteLine("Errors:");
    for (int i = 0; i < theOperation.Errors.Count; ++i)
      Console.WriteLine(theOperation.Errors[i]);
  }
  if (theOperation.Warnings.Count > 0) {
    if (theOperation.Errors.Count > 0)
      Console.WriteLine();
    Console.WriteLine("Warnings:");
    for (int i = 0; i < theOperation.Warnings.Count; ++i)
      Console.WriteLine(theOperation.Warnings[i]);
  }
}

[Visual Basic]
Dim thePath As String = Server.MapPath("pdfa.pdf")
Using theOperation As New PdfValidationOperation()
  theOperation.Conformance = PdfConformance.PdfA1b
  Dim doc As Doc = theOperation.Read(thePath, Nothing)
  doc.Dispose()

  If theOperation.Errors.Count > 0 Then
    Console.WriteLine("Errors:")
    Dim i As Integer = 0
    While i < theOperation.Errors.Count
      Console.WriteLine(theOperation.Errors(i))
      System.Threading.Interlocked.Increment(i)
    End While
  End If
  If theOperation.Warnings.Count > 0 Then
    If theOperation.Errors.Count > 0 Then
      Console.WriteLine()
    End If
    Console.WriteLine("Warnings:")
    Dim i As Integer = 0
    While i < theOperation.Warnings.Count
      Console.WriteLine(theOperation.Warnings(i))
      System.Threading.Interlocked.Increment(i)
    End While
  End If
End Using


PdfValidationOperation Conformance Property. The PDF conformance. ABCpdf .NET PDF Library.

Conformance Property

Type | Default | Read Only | Description
[C#] PdfConformance [Visual Basic] PdfConformance | Pdf | No | The PDF conformance.

Notes

This property specifies the conformance for validation.

It can take any of the following values:

  • Pdf – PDF conformance.
  • PdfA1b - PDF/A Part 1 Level B conformance.
  • PdfA1a - PDF/A Part 1 Level A conformance.
  • PdfA2b - PDF/A Part 2 Level B conformance.
  • PdfA2u - PDF/A Part 2 Level U conformance.
  • PdfA2a - PDF/A Part 2 Level A conformance.
  • PdfA3b - PDF/A Part 3 Level B conformance.
  • PdfA3u - PDF/A Part 3 Level U conformance.
  • PdfA3a - PDF/A Part 3 Level A conformance.

In general you will be wanting to validate against PdfA1b, PdfA2b or PdfA3b - PdfA3b is the parent standard of PdfA3u and PdfA3a.

ABCpdf cannot validate against PdfA2a or PdfA3a because the standard includes features which can only be determined by humans. For example it requires that images of text be tagged with the text that is displayed in the image.

Example

See the Read method.


PdfValidationOperation Doc Property. The Doc object into which the document is read. ABCpdf .NET PDF Library.

Doc Property

Type | Default | Read Only | Description
[C#] Doc [Visual Basic] Doc | Pdf | No | The Doc object into which the document is read.

Notes

This property specifies the target Doc object into which the document is read. If it is null, the Read method returns a new Doc object.


PdfValidationOperation Errors Property. The validation errors. ABCpdf .NET PDF Library.

Errors Property

Type | Default | Read Only | Description
[C#] IList<string> [Visual Basic] IList(Of String) | null | Yes | The validation errors.

Notes

This property holds the validation errors.

If any errors are emitted, then the document is not compliant.

Each PDF/A error indicates the problem and also the part of the specification which is not being adhered to.

Some errors indicate problem with the PDF rather than the PDF/A specification. In this case, no specification section is emitted.

For example, the following errors might be emitted.

Outline item 88's required Count is missing.
PDF/A-1 6.3.5 Font subsets: Type-0 font 198 is a font subset without CIDSet.
PDF/A-1 6.3.6 Font metrics: TrueType font 201's Widths is inconsistent with the embedded font program.
PDF/A-1 6.7.3 Document information dictionary: Metadata 15--Document "Producer" and XMP property pdf:Producer are different.

Example

See the Read method.


PdfValidationOperation Warnings Property. The validation warnings. ABCpdf .NET PDF Library.

Warnings Property

Type | Default | Read Only | Description
[C#] IList<string> [Visual Basic] IList(Of String) | null | Yes | The validation warnings.

Notes

This property holds the validation warnings.

Validation warnings indicate unexpected characteristics that neither PDF/A nor PDF regards as problems but ABCpdf regards as suspect.

For example, if the PDF header indicates PDF Version 1.4 but then a 1.5 feature is referenced in the PDF, a warning will be emitted.

Warnings are outside the PDF/A spec and so a warning does not indicate any problem with PDF/A compliance.

For example, the following warnings might be emitted.

Type-2 CIDFont descriptor 198 uses PDF 1.5 FontFamily.
Layout attribute object 187 uses PDF 1.5 BackgroundColor.
Layout attribute object 187 uses PDF 1.5 BorderColor.
Layout attribute object 187 uses PDF 1.5 BorderStyle.
Layout attribute object 187's BorderStyle is PDF 1.5 border style.

Example

See the Read method.


PageContents Class

Operation to analyse and manipulate the text in a set of pages.

System.Object
   WebSupergoo.ABCpdf12.Operations.PageContents

Method | Description
Throws Exceptions PageContents | PageContents Constructor.
AddLayers | Add a particular set of Layer objects from a particular Page.
Throws Exceptions AddPages | Add pages to be processed.

Property | Description
Throws Exceptions IncludeColor | Whether to include color information in the output.
Throws Exceptions IncludeAnnotations | Whether to include annotation and field text in the output.
Throws Exceptions RegenerateUnicode | Whether to attempt to regenerate missing Unicode tables from embedded fonts.


PageContents PageContents Function. PageContents Constructor. ABCpdf .NET PDF Library.

PageContents Constructor

PageContents Constructor.

Syntax

[C#]
PageContents(Doc doc)

[Visual Basic]
Sub New(doc As Doc)

Throws Exceptions may throw NullReferenceException()

Params
Name | Description
doc | The PDF Document

Notes

Create a PageContents to hold a set of pages that need to be analysed.

If the doc is null then an exception will be raised.


PageContents AddLayers Function. Add a particular set of Layer objects from a particular Page. ABCpdf .NET PDF Library.

AddLayers Function

Add a particular set of Layer objects from a particular Page

Syntax

[C#]
void AddLayers(Page page, Layer[] layers)

[Visual Basic]
Sub AddLayers(page As Page, layers() As Layer)

Params
Name | Description
page | The page on which the provided layers are located.
layers | The layers to be added.

Notes

Add a particular set of Layer objects from a particular Page.

This is an alternative to the AddPages overloads. It allows specific parts of a page to be added to the operation rather than requiring the operation to be applied to the entirety of a page.


PageContents AddPages Function. Add pages to be processed. ABCpdf .NET PDF Library.

AddPages Function

Add pages to be processed.

Syntax

[C#]
void AddPages()
void AddPages(int pageNumber)
void AddPages(int startPageNumber, int endPageNumber)

[Visual Basic]
Sub AddPages()
Sub AddPages(pageNumber As Integer)
Sub AddPages(startPageNumber As Integer, endPageNumber As Integer)

Throws Exceptions may throw Exception()

Params
Name | Description
pageNumber | The number of the page to be processed. This is a one based index.
startPageNumber | The number of the first page to be processed. This is a one based index.
endPageNumber | The number of the last page to be processed. This is a one based index.

Notes

This method adds pages that need to be processed. If the provided page numbers are incorrect then an exception will be raised.

The parameterless version of this function adds all the pages in the document. If you are only interested in a subsection of the document you can specify individual pages or a range of pages using the overloads. You can call this function multiple times with multiple sets of pages to get the precise selection that you require.

Adding pages is a fairly expensive operation. For this reason if you are performing multiple types of analysis on the same set of pages then you will probably want to share one PageContents object between them.

Note that the PageContents object is a cache of the current document content. Thus it may be invalidated by a call that remaps or replaces existing content in the document. For this reason you should not call Doc.Save, Doc.GetData or Doc.Flatten while using an operation that contains a PageContents object.

Example

See TextOperation.Group.


PageContents IncludeColor Property. Whether to include color information in the output. ABCpdf .NET PDF Library.

IncludeColor Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to include color information in the output.

Throws Exceptions may throw Exception()

Notes

Whether to include color information in the output.

This property must not be changed after the AddPages method has been called. To do so will result in an exception being raised.


PageContents IncludeAnnotations Property. Whether to include annotation and field text in the output. ABCpdf .NET PDF Library.

IncludeAnnotations Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to include annotation and field text in the output.

Throws Exceptions may throw Exception()

Notes

Whether to include annotation and field text in the output.

This property must not be changed after the AddPages method has been called. To do so will result in an exception being raised.


PageContents RegenerateUnicode Property. Whether to attempt to regenerate missing Unicode tables from embedded fonts. ABCpdf .NET PDF Library.

RegenerateUnicode Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to attempt to regenerate missing Unicode tables from embedded fonts.

Throws Exceptions may throw Exception()

Notes

Whether to attempt to regenerate missing Unicode tables from embedded fonts.

For details of the type of fix that is attempted on non-conforming fonts please see the FontObject.RegenerateToUnicode method.

This property must not be changed after the AddPages method has been called. To do so will result in an exception being raised.


TextOperation Class

Operation to analyse and manipulate the text in a set of pages.

System.Object
   WebSupergoo.ABCpdf12.Operations.TextOperation

Method | Description
Throws Exceptions TextOperation | TextOperation Constructor.
Throws Exceptions GetText | Get all the text in the page contents.
Throws Exceptions Select | Select a range of text in the document.
Group | Group a range of text fragments into a set of lines.

Property | Description
ClippedTextTolerance | How much overlap to require clipped text to have before it is defined as visible.
Direction | The default direction for text.
Hyphenation | Whether to de-hyphenate words that appear to be split across two lines.
NativeColors | Whether to provide native colors such as CMYK, separations and spot colors, or whether to convert all colors to RGB.
PageContents | The pages to be operated upon.
ShowArtifactText | Whether to show text content that is marked as an artifact.
ShowClippedText | Whether to show text which is invisible because it is affected by a clip path.
ShowObscuredText | Whether to show overlapping repeated text content.
Substitutions | A set of character to string substitutions used for translating typographic characters like ligatures into more normal text.
TabAffinity | The minimum distance at which two text fragments will be assumed to be part of separate tab groups.
TabChar | The character used to separate out tab groups when GetText is called.
TextObjects | Whether to get information on the BT and ET text object markers used to contain and group text operators.
WordAffinity | The minimum distance at which two fragments will be assumed to be part of one undivided word.


TextOperation TextOperation Function. TextOperation Constructor. ABCpdf .NET PDF Library.

TextOperation Constructor

TextOperation Constructor.

Syntax

[C#]
TextOperation(Doc doc)

[Visual Basic]
Sub New(doc As Doc)

Throws Exceptions may throw Exception()

Params
Name | Description
doc | The PDF Document

Notes

Create a TextOperation for text analysis. If the doc is null then an exception will be raised.

Example

See the Group function.


TextOperation GetText Function. Get all the text in the page contents. ABCpdf .NET PDF Library.

GetText Function

Get all the text in the page contents.

Syntax

[C#]
string GetText()
string GetText(XRect rect, int pageNumber)
string GetText(XRect[] rects, int[] pageNumbers)

[Visual Basic]
Function GetText() As String
Function GetText(rect As XRect, pageNumber As Integer) As String
Function GetText(rects As XRect(), pageNumbers As Integer()) As String

Throws Exceptions may throw Exception()

Params
Name | Description
rect | The rectangle from which to return text.
rects | A set of rectangles forming a union from which to return text.
pageNumber | The page number - a one based index.
Return | The text.

Notes

This method returns the text of the content that has been assigned via the PageContents. If the PageContents is null then an exception will be raised.

The overloads of this function allow you to select an area of interest in terms of an area defined by single rectangle or by a union of multiple rectangles. They also allow you to select a subset of pages from which text should be returned. This page array is a set of page numbers - one based indexes - for which order is not important. Passing null for these parameters defaults to the entire page and the entire set of available pages respectively.

The process of getting the text involves scanning through the text fragments in the document and joining them up dependent on their positions and sizes. The result is a standard string with line ends where the line ends in the document have been found.

If there are parts of this string that you are interested in you can use the offset and length of the selections in conjunction with the Select method to identify those portions within the document.

Example

See the Group function.


TextOperation Select Function. Select a range of text in the document. ABCpdf .NET PDF Library.

Select Function

Select a range of text in the document.

Syntax

[C#]
IList<TextFragment> Select(int startIndex, int length)
[Visual Basic]
Function Select(startIndex As Integer, length As Integer) As IList<TextFragment>

Throws Exceptions may throw Exception()

Params
Name | Description
startIndex | The start index for the selection as related to the string returned by the GetText method.
length | The length for the selection as related to the string returned by the GetText method.
Return | Returns a list of find matches encompassing the selected text.

Notes

Select a range of text in the document. If GetText has not been called previously then an exception will be raised.

This function is purposely designed to be similar to the String.Substring function. The concept is that you can use the text provided via the GetText method to identify pieces of text you are interested in. Then using the offset and length of the pieces you can select the actual text in the document.

The selection specifies the precise set of text fragments in the document. Each fragment has an area, some text and relates back to a text drawing operation within the content stream of the page. Applying the Group function to these fragments can group connected fragments into connected parts.

Example

See the Group function.


TextOperation Group Function. Group a range of text fragments into a set of lines. ABCpdf .NET PDF Library.

Group Function

Group a range of text fragments into a set of lines.

Syntax

[C#]
IList<TextGroup> Group(List<TextFragment> fragments)
[Visual Basic]
Function Group(fragments As List<TextFragment>) As IList<TextGroup>

Params
Name | Description
fragments | The fragments to be grouped.
Return | Returns a list of groups defining the words.

Notes

Group a range of text fragments into a set of lines.

Calling Select will return a list of TextFragments corresponding to the section of text you are interested in. However each TextFragment may only make up a small portion of a word. Calling this function allows you to group connected fragments into continuous sections with a common rectangular area.

Strictly speaking this grouping does not always correspond to lines. For example two fragments on the same line, separated by a large distance, will not be considered contiguous. However for most purposes the two broadly correspond.

Example

Here we highlight a set of words in a source document by drawing a rectangle around each one.

[C#]

string theSrc = Server.MapPath("mypics/Acrobat.pdf");
string theDst = Server.MapPath("HighlightedText.pdf");
string searchString = "Acrobat";
using (Doc doc = new Doc()) {
  doc.Read(theSrc);
  TextOperation op = new TextOperation(doc);
  op.PageContents.AddPages();
  string text = op.GetText();
  int pos = 0;
  while (true) {
    pos = text.IndexOf(searchString, pos, StringComparison.CurrentCultureIgnoreCase);
    if (pos < 0)
      break;
    IList<TextFragment> theSelection = op.Select(pos, searchString.Length);
    IList<TextGroup> theGroups = op.Group(theSelection);
    foreach (TextGroup theGroup in theGroups) {
      doc.Rect.String = theGroup.Rect.String;
      doc.FrameRect();
    }
    pos += searchString.Length;
  }
  doc.Save(theDst);
}

[Visual Basic]
Dim theSrc As String = Server.MapPath("mypics/Acrobat.pdf")
Dim theDst As String = Server.MapPath("HighlightedText.pdf")
Dim searchString As String = "Acrobat"
Using doc As New Doc()
  doc.Read(theSrc)
  Dim op As New TextOperation(doc)
  op.PageContents.AddPages()
  Dim text As String = op.GetText()
  Dim pos As Integer = 0
  While True
    pos = text.IndexOf(searchString, pos, StringComparison.CurrentCultureIgnoreCase)
    If pos < 0 Then
      Exit While
    End If
    Dim theSelection As IList(Of TextFragment) = op.[Select](pos, searchString.Length)
    Dim theGroups As IList(Of TextGroup) = op.Group(theSelection)
    For Each theGroup As TextGroup In theGroups
      doc.Rect.String = theGroup.Rect.[String]
      doc.FrameRect()
    Next
    pos += searchString.Length
  End While
  doc.Save(theDst)
End Using


TextOperation ClippedTextTolerance Property. How much overlap to require clipped text to have before it is defined as visible. ABCpdf .NET PDF Library.

ClippedTextTolerance Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | How much overlap to require clipped text to have before it is defined as visible.

Notes

How much overlap to require clipped text to have before it is defined as visible.

If text is partially clipped then one needs to decide whether each character is visible or not. The default way this is done is by finding the center of each character and seeing if that is visible. This affects text retrieval when the ShowClippedText property is set to false and also when passing an area of interest via GetText.

Sometimes you may wish to be more selective about whether text is returned or not. The ClippedTextTolerance property allows you to define a rectangular area in the center of the character, the entire of which must be visible for the character to be visible. The width and height of the rectangular area are determined by the value of this property.

For example a value of zero represents a point in the center. A value of a half represents a centered rectangle half the linear dimensions of the character bounding box. A value of one represents the entire of the character bounding box from the bottom of any possible descenders to the top of any possible ascenders.


TextOperation Direction Property. The default direction for text. ABCpdf .NET PDF Library.

Direction Property

Type | Default | Read Only | Description
[C#] XTextStyle.DirectionType [Visual Basic] XTextStyle.DirectionType | DirectionType.Default | No | The default direction for text.

Notes

This setting allows you to accommodate bi-directional languages such as Hebrew and Arabic.

In general the text operation assumes that text will be laid out in a left-to-right manner. By changing this property you can allow text to be grouped in both a left-to-right and right-to-left direction.

The value you provide indicates the default starting direction for bi-directional text within the document.


TextOperation Hyphenation Property. Whether to de-hyphenate words that appear to be split across two lines. ABCpdf .NET PDF Library.

Hyphenation Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to de-hyphenate words that appear to be split across two lines.

Notes

Whether to de-hyphenate words that appear to be split across two lines.

If de-hyphenation is enabled then the hyphen will be removed and the second half of the hypenated word will be migrated to the end of the previous line.


TextOperation NativeColors Property. Whether to provide native colors such as CMYK, separations and spot colors, or whether to convert all colors to RGB. ABCpdf .NET PDF Library.

NativeColors Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to provide native colors such as CMYK, separations and spot colors, or whether to convert all colors to RGB

Notes

Whether to provide native colors such as CMYK, separations and spot colors, or whether to convert all colors to RGB.


TextOperation PageContents Property. The pages to be operated upon. ABCpdf .NET PDF Library.

PageContents Property

Type | Default | Read Only | Description
[C#] PageContents [Visual Basic] PageContents | n/a | No | The pages to be operated upon.

Notes

This property specifies the pages to be operated upon.

Adding pages to a PageContents object can be a costly procedure taking a noticable amount of time.

So if you are performing a set of analysis operations on the same pages it can be more efficient to assign the PageContents from one to another rather than repeatedly re-populate from the original document.


TextOperation ShowArtifactText Property. Whether to show text content that is marked as an artifact. ABCpdf .NET PDF Library.

ShowArtifactText Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to show text content that is marked as an artifact.

Notes

Whether to show text content that is marked as an artifact.

By default all text is returned, including text that may not be relevant to the user because it is tagged as an artifact. In cases where you are extracting text you may wish to ignore artifacts since, by definition, they are irrelevant. In cases where you are changing text you typically want to include artifacts as, while they offer no semantic information, they still have an appearance that may need updating.

Using this setting you control whether you want this text returned by GetText.


TextOperation ShowClippedText Property. Whether to show text which is invisible because it is affected by a clip path. ABCpdf .NET PDF Library.

ShowClippedText Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to show text which is invisible because it is affected by a clip path.

Notes

Whether to show text which is invisible because it is affected by a clip path.

By default all text is returned. This includes text that may not be visible to the user because it has been affected by a clipping path. Using this setting you control whether you want this text returned by GetText.


TextOperation ShowObscuredText Property. Whether to show overlapping repeated text content. ABCpdf .NET PDF Library.

ShowObscuredText Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to show overlapping repeated text content.

Notes

Whether to show overlapping repeated text content.

Overlapping repeated text content is most typically used for a synthetic bold effect. While the multiple copies of the text provide an appropriate bold-like look, they are not semantically valid since they appear as one unit. In cases where you are looking at the semantic meaning of the text, you typically only want the initial text item. However if you are replacing text then you may wish to include all the text items so that when you change one you also change the others.

Using this setting you control whether you want this text returned by GetText.


TextOperation Substitutions Property. A set of character to string substitutions used for translating typographic characters like ligatures into more normal text. ABCpdf .NET PDF Library.

Substitutions Property

Type | Default | Read Only | Description
[C#] IDictionary<char, string> [Visual Basic] IDictionary<char, string> | n/a | No | A set of character to string substitutions used for translating typographic characters like ligatures into more normal text.

Notes

A set of character to string substitutions used for translating typographic characters like ligatures into more normal text.

PDF text often includes typographic characters that are uncommon in normal text. For example these may include ligatures such as 'ff' or 'fl'. They may include different types of dash such as n-dash and m-dash. They may include curly/smart single and double quote characters. For the purposes of text extraction and searching it is generally desirable to replace these characters with their more common equivalents.

The default settings for this operation include the substitutions of the types of characters detailed above. The default settings are liable to change so if it is important that your settings remain constant between different versions of ABCpdf you should assign your own values.


TextOperation TabAffinity Property. The minimum distance at which two text fragments will be assumed to be part of separate tab groups. ABCpdf .NET PDF Library.

TabAffinity Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 1.0 | No | The minimum distance at which two text fragments will be assumed to be part of separate tab groups

Notes

The minimum distance at which two text fragments will be assumed to be part of separate tab groups.

This value is specified in terms of a fraction of the current font size.


TextOperation TabChar Property. The character used to separate out tab groups when GetText is called. ABCpdf .NET PDF Library.

TabChar Property

Type | Default Value | Read Only | Description
[C#] char [Visual Basic] Char | Space (0x20) | No | The character used to separate out tab groups when GetText is called

Notes

The character used to separate out tab groups when GetText is called.


TextOperation TextObjects Property. Whether to get information on the BT and ET text object markers used to contain and group text operators. ABCpdf .NET PDF Library.

TextObjects Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to get information on the BT and ET text object markers used to contain and group text operators

Notes

Whether to get information on the BT and ET text object markers used to contain and group text operators.


TextOperation WordAffinity Property. The minimum distance at which two fragments will be assumed to be part of one undivided word. ABCpdf .NET PDF Library.

WordAffinity Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0.15 | No | The minimum distance at which two fragments will be assumed to be part of one undivided word.

Notes

The minimum distance at which two text fragments will be assumed to be part of one undivided word. This value is specified in terms of a fraction of the font size.

PDF text does not always include spaces. It is not uncommon for spaces simply to be indicated by the positions at which characters are drawn. The fact that two text fragments are drawn some distance from each other visually indicates that there is a space between them. When extracting text from a PDF one needs to decide how far apart text fragments can be, before one assumes that they should be separated by a space.

This property allows you to control this spacing. Increasing the property will tend to reduce the cohesiveness of fragments resulting in fewer spaces. Decreasing it will tend to increase the cohesiveness resulting in more spaces.

Broadly speaking the property is defined as the proportion of the font size at which distance a space will be assumed to be present. The precise mechanism is a little more complicated than this as it needs to take account of vertical distance and of varying font sizes between fragments. However for most purposes the broad definition will be acceptable.


TextFragment Class

A fragment of text as it appears in a document.

Each TextFragment spans a part of a PDF stream drawing operator. The part may be the entire of the text drawn by the operator or it may be a section of the text within that operator.

For example the PDF text drawing operator "(Once upon a time) Tj" draws that text. If you search for the word "upon" the TextFragment which is returned will reference the complete operator via the StreamOffset and StreamLength properties but properties like the Text and Rect will span only the word "upon" within that operator.

System.Object
   WebSupergoo.ABCpdf12.Operations.TextFragment

Method | Description
Focus | Prepare document for drawing at the fragment location.

Property | Description
Font | The font object used for drawing this text fragment.
FontColor | The color used for drawing this text fragment.
FontColorSpace | The ColorSpace used for drawing this text fragment.
FontSize | The effective font size used for drawing this text fragment.
FontObliqueAngle | The skew angle of the font as used for oblique styles to simulate italic.
RenderingMode | The text rendering mode used for drawing this text fragment.
PageID | The ID of the Page on which this text fragment is located.
StreamID | The Stream ID of the content stream in which this text fragment is located.
StreamOffset | The offset within the content stream to the start of the drawing operation that contains this fragment.
StreamLength | The length within the content stream of the drawing operation that contains this fragment.
TextOffset | The offset to the the Text of this fragment.
TextSpanIndex | The zero based index of the drawing operator text array item that contains this fragment. For non text array operators this value is zero.
Rect | The rectangle that contains the text of the fragment.
Rotation | The angle of rotation of the fragment in degrees.
Text | The text of the fragment. A fragment may span only a portion of the complete text drawing operator.
RawText | The text specified in the drawing operator or the text array item of the drawing operator.


TextFragment Focus Function. Prepare document for drawing at the fragment location. ABCpdf .NET PDF Library.

Focus Function

Prepare document for drawing at the fragment location.

Syntax

[C#]
void Focus()

[Visual Basic]
Sub Focus()

Params
Name | Description
none |

Notes

Use this method to focus on the fragment.

This prepares the document for drawing at the fragment location.

After calling this function you can add content overlaying the fragment. For example you might call Doc.FillRect to overlay it.

Text is drawn at a height of one point, using a transformation matrix to scale it up. So, in general, after calling this method, the Doc.Rect Height will be 1.0.

The Doc.Page, Doc.Rect and Doc.Transform may all be changed as a result of calling this method.


TextFragment Font Property. The font object used for drawing this text fragment. ABCpdf .NET PDF Library.

Font Property

Type | Default | Read Only | Description
[C#] FontObject [Visual Basic] FontObject | n/a | Yes | The font object used for drawing this text fragment.

Notes

The font object used for drawing this text fragment.

The font object can be used to find information about the font.


TextFragment FontColor Property. The color used for drawing this text fragment. ABCpdf .NET PDF Library.

FontColor Property

Type | Default | Read Only | Description
[C#] XColor [Visual Basic] XColor | n/a | Yes | The color used for drawing this text fragment.

Notes

The color used for drawing this text fragment.

Note that the PageContents.IncludeColor property must be set for this to be available. This is because processing color information adds a noticeable overhead that can be avoided for many text operations. If the property is not set then all text will be reported as black.


TextFragment FontSize Property. The effective font size used for drawing this text fragment. ABCpdf .NET PDF Library.

FontSize Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | n/a | Yes | The effective font size used for drawing this text fragment.

Notes

The effective font size used for drawing this text fragment.

The effective size is the normal measure that you will want to use as it describes the size the font appears on the page. It combines the effect of the specified font size with any transformation matrices which may enlarge or shrink the text.


TextFragment FontObliqueAngle Property. The skew angle of the font as used for oblique styles to simulate italic. ABCpdf .NET PDF Library.

FontObliqueAngle Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | n/a | Yes | The skew angle of the font as used for oblique styles to simulate italic.

Notes

The skew angle of the font as used for oblique styles to simulate italic. Measured in degrees clockwise from the vertical.

An italic style is not the same as an oblique style though the two are often confused. An italic style contains different glyphs to a regular style and these glyphs often appear slanted. If a true italic style is not available one can be synthesized by applying a skew to tilt the characters to the right. This is known as an oblique style.

A typical skew angle is between ten and fifteen degrees. So, while it is an arbitrary judgment, any angle above about eight degrees may be regarded as an oblique style.


TextFragment PageID Property. The ID of the Page on which this text fragment is located. ABCpdf .NET PDF Library.

PageID Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The ID of the Page on which this text fragment is located.

Notes

The ID of the Page on which this text fragment is located.

You can assign this ID to the Doc.Page or you can use it with the ObjectSoup to retrieve a Page object.


TextFragment StreamID Property. The Stream ID of the content stream in which this text fragment is located. ABCpdf .NET PDF Library.

StreamID Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The Stream ID of the content stream in which this text fragment is located.

Notes

The Stream ID of the content stream in which this text fragment is located.

You can use this ID with the ObjectSoup to retrieve a StreamObject.


TextFragment StreamOffset Property. The offset within the content stream to the start of the drawing operation that contains this fragment. ABCpdf .NET PDF Library.

StreamOffset Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The offset within the content stream to the start of the drawing operation that contains this fragment.

Notes

The offset within the content stream to the start of the drawing operation that contains this fragment.

Each TextFragment spans a part of a PDF stream drawing operator. This property provides the offset within the uncompressed stream, to the start of that drawing operator.


TextFragment StreamLength Property. The length within the content stream of the drawing operation that contains this fragment. ABCpdf .NET PDF Library.

StreamLength Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The length within the content stream of the drawing operation that contains this fragment.

Notes

The length within the content stream of the drawing operation that contains this fragment.

Each TextFragment spans a part of a PDF stream drawing operator. This property provides the length from the offset within the uncompressed stream, to the end of that drawing operator.


TextFragment TextSpanIndex Property. The zero based index of the drawing operator text array item that contains this fragment. For non text array operators this value is zero. ABCpdf .NET PDF Library.

TextSpanIndex Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The zero based index of the drawing operator text array item that contains this fragment. For non text array operators this value is zero.

Notes

The zero based index of the drawing operator text array item that contains this fragment. For non text array operators this value is zero.

Each TextFragment spans a part of a PDF stream drawing operator. The part may be the entire of the text drawn by the operator or it may be a section of the text within that operator.

Some text drawing operators allow multiple items of text to be drawn. This provides a useful shorthand to allow character placement to be adjusted within a string. For example the following command will draw two items of text with a wide space (specified by the number) between the words.

[ (Breaking) 4000 (Bad) ] TJ

Each TextFragment only corresponds to one of the strings within such an array. This property is a zero based index which tells you which one. For example in the above example, if the TextFragment corresponded to "Bad", then the TextSpanIndex would be equal to one.

For text drawing operations which do not involve arrays this value will always be zero.


TextFragment TextOffset Property. The offset to the the Text of this fragment. ABCpdf .NET PDF Library.

TextOffset Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Int32 | n/a | Yes | The offset to the the Text of this fragment.

Notes

The character offset in the RawText to the the Text of this fragment.

Each TextFragment spans a part of a PDF stream drawing operator. The part may be the entire of the text drawn by the operator or it may be a section of the text within that operator.

This property reflects the offset to the Text of the TextFragment - the selected portion within the RawText of the TextFragment. An offset may be needed because the Text may not be unique within the RawText.

For example a TextFragment may represent the letter 'a' in a text operator which draws "abracadabra". Without the offset there is no way to know which 'a' the fragment refers to.


TextFragment Rect Property. The rectangle that contains the text of the fragment. ABCpdf .NET PDF Library.

Rect Property

Type | Default | Read Only | Description
[C#] XRect [Visual Basic] XRect | n/a | Yes | The rectangle that contains the text of the fragment.

Notes

The rectangle that contains the text of the fragment.

Each TextFragment spans a part of a PDF stream drawing operator. The part may be the entire of the text drawn by the operator or it may be a section of the text within that operator.

This property reflects the area covered by the TextFragment.

This rectangle is encoded in PDF coordinates rather than any abstracted coordinate space.


TextFragment Rotation Property. The angle of rotation of the fragment in degrees. ABCpdf .NET PDF Library.

Rotation Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The angle of rotation of the fragment in degrees.

Notes

The angle of rotation of the fragment in degrees.


TextFragment Text Property. The text of the fragment. A fragment may span only a portion of the complete text drawing operator. ABCpdf .NET PDF Library.

Text Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | n/a | Yes | The text of the fragment. A fragment may span only a portion of the complete text drawing operator.

Notes

The text of the fragment. A fragment may span only a portion of the complete text drawing operator.

Each TextFragment spans a part of a PDF stream drawing operator. The part may be the entire of the text drawn by the operator or it may be a section of the text within that operator.

This property reflects the text of the TextFragment - the selected portion within the drawing operator.


TextFragment RawText Property. The text specified in the drawing operator or the text array item of the drawing operator. ABCpdf .NET PDF Library.

RawText Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | n/a | Yes | The text specified in the drawing operator or the text array item of the drawing operator.

Notes

The text of the drawing operator.

Each TextFragment spans a part of a PDF stream drawing operator. The part may be the entire of the text drawn by the operator or it may be a section of the text within that operator.

This property reflects the entire text of the drawing operator. If the drawing operator is a text array operator then this property reflects the text of the portion of the array referenced by the TextSpanIndex property.


TextFragment FontColorSpace Property. The ColorSpace used for drawing this text fragment. ABCpdf .NET PDF Library.

FontColorSpace Property

Type | Default Value | Read Only | Description
[C#] ColorSpace [Visual Basic] ColorSpace | n/a | Yes | The ColorSpace used for drawing this text fragment

Notes

The ColorSpace used for drawing this text fragment.


TextFragment RenderingMode Property. The text rendering mode used for drawing this text fragment. ABCpdf .NET PDF Library.

RenderingMode Property

Type | Default | Read Only | Description
[C#] TextRenderingMode [Visual Basic] TextRenderingMode | n/a | Yes | The text rendering mode used for drawing this text fragment.

Notes

The text rendering mode used for drawing this text fragment.

The TextRenderingMode enumeration may take the following values:

  • Fill - Fill text - the default.
  • Stroke - Stroke glyph outlines.
  • FillAndStroke - Fill text and stroke glyph outlines.
  • Invisible - Neither fill nor stroke.
  • FillAndClip - Fill text then add to clipping path.
  • StrokeAndClip - Stroke text then add to clipping path.
  • FillStrokeAndClip - Fill and stroke text then add to clipping path.
  • Clip - Add to clipping path.


TextGroup Class

A group of text fragments that belong together.

The essence of a TextFragment is that it spans only a small section of text. As such it may be necessary to group fragments together. For example take the following PDF drawing instruction sequence:

[ (There) 400 (was) 400 (Eru,) 300 (the One) ] TJ

This sequence wiill write out the text "There was Eru, the One". There are no space characters here and the spacing is indicated by character placement (the numbers) instead.

Selecting the phrase "was Eru" will result in two TextFragments the first of which will correspond to "was" and the second to "Eru". The two TextFragment.Rect properties are not connected because there is a 400 wide gap between them. Also there is no space character so simply concatenating the text in the fragments would result in "wasEru".

Using the TextOperation.Group method will group them into one TextGroup with the Text "was Eru" (space inserted) and a Rect corresponding to the complete selected phrase.

System.Object
   WebSupergoo.ABCpdf12.Operations.TextGroup

Method | Description
none |

Property | Description
PageID | The ID of the Page on which this group is located.
Rect | The rectangle that contains the group.
Text | The text of the group.
TextFragments | The text fragments in the group.


TextGroup PageID Property. The ID of the Page on which this group is located. ABCpdf .NET PDF Library.

PageID Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The ID of the Page on which this group is located.

Notes

The ID of the Page on which this group is located.

You can assign this ID to the Doc.Page or you can use it with the ObjectSoup to retrieve a Page object.


TextGroup Rect Property. The rectangle that contains the group. ABCpdf .NET PDF Library.

Rect Property

Type | Default | Read Only | Description
[C#] XRect [Visual Basic] XRect | n/a | Yes | The rectangle that contains the group.

Notes

The rectangle that contains the group.

This rectangle is encoded in PDF coordinates rather than any abstracted coordinate space.


TextGroup Text Property. The text of the group. ABCpdf .NET PDF Library.

Text Property

Type | Default | Read Only | Description
[C#] string [Visual Basic] String | n/a | Yes | The text of the group.

Notes

The text of the group.

The text of the group is not necessarily the same as the concatenated text of the TextFragments as join characters such as spaces may be inserted where characters are separated by large gaps.


TextGroup TextFragments Property. The text fragments in the group. ABCpdf .NET PDF Library.

TextFragments Property

Type | Default | Read Only | Description
[C#] IList<TextFragment> [Visual Basic] IList<TextFragment> | n/a | Yes | The text fragments in the group.

Notes

The text fragments in the group.

.


ImageOperation Class

Operation to analyze the placement of raster images (bitmaps) in a document.

System.Object
   WebSupergoo.ABCpdf12.Operations.ImageOperation

Method | Description
ImageOperation | ImageOperation Constructor.
Throws Exceptions GetImageProperties | Get the image information for all the raster images.

Property | Description
IncludeAll | Whether to include all images in the analysis to allow the detection of orphans.
PageContents | The pages to be operated upon.


ImageOperation ImageOperation Function. ImageOperation Constructor. ABCpdf .NET PDF Library.

ImageOperation Constructor

ImageOperation Constructor.

Syntax

[C#]
ImageOperation(Doc doc)

[Visual Basic]
Sub New(doc As Doc)

Params
Name | Description
doc | The PDF Document

Notes

Create a ImageOperation for text analysis. If the doc is null then an exception will be raised.


ImageOperation GetImageProperties Function. Get the image information for all the raster images. ABCpdf .NET PDF Library.

GetImageProperties Function

Get the image information for all the raster images.

Syntax

[C#]
IList<ImageProperties> GetImageProperties()
[Visual Basic]
Function GetImageProperties() As IList<ImageProperties>

Throws Exceptions may throw Exception()

Params
Name | Description
Return | A collection of all the image properties..

Notes

Get the image information for all the raster images. If the PageContents is null then an exception will be raised.

After retrieving image properties you can iterate through them to find out information about what images there are and how they are placed in the document. Much like HTML, PDF allows a divorce between the image and the placement of that image. So you may have one PixMap which is drawn multiple times at multiple sizes in different locations within the document.

Example

Here we highlight a set of images in a source document by drawing a red rectangle around each one.

[C#]

string theSrc = Server.MapPath("mypics/Acrobat.pdf");
string theDst = Server.MapPath("HighlightedImages.pdf");
using (Doc doc = new Doc()) {
  doc.Read(theSrc);
  doc.Color.SetRgb(255, 0, 0);
  doc.Width = 0.1;
  ImageOperation op = new ImageOperation(doc);
  op.PageContents.AddPages();
  IList<ImageProperties> images = op.GetImageProperties();
  foreach (ImageProperties pl in images) {
    foreach (ImageRendition plc in pl.Renditions) {
      plc.Focus();
      doc.FrameRect();
    }
  }
  doc.Save(theDst);
}

[Visual Basic]
Dim theSrc As String = Server.MapPath("mypics/Acrobat.pdf")
Dim theDst As String = Server.MapPath("HighlightedImages.pdf")
Using doc As New Doc()
  doc.Read(theSrc)
  doc.Color.SetRgb(255, 0, 0)
  doc.Width = 0.1
  Dim op As New ImageOperation(doc)
  op.PageContents.AddPages()
  Dim images As IList(Of ImageProperties) = op.GetImageProperties()
  For Each pl As ImageProperties In images
    For Each plc As ImageRendition In pl.Renditions
      plc.Focus()
      doc.FrameRect()
    Next
  Next
  doc.Save(theDst)
End Using


ImageOperation IncludeAll Property. Whether to include all images in the analysis to allow the detection of orphans. ABCpdf .NET PDF Library.

IncludeAll Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to include all images in the analysis to allow the detection of orphans.

Notes

Whether to include all images in the analysis to allow the detection of orphans.

By default the ImageOperation will go through the pages defined in the PageContents looking at all the images that are used. However it is possible to include an image in a document yet never use it. This kind of orphan will not be detected using this method.

To allow the detection of orphans this property can be used to search the entire document and reference any image that exists. Images that are not referenced on the page will appear in the analysis as an ImageProperties item with no ImageRenditions.

However be aware that referenced images may use an unreferenced image as a mask or soft mask so just because an image is not referenced does not necessarily mean it is unused. To detect orphans you need to build a list of unreferenced images and then remove from that any images which appear as the PixMap.Mask or PixMap.SMask of a referenced image.


ImageOperation PageContents Property. The pages to be operated upon. ABCpdf .NET PDF Library.

PageContents Property

Type | Default | Read Only | Description
[C#] PageContents [Visual Basic] PageContents | n/a | No | The pages to be operated upon.

Notes

This property specifies the pages to be operated upon.

Adding pages to a PageContents object can be a costly procedure taking a noticable amount of time.

So if you are performing a set of analysis operations on the same pages it can be more efficient to assign the PageContents from one to another rather than repeatedly re-populate from the original document.


ImageProperties Class

A class that represents one raster image (bitmap) in a document.

System.Object
   WebSupergoo.ABCpdf12.Operations.ImageProperties

Method | Description
none |

Property | Description
PixMap | The PixMap object associated with the image.
Renditions | The set of renditions of the image at different locations within the document.
Dpi | The resolution of the image in dots per inch.
DpiX | The horizontal resolution of the image in dots per inch.
DpiY | The vertical resolution of the image in dots per inch.


ImageProperties PixMap Property. The PixMap object associated with the image. ABCpdf .NET PDF Library.

PixMap Property

Type | Default | Read Only | Description
[C#] PixMap [Visual Basic] PixMap | n/a | Yes | The PixMap object associated with the image.

Notes

The PixMap object associated with the image.


ImageProperties Renditions Property. The set of renditions of the image at different locations within the document. ABCpdf .NET PDF Library.

Renditions Property

Type | Default | Read Only | Description
[C#] IList<ImageRendition> [Visual Basic] IList<ImageRendition> | n/a | Yes | The set of renditions of the image at different locations within the document.

Notes

The set of renditions of the image at different locations within the document.

Much like HTML, PDF allows a divorce between the image and the placement of that image. So you may have one bitmap which is drawn multiple times at multiple sizes in different locations within the document.


ImageProperties Dpi Property. The resolution of the image in dots per inch. ABCpdf .NET PDF Library.

Dpi Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | n/a | Yes | The resolution of the image in dots per inch.

Notes

The resolution of the image in dots per inch.


ImageProperties DpiX Property. The horizontal resolution of the image in dots per inch. ABCpdf .NET PDF Library.

DpiX Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | n/a | Yes | The horizontal resolution of the image in dots per inch.

Notes

The horizontal resolution of the image in dots per inch.


ImageProperties DpiY Property. The vertical resolution of the image in dots per inch. ABCpdf .NET PDF Library.

DpiY Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | n/a | Yes | The vertical resolution of the image in dots per inch.

Notes

The vertical resolution of the image in dots per inch.


ImageRendition Class

A class that represents one image placement in a document.

System.Object
   WebSupergoo.ABCpdf12.Operations.ImageRendition

Method | Description
Focus | Focus the document on the location of the image placement.

Property | Description
PageID | The ID of the Page on which the image is placed.
Matrix | The transformation matrix for the placement of the image.
BoundingBox | The bounding rectangle for the placement of the image.
Dpi | The resolution of the image in dots per inch.
DpiX | The horizontal resolution of the image in dots per inch.
DpiY | The vertical resolution of the image in dots per inch.
StreamObject | The StreamObject in which the image draw operation is contained.
StreamOffset | The offset within the uncompressed StreamObject to the start of the drawing operation that contains this image draw operation.
StreamLength | The length within the uncompressed StreamObject of the drawing operation that contains this image draw operation.
StreamID | The ID of the Stream in which the image draw operation is contained.


ImageRendition Focus Function. Focus the document on the location of the image placement. ABCpdf .NET PDF Library.

Focus Function

Focus the document on the location of the image placement.

Syntax

[C#]
void Focus()
[Visual Basic]
Sub Focus()

Params
Name | Description
none |

Notes

Focus the document on the location of the image placement.

After calling this function you can add content overlaying the image rendition. For example you might call Doc.FrameRect to frame it.

Because images are always drawn using a transformation matrix rather than a Rect you will probably need to reduce the size of any lines or text to values smaller than one.


ImageRendition PageID Property. The ID of the Page on which the image is placed. ABCpdf .NET PDF Library.

PageID Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The ID of the Page on which the image is placed.

Notes

The ID of the Page on which the image is placed.

You can assign this ID to the Doc.Page or you can use it with the ObjectSoup to retrieve a Page object.


ImageRendition Matrix Property. The transformation matrix for the placement of the image. ABCpdf .NET PDF Library.

Matrix Property

Type | Default | Read Only | Description
[C#] XTransform [Visual Basic] XTransform | n/a | Yes | The transformation matrix for the placement of the image.

Notes

The transformation matrix for the placement of the image.

Images in PDFs are always drawn at the origin with a width and height of zero. It is the transformation matrix which defines their placement on the page.


ImageRendition BoundingBox Property. The bounding rectangle for the placement of the image. ABCpdf .NET PDF Library.

BoundingBox Property

Type | Default | Read Only | Description
[C#] XRect [Visual Basic] XRect | n/a | Yes | The bounding rectangle for the placement of the image.

Notes

The bounding rectangle for the placement of the image.

Note that images may be rotated or otherwise transformed. For this reason consider whether the Matrix property or the Focus method might be more appropriately used in place of the BoundingBox property.


ImageRendition Dpi Property. The resolution of the image in dots per inch. ABCpdf .NET PDF Library.

Dpi Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | n/a | Yes | The resolution of the image in dots per inch.

Notes

The resolution of the image in dots per inch.


ImageRendition DpiX Property. The horizontal resolution of the image in dots per inch. ABCpdf .NET PDF Library.

DpiX Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | n/a | Yes | The horizontal resolution of the image in dots per inch.

Notes

The horizontal resolution of the image in dots per inch.


ImageRendition DpiY Property. The vertical resolution of the image in dots per inch. ABCpdf .NET PDF Library.

DpiY Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | n/a | Yes | The vertical resolution of the image in dots per inch.

Notes

The vertical resolution of the image in dots per inch.


ImageRendition StreamObject Property. The StreamObject in which the image draw operation is contained. ABCpdf .NET PDF Library.

StreamObject Property

Type | Default | Read Only | Description
[C#] StreamObject [Visual Basic] StreamObject | n/a | Yes | The StreamObject in which the image draw operation is contained.

Notes

The StreamObject in which the image draw operation is contained.

The combination of the StreamObject, StreamOffset and StreamLength allows you to precisely locate the image draw command sequence in the PDF content stream. This can then be used to modify or delete this particular command.


ImageRendition StreamOffset Property. The offset within the uncompressed StreamObject to the start of the drawing operation that contains this image draw operation. ABCpdf .NET PDF Library.

StreamOffset Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Int32 | n/a | Yes | The offset within the uncompressed StreamObject to the start of the drawing operation that contains this image draw operation.

Notes

The offset within the uncompressed StreamObject to the start of the drawing operation that contains this image draw operation.

The combination of the StreamObject, StreamOffset and StreamLength allows you to precisely locate the image draw command sequence in the PDF content stream. This can then be used to modify or delete this particular command.


ImageRendition StreamLength Property. The length within the uncompressed StreamObject of the drawing operation that contains this image draw operation. ABCpdf .NET PDF Library.

StreamLength Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Int32 | n/a | Yes | The length within the uncompressed StreamObject of the drawing operation that contains this image draw operation.

Notes

The length within the uncompressed StreamObject of the drawing operation that contains this image draw operation..

The combination of the StreamObject, StreamOffset and StreamLength allows you to precisely locate the image draw command sequence in the PDF content stream. This can then be used to modify or delete this particular command.


ImageRendition StreamID Property. The ID of the Stream in which the image draw operation is contained. ABCpdf .NET PDF Library.

StreamID Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | n/a | Yes | The ID of the Stream in which the image draw operation is contained

Notes

The ID of the Stream in which the image draw operation is contained.


FlattenTransparencyOperation Class

An operation used to flatten the transparency in PDF documents.

System.Object
   WebSupergoo.ABCpdf12.Operations.Operation
      WebSupergoo.ABCpdf12.Operations.FlattenTransparencyOperation

Method | Description
FlattenTransparencyOperation | FlattenTransparencyOperation Constructor.
Throws Exceptions Flatten | Flatten the transparency of pages in a document.
 | inherited methods...

Property | Description
Alpha | Sets the backdrop alpha.
AntiAliasPolygons | Whether to anti-alias polygons when creating synthetic image objects.
AntiAliasText | Whether to anti-alias text when creating a synthetic image object.
ColorSpace | Sets the target and compositing colorspace for objects being flattened..
ConvertAnnotations | Gets or sets a value indicating whether annotations are to be flattened.
DotsPerInch | Sets the resolution of generated images.
IccCmyk | The path to the default CMYK ICC color profile.
IccGray | The path to the default Gray ICC color profile.
IccRgb | The path to the default RGB ICC color profile.
Log | Returns information from the last call to Flatten method.
 | inherited properties...


FlattenTransparencyOperation FlattenTransparencyOperation Function. FlattenTransparencyOperation Constructor. ABCpdf .NET PDF Library.

FlattenTransparencyOperation Constructor

FlattenTransparencyOperation Constructor.

Syntax

[C#]
FlattenTransparencyOperation()

[Visual Basic]
Sub New()

Params
Name | Description
none |

Notes

Create a FlattenTransparencyOperation.

Example

See the Flatten method.

Note that this feature is only available under the ABCpdf Professional License.


FlattenTransparencyOperation Flatten Function. Flatten the transparency of pages in a document. ABCpdf .NET PDF Library.

Flatten Function

Flatten the transparency of pages in a document.

Syntax

[C#]
void Flatten(Doc doc)
void Flatten(Pages pages)
void Flatten(Page page)

[Visual Basic]
Sub Flatten(doc As Doc)
Sub Flatten(pages As Pages)
Sub Flatten(page As Page)

Throws Exceptions may throw Exception()

Params
Name | Description
doc | The document containing transparency to be flattened.
pages | The pages whose transparency is to be flattened as referenced by a Pages IndirectObject.
page | The page whose transparency is to be flattened as referenced by a Page IndirectObject.

Notes

Flattens the transparent objects on pages in the document.

The FlattenTransparency operation removes any transparent objects and replaces them with opaque ones that appear the same.

Because the look of your PDF does not change it can then be displayed or printed on a device that does not support transparency.

The name 'Flatten' is used because PDF transparency is represented as a stack of objects. The FlattenTransparency operation reduces that stack height to one.

The term 'Transparency' covers perhaps more than you might think. The philosophy on this is that any construct listed in the 'Transparency' section of the PDF reference should be replaced.

Prior to PDF 1.4, objects were always opaque - the color of the object would become the color of the entire object - whether it was painted on the background or over previously painted objects.

With PDF 1.4 came the idea that some objects could contain transparent attributes that would allow a previously painted object on the page to show through the newly painted object.

These attributes include alpha, which is a numeric value for the opaqueness of an object.

They also include blend modes, where the color of the underlying object interacts with the color of the overlying object in some more complicated manner.

For more information on PDF transparency, please refer to the PDF Specification.

Note that this feature is only available under the ABCpdf Professional License.

Example

Here we flatten all the transparent objects in a document.

[C#]

FlattenTransparencyOperation transOp = new FlattenTransparencyOperation();
transOp.DotsPerInch = 144;
transOp.ColorSpace = XRendering.ColorSpaceType.Rgb;

Doc doc = new Doc();
doc.Read(Server.MapPath("../mypics/sample.pdf"));
transOp.Flatten(doc);
doc.Save(Server.MapPath("Flattened.pdf"));

[Visual Basic]

Dim transOp As New FlattenTransparencyOperation()
transOp.DotsPerInch = 144
transOp.ColorSpace = XRendering.ColorSpaceType.Rgb

Dim doc As New Doc()
doc.Read(Server.MapPath("../mypics/sample.pdf"))
transOp.Flatten(doc)
doc.Save(Server.MapPath("Flattened.pdf"))


FlattenTransparencyOperation Alpha Property. Sets the backdrop alpha. ABCpdf .NET PDF Library.

Alpha Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 1.0 | No | Sets the backdrop alpha

Notes

When objects are compositied with the backdrop, this alpha value will be the minimum alpha of objects after compositing

Example

See the Flatten method.


FlattenTransparencyOperation AntiAliasPolygons Property. Whether to anti-alias polygons when creating synthetic image objects. ABCpdf .NET PDF Library.

AntiAliasPolygons Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to anti-alias polygons when creating synthetic image objects.

Notes

Determines whether polygons will be rendered with anti-aliased edges when creating synthetic image objects.

Anti-aliasing is a technique for using gradients of color to eliminate jagged edges when objects are drawn. The object edges are blurred to reduce pixelation.

Example

None


FlattenTransparencyOperation AntiAliasText Property. Whether to anti-alias text when creating a synthetic image object. ABCpdf .NET PDF Library.

AntiAliasText Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to anti-alias text when creating a synthetic image object.

Notes

Determines whether text will be rendered with anti-aliased edges when creating a synthetic image object.

Anti-aliasing is a technique for using gradients of color to eliminate jagged edges when objects are drawn. The object edges are blurred to reduce pixelation.

Example

None


FlattenTransparencyOperation ColorSpace Property. Sets the target and compositing colorspace for objects being flattened.. ABCpdf .NET PDF Library.

ColorSpace Property

Type | Default Value | Read Only | Description
[C#] XRendering.ColorSpaceType [Visual Basic] XRendering.ColorSpaceType | XRendering.ColorSpaceType.Rgb | No | Sets the target and compositing colorspace for objects being flattened..

Notes

All the objects will be converted to this colorspace. Also, compositing computation during the creation of new objects will take place in this colorspace.

Example

See the Flatten method.


FlattenTransparencyOperation ConvertAnnotations Property. Gets or sets a value indicating whether annotations are to be flattened. ABCpdf .NET PDF Library.

ConvertAnnotations Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Gets or sets a value indicating whether annotations are to be flattened

Notes

Gets or sets a value indicating whether annotations are to be flattened.


FlattenTransparencyOperation DotsPerInch Property. Sets the resolution of generated images. ABCpdf .NET PDF Library.

DotsPerInch Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 72.0 | No | Sets the resolution of generated images.

Notes

When two complex objects overlap, such as a partially transparent image with a backdrop image, an image representing the overlap is generated to this resolution.

Example

See the Flatten method.


FlattenTransparencyOperation IccCmyk Property. The path to the default CMYK ICC color profile. ABCpdf .NET PDF Library.

IccCmyk Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "standard" | No | The path to the default CMYK ICC color profile.

Notes

A path to the default CMYK ICC color profile.

The profile that will be used to convert any device CMYK specified in the PDF file to the device independent working color space. This may be necessary when colors in different color spaces need to be blended together.

This property can take a path to an icm file. However there are also two special values you can use. If the property takes the value "device" then the device color space will be used. If the property takes the value "standard" then a built in default color profile will be used.

If this property is set to "standard" or a path to a color profile then IccRgb, IccCmyk, IccGray and IccOutput should also be set to "standard" or paths to color profiles. All color spaces are assumed to be device independent color spaces.

If this property is set to "device" then IccRgb, IccCmyk, IccGray and IccOutput should also be set to "device". All color spaces are all assumed to be device color spaces.

If this property is set to a file name with no path information, then the folder "<windows>\system32\spool\drivers\color" will be searched to locate the file.

Example

None


FlattenTransparencyOperation IccGray Property. The path to the default Gray ICC color profile. ABCpdf .NET PDF Library.

IccGray Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "standard" | No | The path to the default Gray ICC color profile.

Notes

A path to the default Gray ICC color profile.

The profile that will be used to convert any device Gray specified in the PDF file to the device independent working color space. This may be necessary when colors in different color spaces need to be blended together.

This property can take a path to an icm file. However there are also two special values you can use. If the property takes the value "device" then the device color space will be used. If the property takes the value "standard" then a built in default color profile will be used.

If this property is set to "standard" or a path to a color profile then IccRgb, IccCmyk, IccGray and IccOutput should also be set to "standard" or paths to color profiles. All color spaces are assumed to be device independent color spaces.

If this property is set to "device" then IccRgb, IccCmyk, IccGray and IccOutput should also be set to "device". All color spaces are all assumed to be device color spaces.

If this property is set to a file name with no path information, then the folder "<windows>\system32\spool\drivers\color" will be searched to locate the file.


FlattenTransparencyOperation IccRgb Property. The path to the default RGB ICC color profile. ABCpdf .NET PDF Library.

IccRgb Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | "standard" | No | The path to the default RGB ICC color profile.

Notes

A path to the default RGB ICC color profile.

The profile that will be used to convert any device RGB specified in the PDF file to the device independent working color space. This may be necessary when colors in different color spaces need to be blended together.

This property can take a path to an icm file. However there are also two special values you can use. If the property takes the value "device" then the device color space will be used. If the property takes the value "standard" then a built in default color profile will be used.

If this property is set to "standard" or a path to a color profile then IccRgb, IccCmyk, IccGray and IccOutput should also be set to "standard" or paths to color profiles. All color spaces are assumed to be device independent color spaces.

If this property is set to "device" then IccRgb, IccCmyk, IccGray and IccOutput should also be set to "device". All color spaces are all assumed to be device color spaces.

If this property is set to a file name with no path information, then the folder "<windows>\system32\spool\drivers\color" will be searched to locate the file.


FlattenTransparencyOperation Log Property. Returns information from the last call to Flatten method. ABCpdf .NET PDF Library.

Log Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | None | Yes | Returns information from the last call to Flatten method.

Notes

If for some reason an object was not able to be flattened, a reason will be indicated here.

Example

See the Flatten method.


ReduceSizeOperation Class

Operation to reduce the size of a document.

The default settings here are aimed a reasonably aggressive size reduction. The most common changes you may wish to make relate to monochrome (eg black and white) images and palettization. The default settings here may be too aggressive for some applications so may require a little moderation. See the MonochromeImageDpi property for details.

System.Object
   WebSupergoo.ABCpdf12.Operations.Operation
      WebSupergoo.ABCpdf12.Operations.ReduceSizeOperation

Method | Description
Throws Exceptions ReduceSizeOperation | ReduceSizeOperation Constructor.
Throws Exceptions Compact | Compact and compress the document.

Property | Description
CompressImages | Whether to resize and recompress images where possible.
CompressStreams | Whether to compress uncompressed streams where possible.
ColorImageCompression | The target compression type for the re-encoding of color images.
ColorImageDpi | The target resolution for the resampling of color images.
ColorImageQuality | The target compression quality for the re-encoding of color images.
GrayImageCompression | The target compression type for the re-encoding of grayscale images.
GrayImageDpi | The target resolution for the resampling of grayscale images.
GrayImageQuality | The target compression quality for the re-encoding of grayscale images.
MonochromeImageCompression | The target compression type for the re-encoding of monochrome images.
MonochromeImageDpi | The target resolution for the resampling of monochrome images.
MonochromeImageQuality | The target compression quality for the re-encoding of monochrome images.
PageContents | The pages to be operated upon.
PalettizationTolerance | The amount of divergence from the target palette which will be allowed.
RefactorImages | Whether to refactor and remove duplicate images where possible.
UnembedComplexFonts | Whether to unembed complex Unicode based fonts where possible.
UnembedCorruptFonts | Whether to unembed embedded fonts that appear to be corrupt or non-standard.
UnembedSimpleFonts | Whether to unembed simple Latin based fonts where possible.
UnembedUnusualFonts | Whether to unembed embedded fonts that do not have an obvious substitute on the local machine.


ReduceSizeOperation ReduceSizeOperation Function. ReduceSizeOperation Constructor. ABCpdf .NET PDF Library.

ReduceSizeOperation Constructor

ReduceSizeOperation Constructor.

Syntax

[C#]
ReduceSizeOperation(Doc doc)

[Visual Basic]
Sub New(doc As Doc)

Throws Exceptions may throw Exception()

Params
Name | Description
doc | The PDF Document

Notes

Create a ReduceSizeOperation to compact and compress a PDF document. If the doc is null then an exception will be raised.

Example

See the Compact function.


ReduceSizeOperation Compact Function. Compact and compress the document. ABCpdf .NET PDF Library.

Compact Function

Compact and compress the document.

Syntax

[C#]
void Compact(bool wholeDocument)
[Visual Basic]
Function Compact(wholeDocument As Boolean)

Throws Exceptions may throw Exception()

Params
Name | Description
wholeDocument | Whether to compact the entire document or only selected pages.

Notes

Compact and compress the document.

The two main types of resources which take up file space are images and embedded fonts. As such this method allows you to resize images to a lower resolution, compress them using different methods and quality settings and remove embedded fonts. The particular options appropriate to your documents can be set using the properties on this operation.

During processing ProcessingObject and ProcessedObject events will be fired for each font or image object that is being operated upon. Using the arguments included with these events you can take finer control over the application of this operation.

If you have previously added content to the document it will need to be frozen in place. This may result in changes to the Doc.HtmlOptions, Doc.Rendering and Doc.SaveOptions properties.

You may also wish to set the SaveOptions.CompressObects property to true, to further reduce the output size on save.

This type of operations is fairly complex and can take some time on larger documents.

Example

The following example shows how to compress a document.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("../mypics/sample.pdf"));
  using (ReduceSizeOperation op = new ReduceSizeOperation(doc))
    op.Compact(true);
  doc.Save(Server.MapPath("ReduceSizeOperation.pdf"));
}

[Visual Basic]
Using doc As New Doc()
  doc.Read(Server.MapPath("../mypics/sample.pdf"))
  Using op As New ReduceSizeOperation(doc)
    op.Compact(True)
  End Using
  doc.Save(Server.MapPath("ReduceSizeOperation.pdf"))
End Using


ReduceSizeOperation CompressImages Property. Whether to resize and recompress images where possible. ABCpdf .NET PDF Library.

CompressImages Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to resize and recompress images where possible.

Notes

Whether to resize and recompress images where possible.

This option is used in conjunction with the image quality, resolution and compression settings.


ReduceSizeOperation CompressStreams Property. Whether to compress uncompressed streams where possible. ABCpdf .NET PDF Library.

CompressStreams Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to compress uncompressed streams where possible.

Notes

Whether to compress uncompressed streams where possible.

Uncompressed streams are relatively uncommon in real world PDF documents but checking and compressing them is a simple and effective way to reduce size in the unusual situations in which they are found.


ReduceSizeOperation ColorImageCompression Property. The target compression type for the re-encoding of color images. ABCpdf .NET PDF Library.

ColorImageCompression Property

Type | Default | Read Only | Description
[C#] CompressionType [Visual Basic] CompressionType | Jpeg | No | The target compression type for the re-encoding of color images.

Notes

The target compression type for the re-encoding of color images.

When the CompressImages setting is used this option is used to determine the type of compression to be used for images in this color space. Images are recompressed if they are resampled or if the target compression type is lossy. They are not recompressed if they already use the target compression and the compression type is lossless.


ReduceSizeOperation ColorImageDpi Property. The target resolution for the resampling of color images. ABCpdf .NET PDF Library.

ColorImageDpi Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 72.0 | No | The target resolution for the resampling of color images.

Notes

The target resolution for the resampling of color images.

When the CompressImages setting is set this option is used to determine the resolution at images in this color space should be targeted. Images are scaled down if they are too large but not up if they are too small.


ReduceSizeOperation ColorImageQuality Property. The target compression quality for the re-encoding of color images. ABCpdf .NET PDF Library.

ColorImageQuality Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 50 | No | The target compression quality for the re-encoding of color images.

Notes

The target compression quality for the re-encoding of color images.

When the CompressImages setting is set to a lossy type of compression such as JPEG, this option is used to determine the level of compression to be used when images are recompressed.


ReduceSizeOperation GrayImageCompression Property. The target compression type for the re-encoding of grayscale images. ABCpdf .NET PDF Library.

GrayImageCompression Property

Type | Default | Read Only | Description
[C#] CompressionType [Visual Basic] CompressionType | Jpeg | No | The target compression type for the re-encoding of grayscale images.

Notes

The target compression type for the re-encoding of grayscale images.

When the CompressImages setting is used this option is used to determine the type of compression to be used for images in this color space. Images are recompressed if they are resampled or if the target compression type is lossy. They are not recompressed if they already use the target compression and the compression type is lossless.


ReduceSizeOperation GrayImageDpi Property. The target resolution for the resampling of grayscale images. ABCpdf .NET PDF Library.

GrayImageDpi Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 150.0 | No | The target resolution for the resampling of grayscale images.

Notes

The target resolution for the resampling of grayscale images.

When the CompressImages setting is set this option is used to determine the resolution at images in this color space should be targeted. Images are scaled down if they are too large but not up if they are too small.


ReduceSizeOperation GrayImageQuality Property. The target compression quality for the re-encoding of grayscale images. ABCpdf .NET PDF Library.

GrayImageQuality Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 50 | No | The target compression quality for the re-encoding of grayscale images.

Notes

The target compression quality for the re-encoding of grayscale images.

When the CompressImages setting is set to a lossy type of compression such as JPEG, this option is used to determine the level of compression to be used when images are recompressed.


ReduceSizeOperation MonochromeImageCompression Property. The target compression type for the re-encoding of monochrome images. ABCpdf .NET PDF Library.

MonochromeImageCompression Property

Type | Default | Read Only | Description
[C#] CompressionType [Visual Basic] CompressionType | Ccitt | No | The target compression type for the re-encoding of monochrome images.

Notes

The target compression type for the re-encoding of monochrome images. Most monochrome images are black and white.

When the CompressImages setting is used this option is used to determine the type of compression to be used for images in this color space. Images are recompressed if they are resampled or if the target compression type is lossy. They are not recompressed if they already use the target compression and the compression type is lossless.


ReduceSizeOperation MonochromeImageDpi Property. The target resolution for the resampling of monochrome images. ABCpdf .NET PDF Library.

MonochromeImageDpi Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 150.0 | No | The target resolution for the resampling of monochrome images.

Notes

The target resolution for the resampling of monochrome images. Most monochrome images are black and white.

When the CompressImages setting is set this option is used to determine the resolution at images in this color space should be targeted. Images are scaled down if they are too large but not up if they are too small.

Monochrome images compress extremely well so even large images are small in data size. However resizing monochrome images requires that a nearest neighbor approach is used and this can result in a reduction in image quality that can be quite noticeable. When this happens you will see that images may become choppy and words fragmented and indistinct. The alternative here is to convert to grayscale but that produces a larger data size as it is much less compressible. For this reason you may wish to increase the default DPI setting as the default set here is quite aggressive.


ReduceSizeOperation MonochromeImageQuality Property. The target compression quality for the re-encoding of monochrome images. ABCpdf .NET PDF Library.

MonochromeImageQuality Property

Type | Default | Read Only | Description
[C#] int [Visual Basic] Integer | 50 | No | The target compression quality for the re-encoding of monochrome images.

Notes

The target compression quality for the re-encoding of monochrome images.

When the CompressImages setting is set to a lossy type of compression such as JPEG, this option is used to determine the level of compression to be used when images are recompressed.


ReduceSizeOperation PageContents Property. The pages to be operated upon. ABCpdf .NET PDF Library.

PageContents Property

Type | Default | Read Only | Description
[C#] PageContents [Visual Basic] PageContents | n/a | No | The pages to be operated upon.

Notes

This property specifies the pages to be operated upon.

Adding pages to a PageContents object can be a costly procedure taking a noticable amount of time.

So if you are performing a set of analysis operations on the same pages it can be more efficient to assign the PageContents from one to another rather than repeatedly re-populate from the original document.

Note that the UnembedComplexFonts option normally results in document-wide changes. If this happens the PageContents may be invalidated and will have to be re-built if required again. While this happens invisibly it is a relatively expensive operation and for this reason it is a good idea to perform this type of operation last rather than first if you are performing a chain of operations.


ReduceSizeOperation PalettizationTolerance Property. The amount of divergence from the target palette which will be allowed. ABCpdf .NET PDF Library.

PalettizationTolerance Property

Type | Default | Read Only | Description
[C#] double [Visual Basic] Double | 0.01 | No | The amount of divergence from the target palette which will be allowed.

Notes

The amount of divergence from the target palette which will be allowed.

Currently the only palette that is supported is RGB black and white. If an RGB image contains only grayscale components, and those grayscale pixels fit into the black and white palette with less than the amount of divergence specified, then it will be converted to one bit grayscale.

The tolerance is measured in terms of the average distance between the colors of pixels and the color they would be converted to in the palette. Because the maximum distance varies depending on the number of components in the color space, this distance is then rescaled to a value between zero and one. Zero means that the pixels and the palette need to match exactly. One means all pixels will always match.

Because this property results in a conversion to monochrome, monochrome settings will be used to compress the resultant image. See the MonochromImageDpi property for relevant notes.


ReduceSizeOperation RefactorImages Property. Whether to refactor and remove duplicate images where possible. ABCpdf .NET PDF Library.

RefactorImages Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to refactor and remove duplicate images where possible.

Notes

Whether to refactor and remove duplicate images where possible.

PDF documents sometimes contain duplicate images. This method allows you to detect such duplicates and resolve them into one reference..


ReduceSizeOperation UnembedComplexFonts Property. Whether to unembed complex Unicode based fonts where possible. ABCpdf .NET PDF Library.

UnembedComplexFonts Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to unembed complex Unicode based fonts where possible.

Notes

Whether to unembed complex Unicode based fonts fonts where possible.

This option is relatively complex and expensive but this type of embedded font tends to be large so the size reduction obtained can be significant.


ReduceSizeOperation UnembedCorruptFonts Property. Whether to unembed embedded fonts that appear to be corrupt or non-standard. ABCpdf .NET PDF Library.

UnembedCorruptFonts Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to unembed embedded fonts that appear to be corrupt or non-standard

Notes

Whether to unembed embedded fonts that appear to be corrupt or non-standard.


ReduceSizeOperation UnembedSimpleFonts Property. Whether to unembed simple fonts where possible. ABCpdf .NET PDF Library.

UnembedSimpleFonts Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to unembed simple fonts where possible.

Notes

Whether to unembed simple fonts where possible.

Simple fonts are those that use a standard encoding which translates directly to Unicode.

Because the encoding is a standard one, the embedded font can be removed without having to change the drawing instructions on the page.

Most simple fonts are Latin based but there are encodings which use Chinese, Japanese or Korean.

This option is fast and low impact but embedded Latin fonts tend not to be too large.


ReduceSizeOperation UnembedUnusualFonts Property. Whether to unembed embedded fonts that do not have an obvious substitute on the local machine. ABCpdf .NET PDF Library.

UnembedUnusualFonts Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to unembed embedded fonts that do not have an obvious substitute on the local machine.

Notes

Whether to unembed embedded fonts that do not have an obvious substitute on the local machine.

The difficulty of providing an appropriate substitute font depends greatly on how unusual the font is. Subsitutes are typically rather normal fonts so if you have a font like "Transport Medium" (the font used for all UK road signs) then a PDF display package should be able to provide a fairly sensible substitute. However if you have a font like "Fire and Ice" it is likely that the substitute will not be terribly appropriate. The most extreme example of this comes with barcode fonts which of course look completely different from the characters that they represent.

If is difficult to know what fonts are unusual. However if the font does not appear on the local machine then it is a reasonable assumption that it may not substitute well. As such this property allows you to avoid unembedding such fonts.


AccessibilityOperation Class

Operation to make a document accessible.

Accessible or Tagged PDFs are the same as normal PDFs but have been annotated with metadata in the form of PDF tags. This metadata is required because PDF documents contain good layout information but little semantic structure. The tags that are required supply this semantic structure. The way they are inserted and operate is defined in the Adobe PDF Specification.

See the MakeAccessible function for further information on accessibility standards and tagged PDF.

System.Object
   WebSupergoo.ABCpdf12.Operations.AccessibilityOperation

Method | Description
Throws Exceptions AccessibilityOperation | AccessibilityOperation Constructor.
Throws Exceptions MakeAccessible | Tags the document for accessibility.

Property | Description
PageContents | The pages to be operated upon.
ActualText | Whether to embed the actual text of text elements.
FixFonts | Whether to attempt to fix font settings that may be required for accessibility.
FixMetadata | Whether to attempt to fix or add metadata that may be required for accessibility.
FindHeaders | Whether to detect and remove page headers.
FindFooters | Whether to detect and remove page footers.
FindLists | Whether to detect and insert ordered and unordered list structures.
FindStructure | Whether to detect and insert structure outline.
FindTables | Whether to detect and insert table structures.
Layout | The method that should be used for determining paragraph order.
TextOperation | The text analysis operation for the accessibility analysis.


AccessibilityOperation AccessibilityOperation Function. AccessibilityOperation Constructor. ABCpdf .NET PDF Library.

AccessibilityOperation Constructor

AccessibilityOperation Constructor.

Syntax

[C#]
AccessibilityOperation(Doc doc)

[Visual Basic]
Sub New(doc As Doc)

Throws Exceptions may throw Exception()

Params
Name | Description
doc | The PDF Document

Notes

Create an AccessibilityOperation for accessibility. If the doc is null then an exception will be raised.

Example

Here we read an existing PDF and make it accessible.

We produce output conformant to the PDF specification and compliant with use within Acrobat. However please note that Accessibility is not well supported outside Acrobat.

in particular some versions of software such as NVDAccess do not necessarily handle all constructs correctly. In particular they have problems with form XObjects and so one needs to avoid this type of construct.

The code below calls Page.StampFormXObjects on all pages in the document to ensure that all form XObjects are removed before the document is made accessible.

The process of stamping form XObjects will not normally make much difference. However in some cases you may find there is a level of expansion in size and very occasionally you may see subtle differences in transparency blending. Nevertheless if you want compatibility, there is no other choice.

[C#]

using (Doc doc = new Doc()) {
  doc.Read(Server.MapPath("spaceshuttle.pdf"));
  Page[] pages = doc.ObjectSoup.Catalog.Pages.GetPageArrayAll();
  foreach (Page page in pages)
    page.StampFormXObjects(true); // see notes on NVDA above
  AccessibilityOperation op = new AccessibilityOperation(doc);
  op.PageContents.AddPages();
  op.MakeAccessible();
  doc.Save(Server.MapPath("accessible.pdf"));
}

[Visual Basic]

Using doc As New Doc()
  doc.Read(Server.MapPath("spaceshuttle.pdf"))
  Dim pages As Page() = doc.ObjectSoup.Catalog.Pages.GetPageArrayAll()
  For Each page As Page In pages
    page.StampFormXObjects(True)
  Next
  ' see notes on NVDA above
  Dim op As New AccessibilityOperation(doc)
  op.PageContents.AddPages()
  op.MakeAccessible()
  doc.Save(Server.MapPath("accessible.pdf"))
End Using


AccessibilityOperation MakeAccessible Function. Tags the document for accessibility. ABCpdf .NET PDF Library.

MakeAccessible Function

Tags the document for accessibility.

Syntax

[C#]
void MakeAccessible()

[Visual Basic]
Sub MakeAccessible()

Throws Exceptions may throw Exception()

Params
Name | Description
Return | The text.

Notes

This function scans the document, performs a semantic analysis on it and tags it for accessibility purposes using techniques broadly based around the PDF/UA standard and Section 508 compliance.

User accessibility standards like PDF/UA rely on Tagged PDF. This standard was initially put forward by the Association for Information and Image Management (AIIM) but was later adopted via the ISO in the form of ISO 14289-1 Document management applications -- Electronic document file format enhancement for accessibility.

Strictly speaking Section 508 refers to the application rather than the document but of course this means that the producers of applications which consume documents are in a good position to mandate that documents must conform to certain standards so that the application can provide appropriate information. This is what people generally refer to when they talk about PDFs as being Section 508 compliant. Appropriate tagging achieves that aim.

Tagging allows people who have disabilities to have the content in a PDF presented to them via different mechanisms, For example an accessible PDF would provide information on page structure to allow a PDF reader to speak the content of the document. However there are a variety of assistive technologies available, ranging from readers to magnifiers to navigational aids.

Tagged PDFs are the same as normal PDFs but they have been annotated with metadata in the form of PDF tags. This metadata is required because PDF documents contain good layout information but little semantic structure. The tags that are required supply this semantic structure. The way they are inserted and operate is defined in the Adobe PDF Specification. The types of tags that are used and the way they are used are defined by accessibility standards such as PDF/UA.

The semantic analysis provided by ABCpdf is based around reading order and results in the the logical structure of the PDF being determined. Content that is regarded as irrelevant is tagged as being an artifact in line with the PDF/UA standard.

Images present a particular challenge as automated processes do not find it easy to generate descriptions from bitmaps. However if you know what the different images represent you can tag each PixMap object dictionary with a "XXAlt" entry referring to a StringAtom. When the MakeAccessible function is called these entries will be picked up and used and then deleted.

The MakeAccessible function will result in any existing tagged content being discarded. This is necessary because, while it is possible to determine if a document is already tagged, it is not possible to determine if it has been correctly tagged. Many PDF consumers do not understand tags and will not update the metadata appropriately if they operate on such documents.

To determine whether a document has been tagged you can find the "MarkInfo" entry in the Doc.Catalog as a DictAtom and then get the "Marked" entry of that as a BoolAtom. The default is false.

You may wish to set the SaveOptions.CompressObects property to true, to reduce output size on save.

Example

See the AccessibilityOperation Constructor.


AccessibilityOperation PageContents Property. The pages to be operated upon. ABCpdf .NET PDF Library.

PageContents Property

Type | Default | Read Only | Description
[C#] PageContents [Visual Basic] PageContents | n/a | No | The pages to be operated upon.

Notes

This property specifies the pages to be operated upon.

Adding pages to a PageContents object can be a costly procedure taking a noticable amount of time.

So if you are performing a set of analysis operations on the same pages it can be more efficient to assign the PageContents from one to another rather than repeatedly re-populate from the original document.


AccessibilityOperation ActualText Property. Whether to embed the actual text of text elements. ABCpdf .NET PDF Library.

ActualText Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to embed the actual text of text elements.

Notes

Whether to embed the actual text of text elements.

It is often useful to embed the actual text of PDF content in the tag structure because this makes it easy to extract. Extracting text from the content stream is extremely difficult in comparison.

There is a standard tag - ActualText - provided for this very purpose. Unfortunately there are problems in some releases of Acrobat that mean that the presence of this tag can make it difficult to select and extract text.

As such you may wish to set this property to false to avoid this type of structure.


AccessibilityOperation FixFonts Property. Whether to attempt to fix font settings that may be required for accessibility. ABCpdf .NET PDF Library.

FixFonts Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to attempt to fix font settings that may be required for accessibility.

Notes

Whether to attempt to fix font settings that may be required for accessibility.

Specifications like PDF/UA mandate certain requirements. One of the core requirements is that fonts are embedded rather than referenced.

This property controls whether an attempt will be made to embed any fonts that are referenced rather than embedded in the document.


AccessibilityOperation FixMetadata Property. Whether to attempt to fix or add metadata that may be required for accessibility. ABCpdf .NET PDF Library.

FixMetadata Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to attempt to fix or add metadata that may be required for accessibility.

Notes

Whether to attempt to fix or add metadata that may be required for accessibility.

Specifications like PDF/UA mandate certain requirements. One of the core requirements is that XMP metadata is embedded in the document.

This property controls whether an attempt will be made to add any such data. Information for the XMP section will be extracted from the info section of the PDF. A PDF/UA tag will be added as will other required features like a title.


AccessibilityOperation FindHeaders Property. Whether to detect and remove page headers. ABCpdf .NET PDF Library.

FindHeaders Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to detect and remove page headers.

Notes

Whether to detect and remove page headers.

Most accessibility standards regard repeated text as chrome rather than content. For this reason they often mandate that headers and footers are removed from the semantic structure of the document.

If this property is set to true, the AccessibilityOperation will attempt to detect repeated headers and mark them as artifacts.

If your documents are complicated and you require complete control over the detection process, you can do this using the techniques detailed in the AccessiblePDF example project which comes with ABCpdf.


AccessibilityOperation FindFooters Property. Whether to detect and remove page footers. ABCpdf .NET PDF Library.

FindFooters Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to detect and remove page footers.

Notes

Whether to detect and remove page footers.

Most accessibility standards regard repeated text as chrome rather than content. For this reason they often mandate that headers and footers are removed from the semantic structure of the document.

If this property is set to true, the AccessibilityOperation will attempt to detect repeated footers and mark them as artifacts.

If your documents are complicated and you require complete control over the detection process, you can do this using the techniques detailed in the AccessiblePDF example project which comes with ABCpdf.


AccessibilityOperation FindLists Property. Whether to detect and insert ordered and unordered list structures. ABCpdf .NET PDF Library.

FindLists Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to detect and insert ordered and unordered list structures.

Notes

Whether to detect and insert ordered and unordered list structures.

Much as in HTML, tagged PDF documents support list tags. If this property is set to true, the AccessibilityOperation will attempt to detect list structures and add appropriate tags.

If your lists are complicated and you require complete control over the detection process, you can do this using the techniques detailed in the AccessiblePDF example project which comes with ABCpdf.


AccessibilityOperation FindStructure Property. Whether to detect and insert structure outline. ABCpdf .NET PDF Library.

FindStructure Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to detect and insert structure outline.

Notes

Whether to detect and insert structure outline.

PDF document structure tags are analogous to header tags in HTML: they allow one to structure document content as a hierarchy. For example a document might be divided first by article then by section then by chapter. There are specific named hierarchy types available but in general an abstract hierarchical structure is all that is required.

If this property is set to true, the AccessibilityOperation will attempt to detect document structure and insert appropriate tags to mark it as such.

If your documents are complicated and you require complete control over the detection process, you can do this using the techniques detailed in the AccessiblePDF example project which comes with ABCpdf.


AccessibilityOperation FindTables Property. Whether to detect and insert table structures. ABCpdf .NET PDF Library.

FindTables Property

Type | Default | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to detect and insert table structures.

Notes

Whether to detect and insert table structures.

Much as in HTML, tagged PDF documents support table tags. However where HTML tables are often used for layout, the concept behind PDF tables is more semantic. The idea is not so much that the contents are positioned in a certain way, more that the contents should be read in a particular way.

If this property is set to true, the AccessibilityOperation will attempt to detect table structures and add appropriate tags.

If your tables are complicated and you require complete control over the table detection process, you can do this using the techniques detailed in the AccessiblePDF example project which comes with ABCpdf.


AccessibilityOperation Layout Property. The method that should be used for determining paragraph order. ABCpdf .NET PDF Library.

Layout Property

Type | Default | Read Only | Description
[C#] LayoutMethod [Visual Basic] LayoutMethod | Recursive | No | The method that should be used for determining paragraph order.

Notes

The method that should be used for determining paragraph order.

When a document is made accessible one needs to determine the reading order for the text. This property allows one to control the method which is used to determine the reading order of the paragraphs on the page.

You can choose from the following options:

  • None - Use the order of layout that already exists on the page.
  • Recursive - Recursively group by rows and columns.
  • TopDownLeftRight - Order primarily top to bottom, secondarily left to right.
  • TopDownRightLeft - Order primarily top to bottom, secondarily right to left.

The None option may seem initially attractive since drawing sequence and semantic sequence might seem similar. However the reality is that PDFs are often constructed in peculiar ways; tables will sometimes be drawn left to right, sometimes top to bottom; pages will be drawn, then extra sections will be drawn on top of them to modify the existing structure. In general the other options will provide more predicable results.

Reading Direction. Some documents contain bi-directional or right-to-left text like Hebrew and Arabic. If this is the case, before the operation, you may wish to change the reading direction and language. This helps ABCpdf analyse the document correctly and without the change of direction the text may be read backwards.

The following code can be used to set the predominant language and text direction for Hebrew.

[C#]

doc.SetInfo(doc.Root, "/Lang:Name", "he-IL"); // Language-Tag defined in RFC 3066
doc.SetInfo(doc.Root, "/ViewerPreferences*/Direction:Name", "R2L");

[Visual Basic]
doc.SetInfo(doc.Root, "/Lang:Name", "he-IL"); ' Language-Tag defined in RFC 3066
doc.SetInfo(doc.Root, "/ViewerPreferences*/Direction:Name", "R2L");

If your documents are complicated and you require complete control over the detection process, you can do this using the techniques detailed in the AccessiblePDF example project which comes with ABCpdf.


AccessibilityOperation TextOperation Property. The text analysis operation for the accessibility analysis. ABCpdf .NET PDF Library.

TextOperation Property

Type | Default | Read Only | Description
[C#] TextOperation [Visual Basic] TextOperation | n/a | Yes | The text analysis operation for the accessibility analysis.

Notes

The text analysis operation for the accessibility analysis.

You can adjust the way that the AccessibilityOperation collects text by adjusting the TextOperation properties before triggering analysis.


RecolorOperation.Pipe Class

A color pipe used to convert color components from one color space to another.

System.Object
   WebSupergoo.ABCpdf12.Operations.RecolorOperation.Pipe

Method | Description
ConvertColor | Convert color components between color spaces.

Property | Description
None |


RecolorOperation Pipe Recolor Function. Convert color components from the source color space to the destination one. ABCpdf .NET PDF Library.

ConvertColor Function

Convert color components from the source color space to the destination one.

Syntax

[C#]
void Recolor(double[] from, double[] to)

[Visual Basic]
Sub Recolor(from as Double(), to As Double())

Throws Exceptions may throw Exception()

Params
Name | Description
from | An array of source color components. The number of items in the array should be equal to the number of components in the source color space.
to | An array of destination color components which will be updated with the values. The number of items in the array should be equal to the number of components in the destination color space.

Notes

Convert color components from the source color space to the destination one.

Color components typically vary between zero and one representing the intensity of each component. So a high intensity green in the RGB color space might be represented as [0.0 1.0 0.0].

You need to ensure that the arrays you pass are the right size. So for example a conversion from RGB to CMYK would need a from array of size three and a to array of size four. If the arrays are incorrectly sized then an exception will be thrown.


EffectOperation Class

Operation to apply a visual effect.

System.Object
   WebSupergoo.ABCpdf12.Operations.Operation
      WebSupergoo.ABCpdf12.Operations.EffectOperation

Method | Description
EffectOperation | EffectOperation Constructor.
Throws Exceptions Apply | Apply the effect to an image.
 | inherited methods...

Property | Description
S» Names | Names of all the installed effects.
Name | The name of the Effect.
Description | A description of what the effect does.
Parameters | The parameters associated with the effect.
AutoQuality | The quality of compression to use when automatically compressing after the effect is applied.
AutoRestore | Whether to automatically restore the image color space and apply compression after the effect is applied.


EffectOperation EffectOperation Function. EffectOperation Constructor. ABCpdf .NET PDF Library.

EffectOperation Function

EffectOperation Constructor

Syntax

[C#]
EffectOperation(string name)

[Visual Basic]
New(name As String)

Params
Name | Description
name | The name of the effect that is required.

Notes

Create a EffectOperation.

The installed effects can be obtained using the Names static variable.

If the name is not one of the valid names then an exception will be thrown.


EffectOperation Apply Function. Apply the effect to an image. ABCpdf .NET PDF Library.

Apply Function

Apply the effect to an image.

Syntax

[C#]
void Apply(PixMap pixMap)

[Visual Basic]
Sub Apply(pixMap As PixMap)

Throws Exceptions may throw Exception()

Params
Name | Description
pixMap | The PixMap to which the image should be applied.

Notes

Apply the effect to an image specified as a PixMap.

Effects normally involve wholesale changes and so it may well be necessary to change the color space and depth in order to apply the effect. If the AutoRestore property is set then the PixMap will be restored to a similar color space after processing and it will be recompressed at an appropriate quality. This default is generally what is required.

If the AutoRestore property is not set then the final output may well have different characteristics such as color space and depth. In general the final image will be uncompressed eight bit RGB no matter what type of PixMap was supplied.

If you are relying on particular characteristics present in the original PixMap then you should set the AutoRestore property to false and then convert or recolor it after the effect has been applied. Since the final image will be left uncompressed you will likely want to recompress it using an appropriate schema.


EffectOperation Names Property. Names of all the installed effects. ABCpdf .NET PDF Library.

Names Property

Type Default Value Read Only Description
[C#]
static string[]

[Visual Basic]
Shared String()

See below

 Yes Names of all the installed effects

Notes

The names of all the installed effects.

The default effect names are:

  • "None"
  • "Median"
  • "Sharpen"
  • "Convolution"
  • "Gaussian Blur"
  • "Laplacian"
  • "Unsharp Mask"
  • "Despeckle"
  • "Brightness"
  • "Equalize"
  • "Contrast"
  • "Levels"
  • "Auto Levels"
  • "Histogram"
  • "Twirl"
  • "Pinch"
  • "Ripple"
  • "Wave"


EffectOperation Name Property. The name of the Effect. ABCpdf .NET PDF Library.

Name Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | n/a | Yes | The name of the Effect

Notes

The unique name by which the effect is known.


EffectOperation Description Property. A description of what the effect does. ABCpdf .NET PDF Library.

Description Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | n/a | Yes | A description of what the effect does

Notes

A description of what the effect does.

This human language description of the effect can be used to suppliement the Name.


EffectOperation Parameters Property. The parameters associated with the effect. ABCpdf .NET PDF Library.

Parameters Property

Type | Default Value | Read Only | Description
[C#] IDictionary<string, EffectParameter> [Visual Basic] IDictionary<string, EffectParameter> | n/a | No | The parameters associated with the effect

Notes

The parameters associated with the effect.

Each item in the dictionary is identified by a name and takes a Parameter. So for a brighness effect there might be an intensity entry with a Parameter containing the value 25.


EffectOperation AutoQuality Property. The quality of compression to use when automatically compressing after the effect is applied. ABCpdf .NET PDF Library.

AutoQuality Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 75 | No | The quality of compression to use when automatically compressing after the effect is applied

Notes

The quality of compression to use when automatically compressing after the effect is applied.


EffectOperation AutoRestore Property. Whether to automatically restore the image color space and apply compression after the effect is applied. ABCpdf .NET PDF Library.

AutoRestore Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to automatically restore the image color space and apply compression after the effect is applied

Notes

Whether to automatically restore the image color space and apply compression after the effect is applied.


EffectParameter Class

A named parameter to be applied to an effect.

System.Object
   WebSupergoo.ABCpdf12.Operations.EffectParameter

Method | Description
 | None

Property | Description
Name | The name of the parameter.
Description | A description of what the parameter does.
Maximum | The maximum recomended value (if applicable).
Minimum | The minimum recomended value (if applicable).
Value | The value of the parameter, or the first value if there are multiple.
Values | The values of the parameter.


EffectParameter Name Property. The name of the parameter. ABCpdf .NET PDF Library.

Name Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | 0? | No? | The name of the parameter

Notes

The name of the parameter.


EffectParameter Description Property. A description of what the parameter does. ABCpdf .NET PDF Library.

Description Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] String | 0? | No? | A description of what the parameter does

Notes

A description of what the parameter does.


EffectParameter Maximum Property. The maximum recomended value (if applicable). ABCpdf .NET PDF Library.

Maximum Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | n/a | Yes | The maximum recomended value (if applicable)

Notes

The maximum recomended value (if applicable).


EffectParameter Minimum Property. The minimum recomended value (if applicable). ABCpdf .NET PDF Library.

Minimum Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | n/a | Yes | The minimum recomended value (if applicable)

Notes

The minimum recomended value (if applicable).


EffectParameter Value Property. The value of the parameter, or the first value if there are multiple. ABCpdf .NET PDF Library.

Value Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | n/a | No | The value of the parameter, or the first value if there are multiple

Notes

The value of the parameter, or the first value if there are multiple.


EffectParameter Values Property. The values of the parameter. ABCpdf .NET PDF Library.

Values Property

Type Default Value Read Only Description
[C#]
double[]

[Visual Basic]
Double() 		n/a No The values of the parameter

Notes

The values of the parameter. Most parameters have one value only.


DrawPagesOperation

DrawPagesOperation Class

Operation to draw pages from one document onto another.

This operation is in many ways similar to the Doc.AddImageDoc function. However the AddImageDoc function is not aware of state and thus it has to take each call afresh.

In contrast the DrawPagesOperation is aware of state which means that, for a process drawing many pages between two documents, it can operate much more quickly.

System.Object
   WebSupergoo.ABCpdf12.Operations.DrawPagesOperation

Implements: IDisposable

Method | Description
DrawPagesOperation | DrawPagesOperation constructor.
DrawPage | Draw the current page from the source to the destination document.

Property | Description
Source | The source document from which to take pages.
Destination | The destination document onto which pages will be drawn.
CopyAnnotations | Whether to copy fields and annotations.
UseSourceRect | Whether to draw only the portion of the page specified by the Souce.
Alpha | The level of alpha to apply to the drawn page.


DrawPagesOperation DrawPagesOperation Function. CopyPagesOperation constructor. ABCpdf .NET PDF Library.

DrawPagesOperation Function

CopyPagesOperation constructor

Syntax

[C#]
DrawPagesOperation(Doc sourceDoc, Doc destinationDoc)

[Visual Basic]
DrawPagesOperation(sourceDoc As Doc, destinationDoc As Doc)

Params
Name | Description
sourceDoc | The document from which pages will be taken.
destinationDoc | The document onto which pages will be drawn.

Notes

CopyPagesOperation constructor.


DrawPagesOperation DrawPage Function. Draw the current page from the source to the destination document. ABCpdf .NET PDF Library.

DrawPage Function

Draw the current page from the source to the destination document.

Syntax

[C#]
int DrawPage()

[Visual Basic]
Function DrawPage() As Integer

Params
Name | Description
return | The ID of the newly added object.

Notes

Draw the current page from the source PDF document onto the current page of the destination document, returning the ID of the newly added object.

The page is scaled to fill the current Rect. It is transformed using the current Transform.

Many field and annotation types can only exist as a simple rectangle with sides parallel to the page borders. For this reason you should be cautious about the transforms you use when specifying that annotations should be copied. A transform which involves scale and translation will be fine but one involving rotation and skew factors may result in unusual output if the field or annotation does not support this combination.

Pages may be rotated. As such, when drawing one page onto another, you may wish to copy the Page.Rotation from the source page to the destination page. More complex example code to de-rotate a page may be found under the documentation for the Page.Rotation.


DrawPagesOperation Source Property. The source document from which to take pages. ABCpdf .NET PDF Library.

Source Property

Type | Default Value | Read Only | Description
[C#] Doc [Visual Basic] Doc | null | Yes | The source document from which to take pages

Notes

The source document from which to take pages.


DrawPagesOperation Destination Property. The destination document onto which pages will be drawn. ABCpdf .NET PDF Library.

Destination Property

Type | Default Value | Read Only | Description
[C#] Doc [Visual Basic] Doc | null | Yes | The destination document onto which pages will be drawn

Notes

The destination document onto which pages will be drawn.


DrawPagesOperation CopyAnnotations Property. Whether to copy fields and annotations. ABCpdf .NET PDF Library.

CopyAnnotations Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to copy fields and annotations

Notes

Whether to copy fields and annotations. Default false.


DrawPagesOperation UseSourceRect Property. Whether to draw only the portion of the page specified by the Souce. ABCpdf .NET PDF Library.

UseSourceRect Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to draw only the portion of the page specified by the Souce

Notes

Whether to draw only the portion of the page specified by the Souce.Rect. If this value is false then the entire visible page will be drawn. Default false.


DrawPagesOperation Alpha Property. The level of alpha to apply to the drawn page. ABCpdf .NET PDF Library.

Alpha Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | The level of alpha to apply to the drawn page.

Notes

The level of alpha to apply to the drawn page.

This may range fom from transparent (0.0) through to fully opaque (255.0).

If this value is null then no alpha will be applied.


ContentStreamOperation

ContentStreamOperation Class

Object to extract content stream arrays from one or more pages and related objects.

System.Object
   WebSupergoo.ABCpdf12.Operations.ContentStreamOperation

Method | Description
ContentStreamOperation | Contents constructor.
AddPages | Add and scan selected pages from the document.

Property | Description
ArrayAtoms | The content streams for the items that have been found.
ExternalizeImages | Whether to externalize inline images before processing content streams.
IncludeAnnotations | Whether to include annotation and field appearances in the output.
IncludeFormXObjects | Whether to include Form XObjects in the output.
IncludePatterns | Whether to include Patterns in the output.
Log | A log of any errors or inconsistancies found during processing.
Preflight | Whether to preflight the document to ensure that any dynamic content has been frozen in place.
UpdateAnnotationAppearances | Whether to attempt to update annotation appearance streams if they are missing.


ContentStreamOperation ContentStreamOperation Function. Contents constructor. ABCpdf .NET PDF Library.

ContentStreamOperation Function

Contents constructor

Syntax

[C#]
ContentStreamOperation(Doc doc)

[Visual Basic]
ContentStreamOperation(doc As Doc)

Params
Name | Description
doc | The document.

Notes

Contents constructor.

Example

See the GetColors Example Project which comes with ABCpdf.


ContentStreamOperation AddPages Function. Add and scan selected pages from the document. ABCpdf .NET PDF Library.

AddPages Function

Add and scan selected pages from the document.

Syntax

[C#]
void AddPages()
void AddPages(int pageNumber)
void AddPages(int startPageNumber, int endPageNumber)

[Visual Basic]
Sub AddPages()
Sub AddPages(pageNumber As Integer)
Sub AddPages(startPageNumber As Integer, endPageNumber As Integer)

Params
Name | Description
pageNumber | The number of the page to be processed. This is a one based index.
startPageNumber | The number of the first page to be processed. This is a one based index.
endPageNumber | The number of the last page to be processed. This is a one based index.

Notes

Add and scan selected pages from the document.

If no arguments are supplied then all pages will be added.


ContentStreamOperation ArrayAtoms Property. The content streams for the items that have been found. ABCpdf .NET PDF Library.

ArrayAtoms Property

Type | Default Value | Read Only | Description
[C#] IDictionary<IndirectObject, ArrayAtom> [Visual Basic] IDictionary<IndirectObject, ArrayAtom> | An IDictionary. | Yes | The content streams for the items that have been found.

Notes

The content streams for the items that have been found.

These are stored as a dictionary mapping the owning object with the content stream.

The content stream itself is represented as a series of graphics operators converted using the ArrayAtom.FromContentStream method.


ContentStreamOperation ExternalizeImages Property. Whether to externalize inline images before processing content streams. ABCpdf .NET PDF Library.

ExternalizeImages Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | Yes | Whether to externalize inline images before processing content streams

Notes

Whether to externalize inline images before processing content streams.


ContentStreamOperation IncludeAnnotations Property. Whether to include annotation and field appearances in the output. ABCpdf .NET PDF Library.

IncludeAnnotations Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to include annotation and field appearances in the output

Notes

Whether to include annotation and field appearances in the output.


ContentStreamOperation IncludeFormXObjects Property. Whether to include Form XObjects in the output. ABCpdf .NET PDF Library.

IncludeFormXObjects Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to include Form XObjects in the output

Notes

Whether to include Form XObjects in the output.


ContentStreamOperation IncludePatterns Property. Whether to include Patterns in the output. ABCpdf .NET PDF Library.

IncludePatterns Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to include Patterns in the output

Notes

Whether to include Patterns in the output.


ContentStreamOperation Log Property. A log of any errors or inconsistencies found during processing. ABCpdf .NET PDF Library.

Log Property

Type | Default Value | Read Only | Description
[C#] StringBuilder [Visual Basic] StringBuilder | null | Yes | A log of any errors or inconsistencies found during processing

Notes

A log of any errors or inconsistencies found during processing.

The StringBuilder will be appended to every time an error is found. If this property is null, a StringBuilder will be created at the point the first error is found.


ContentStreamOperation Preflight Property. Whether to preflight the document to ensure that any dynamic content has been frozen in place. ABCpdf .NET PDF Library.

Preflight Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to preflight the document to ensure that any dynamic content has been frozen in place

Notes

Whether to preflight the document to ensure that any dynamic content has been frozen in place.

If you have not added any content to this document - if you have just read it from file - you can set this property to false.


ContentStreamOperation UpdateAnnotationAppearances Property. Whether to attempt to update annotation appearance streams if they are missing. ABCpdf .NET PDF Library.

UpdateAnnotationAppearances Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | true | No | Whether to attempt to update annotation appearance streams if they are missing

Notes

Whether to attempt to update annotation appearance streams if they are missing.


ContentStreamScanner Class

A class to scan through a content stream keeping track of state while it does so.

Subclass to collect or extract content as it is being scanned.

System.Object
   WebSupergoo.ABCpdf12.Operations.ContentStreamScanner

Method | Description
ContentStreamScanner | Create a new ContentStreamScanner.
Process | Process a content stream keeping track of state.
ProcessItem | Process an item in a content stream and update the graphics or text state.
ShowText | Show an item of text.
Abort | Abort the current processing.

Property | Description
Resources | A class for accessing reseources in the document.
Operators | The set of operators which should be processed.
DoShowText | Whether to call into the ShowText function.
DoUnicode | Whether to convert text to Unicode or not.
DoWidths | Whether to calcuate text widths or not.
Warnings | Content streams contain operators and parameters.
Stack | The current graphics stack.
State | The current graphics state.
Text | The current text state.


ContentStreamScanner ContentStreamScanner Function. Create a new ContentStreamScanner. ABCpdf .NET PDF Library.

ContentStreamScanner Function

Create a new ContentStreamScanner.

Syntax

[C#]
ContentStreamScanner()
ContentStreamScanner(ContentStreamScanner sibling)

[Visual Basic]
ContentStreamScanner()
ContentStreamScanner(sibling As ContentStreamScanner)

Params
Name | Description
sibling | A scanner which contains cached data.

Notes

Create a new ContentStreamScanner.

A ContentStreamScanner will cache useful resources as they are needed. If you are creating multiple ContentStreamScanners for the same document you can share this cache to increase efficiency.

To share cached data in this way pass in a sibling scanner previously used to scan a content stream in the same doc.


ContentStreamScanner Process Function. Process a content stream keeping track of state. ABCpdf .NET PDF Library.

Process Function

Process a content stream keeping track of state.

Syntax

[C#]
virtual void Process(IndirectObject owner, ArrayAtom contents)
Process(IndirectObject owner, ArrayAtom contents, IList<Tuple<string, int>> ops)

[Visual Basic]
Overridable Function Process(owner As IndirectObject, contents As ArrayAtom) As void
Process(IndirectObject owner, ArrayAtom contents, IList<Tuple<string, int>> ops)

Params
Name | Description
owner | The owner of the stream - either a Page or Form XObject.
contents | The contents of the stream as obtained from a call to ArrayAtom.FromContentStream or similar.
ops | The operators to process as obtained from a call to OpAtom.Find or similar.

Notes

Process a content stream keeping track of state.

In general you will not need to do this but you can assign custom graphics State settings prior to calling this function. At completion this function will assign a new graphics state stack ready for the next call.


ContentStreamScanner ProcessItem Function. Process an item in a content stream and update the graphics or text state to reflect the action of the item. ABCpdf .NET PDF Library.

ProcessItem Function

Process an item in a content stream and update the graphics or text state to reflect the action of the item.

Syntax

[C#]
virtual void ProcessItem(IndirectObject owner, ArrayAtom contents, string op, int pos)

[Visual Basic]
Overridable Function ProcessItem(owner As IndirectObject, contents As ArrayAtom, op As string, pos As int) As void

Params
Name | Description
owner | The owner of the stream - either a Page or Form XObject.
contents | The contents of the stream as obtained from a call to ArrayAtom.FromContentStream or similar.
op | The name of the operator. For example this might be "cm" or "q".
pos | The index of the operator in the contents array.

Notes

Process an item in a content stream and update the graphics or text state to reflect the action of the item.

For your own operator processing you will wish to override this function.


ContentStreamScanner ShowText Function. Show an item of text. ABCpdf .NET PDF Library.

ShowText Function

Show an item of text.

Syntax

[C#]
virtual void ShowText(List<int> codes, List<int> widths, List<double> advances, double advanceTotal, StringBuilder text, List<string> strings, bool vertical)

[Visual Basic]
Overridable Function ShowText(codes As List<Integer>, widths As List<Integer>, advances As List<Double>, advanceTotal As double, text As StringBuilder, strings As List<string>, vertical As bool) As void

Params
Name | Description
codes | The character codes for the text. In general these will map to ASCII but this is not required and any encoding may be legal.
widths | The widths of each character in 1000ths. This list is always the same size as the codes list.
advances | The advance for each character in text units. This advance includes all text properties like character spacing and font size. This list is always the same size as the codes list.
advanceTotal | The sum of all the values in the advances list. This is essentially the same as the text width.
text | The Unicode text of the codes. The text length is always the same as the size of codes list.
strings | Some character codes do not have a single character value. For example the ligature 'fl' may be represented as one character code but the Unicode equivalent is two characters long. In this situation the 'text' parameter will contain a single character approximation and the equivalent index in the 'strings' parameter will provide the string "fl". For single character codes the index in the strings parameter will be null. This list is always the same size as the codes list.
vertical | True if the writing direction is vertical - top to bottom. False if it is horizontal - left to right.

Notes

Show an item of text. If you are processing text you will want to override this function to pick up the text show operations.

The parameters passed are owned by the ContentStreamScanner and will be re-used for efficiency reasons. So if you want to keep the parameters you will need make copies of them.

This function is only called if the DoShowText property is set to true. Unicode values are only passed if DoUnicode is set to true. Widths are only passed if DoWidths is set to true.

Text units are relative to the TextFontSize as set using the Tf operator - if you double the font size you double the advances. The text rendering matrix includes the font size so for placement on the page you would need to divide the advances by the font size and then transform using the value from GetTextRenderingMatrix.


ContentStreamScanner Abort Function. Abort the current processing. ABCpdf .NET PDF Library.

Abort Function

Abort the current processing.

Syntax

[C#]
virtual void Abort()

[Visual Basic]
Overridable Sub Abort()

Params
Name | Description
none |

Notes

Abort the current processing.

All remaining operators will be skipped.

You can use this function to prematurely terminate the processing of a content stream.


ContentStreamScanner Resources Property. A class for accessing reseources in the document. ABCpdf .NET PDF Library.

Resources Property

Type | Default Value | Read Only | Description
[C#] Resorcerer [Visual Basic] Resorcerer | null | Yes | A class for accessing reseources in the document.

Notes

A class for accessing resources in the document.


ContentStreamScanner Operators Property. The set of operators which should be processed. ABCpdf .NET PDF Library.

Operators Property

Type | Default Value | Read Only | Description
[C#] HashSet<string> [Visual Basic] HashSet<string> | null | No | The set of operators which should be processed.

Notes

The set of operators which should be processed.

If this value is null then all operators will be processed.

By restricting the set of operators you can reduce the amount of processing required and make the scan faster.


ContentStreamScanner DoShowText Property. Whether to call into the ShowText function. ABCpdf .NET PDF Library.

DoShowText Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to call into the ShowText function.

Notes

Whether to call into the ShowText function.

Overriding the ShowText function allows you to get the content and position of text.

However this is quite computationally expensive so if you do not need it then you can disable this feature.


ContentStreamScanner DoUnicode Property. Whether to convert text to Unicode or not. ABCpdf .NET PDF Library.

DoUnicode Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to convert text to Unicode or not.

Notes

Whether to convert text to Unicode or not.

If this property is true then the ShowText function will be passed the Unicode value of any text. If it is false then null will be passed.

This is quite computationally expensive so if you do not need to know the content of the text then you can disable this feature.


ContentStreamScanner DoWidths Property. Whether to calcuate text widths or not. ABCpdf .NET PDF Library.

DoWidths Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to calcuate text widths or not.

Notes

Whether to calcuate text widths or not.

If this property is true then the ShowText function will be passed the character and advance widths for text. If it is false then null will be passed.

This is quite computationally expensive so if you do not need to know the current text position on the line then you can disable this feature.


ContentStreamScanner Warnings Property. Content streams contain operators and parameters. ABCpdf .NET PDF Library.

Warnings Property

Type | Default Value | Read Only | Description
[C#] List<string> [Visual Basic] List<string> | null | No | Content streams contain operators and parameters.

Notes

Content streams contain operators and parameters.

If part of the the content stream is badly formed - for example if a parameter is missing - then an internal exception will be raised.

Typically you want to move on past this and try and recover. Just because a text spacing operator is incorrect does not mean you want to abandon the whole page.

Equally you do not want to completely ignore this type of error. As such, if you assign a value to this proprty, any errors or warnings will be stored here.


ContentStreamScanner Stack Property. The current graphics Stack. ABCpdf .NET PDF Library.

Stack Property

Type | Default Value | Read Only | Description
[C#] Stack<GraphicsStack> [Visual Basic] State<GraphicsStack> | n/a | No | The current graphics stack.

Notes

The current graphics stack. This broadly corresponds with the 'Graphics Stack' as described in the PDF Specification.

The current graphics stack is what is saved and restored using the PDF save and restore operators.

A save pushes a copy of the current state onto the stack. A restore pops the top from the stack.

The top item on the stack is available via the State property.


ContentStreamScanner State Property. The current graphics state. ABCpdf .NET PDF Library.

State Property

Type | Default Value | Read Only | Description
[C#] GraphicsState [Visual Basic] GraphicsState | null | Yes | The current graphics state.

Notes

The current graphics state. This broadly corresponds with the 'Graphics State' as described in the PDF Specification.

The current graphics state is what is saved and restored using the PDF save and restore operators.


ContentStreamScanner Text Property. The current text state. ABCpdf .NET PDF Library.

Text Property

Type | Default Value | Read Only | Description
[C#] TextState [Visual Basic] TextState | null | Yes | The current text state.

Notes

The current text state. Text state is not saved and restored using the PDF save and restore operators.

Text state operators can occur anywhere in a content stream but typically they only occur within text blocks.

A text block initializes a text matrix which allows text positioning and text showing. At the end of the text block the matrix is discarded.


ContentStreamScanner GraphicsState Class

GraphicsState Class

The graphics state as saved and restored using the PDF save and restore graphics state operators.

System.Object
   WebSupergoo.ABCpdf12.Operations.ContentStreamScanner.GraphicsState

Method | Description
GraphicsState | Create a new GraphicsState initialized to default values.
Clone | Create a deep copy of this graphics state.

Property | Description
CTM | The Current Transformation Matrix (CTM).
StrokeColorSpace | The name of the current stroking color space.
FillColorSpace | The name of the current stroking color space.
StrokeColor | The component values defining the stroke color in the current color space.
StrokeColorName | The stroke name used when selecting patten color spaces.
FillColor | The component values defining the fill color in the current color space.
FillColorName | The fill name used when selecting patten color spaces.
LineWidth | The line width for stroked paths.
LineCap | The line cap for the end of stroked paths.
LineJoin | The line join between segments of stroked paths.
MiterLimit | The miter defining how sharm mitered joins may be.
DashArray | The dash array defining the lengths of shown and unshown parts of a path.
DashPhase | The length at which the first item in a dashed line starts.
RenderingIntent | The rendering intent determines how colors may be adapted to better fit with the limitations of the output device or color space.
Flatness | The degree of precision to use when drawing curves.
Smoothness | The degree of precision to use when drawing color gradients.
StrokeAdjustment | Whether to apply stroke adjustment or not.
BlendMode | The blend mode to be used when transparency is in use.
SoftMask | The soft mask to be used for transparent clipping.
StrokeOverprint | Whether to apply overprint when stroking.
FillOverprint | Whether to apply overprint when filling.
OverprintMode | The overprint mode.
BlackGeneration | The black generation function or name.
UndercolorRemoval | The undercolor removal function or name.
TransferFunction | The transfer function - either a function or name.
Halftone | A halftone dictionary or stream to be used when converting continuous tone images to monotone.
StrokeAlpha | A constant alpha value to use when stroking paths.
FillAlpha | A constant alpha value to use when filling paths.
AlphaIsShape | Whether alpha should be used to define shape or opacity.
GlyphWidth | The width of a glyph.
GlyphWidthBounds | The width and bounds of a glyph.
TextCharacterSpacing | The spacing between adjacent characters as expressed in unscaled text space units.
TextWordSpacing | The spacing between adjacent words as expressed in unscaled text space units.
TextHorizontalScaling | A factor to be used to horizontally scale text.
TextLeading | The distance between lines as expressed in unscaled text units.
TextFont | The name of the current font.
TextFontSize | The scale factor for the current font.
TextRenderingMode | The text rendering mode for text.
TextRise | The amount by which text should be shifted up as expressed in uncscaled text units.
TextKnockout | Whether text knockout should be applied.


ContentStreamScanner GraphicsState GraphicsState Function. Create a new GraphicsState initialized to default values. ABCpdf .NET PDF Library.

GraphicsState Function

Create a new GraphicsState initialized to default values.

Syntax

[C#]
GraphicsState()

[Visual Basic]
GraphicsState()

Params
Name | Description
none |

Notes

Create a new GraphicsState initialized to default values.


ContentStreamScanner GraphicsState Clone Function. Create a deep copy of this graphics state. ABCpdf .NET PDF Library.

Clone Function

Create a deep copy of this graphics state.

Syntax

[C#]
GraphicsState Clone()

[Visual Basic]
Clone() As GraphicsState

Params
Name | Description
return | The copy.

Notes

Create a deep copy of this graphics state.


ContentStreamScanner GraphicsState CTM Property. The Current Transformation Matrix (CTM). ABCpdf .NET PDF Library.

CTM Property

Type | Default Value | Read Only | Description
[C#] XTransform [Visual Basic] XTransform | null | Yes | The Current Transformation Matrix (CTM).

Notes

The Current Transformation Matrix (CTM).

This is used to map user coordinates - the values in the content stream - to device coordintes - positions on the page.


ContentStreamScanner GraphicsState StrokeColorSpace Property. The name of the current stroking color space. ABCpdf .NET PDF Library.

StrokeColorSpace Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | The name of the current stroking color space.

Notes

The name of the current stroking color space.

This may be one of the standard color spaces - DeviceGray, DeviceRGB, DeviceCMYK or Pattern.

If it is not a standard color space then it is the name of a resource in the ColorSpace subdictionary.


ContentStreamScanner GraphicsState FillColorSpace Property. The name of the current stroking color space. ABCpdf .NET PDF Library.

FillColorSpace Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | The name of the current stroking color space.

Notes

The name of the current stroking color space.

This may be one of the standard color spaces - DeviceGray, DeviceRGB, DeviceCMYK or Pattern.

If it is not a standard color space then it is the name of a resource in the ColorSpace subdictionary.


ContentStreamScanner GraphicsState StrokeColor Property. The component values defining the stroke color in the current color space. ABCpdf .NET PDF Library.

StrokeColor Property

Type | Default Value | Read Only | Description
[C#] double[] [Visual Basic] Double[] | null | No | The component values defining the stroke color in the current color space.

Notes

The component values defining the stroke color in the current color space.


ContentStreamScanner GraphicsState StrokeColorName Property. The stroke name used when selecting patten color spaces. ABCpdf .NET PDF Library.

StrokeColorName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | The stroke name used when selecting patten color spaces.

Notes

The stroke name used when selecting patten color spaces.


ContentStreamScanner GraphicsState FillColor Property. The component values defining the fill color in the current color space. ABCpdf .NET PDF Library.

FillColor Property

Type | Default Value | Read Only | Description
[C#] double[] [Visual Basic] Double[] | null | No | The component values defining the fill color in the current color space.

Notes

The component values defining the fill color in the current color space.


ContentStreamScanner GraphicsState FillColorName Property. The fill name used when selecting patten color spaces. ABCpdf .NET PDF Library.

FillColorName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | The fill name used when selecting patten color spaces.

Notes

The fill name used when selecting patten color spaces.


ContentStreamScanner GraphicsState LineWidth Property. The line width for stroked paths. ABCpdf .NET PDF Library.

LineWidth Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | The line width for stroked paths.

Notes

The line width for stroked paths.


ContentStreamScanner GraphicsState LineCap Property. The line cap for the end of stroked paths. ABCpdf .NET PDF Library.

LineCap Property

Type | Default Value | Read Only | Description
[C#] LineCap [Visual Basic] LineCap | null | No | The line cap for the end of stroked paths.

Notes

The line cap for the end of stroked paths.

The LineCap enumeration may take the following values:

  • Butt - Butt line cap.
  • Round - Round line cap.
  • Square - Square line cap.


ContentStreamScanner GraphicsState LineJoin Property. The line join between segments of stroked paths. ABCpdf .NET PDF Library.

LineJoin Property

Type | Default Value | Read Only | Description
[C#] LineJoin [Visual Basic] LineJoin | null | No | The line join between segments of stroked paths.

Notes

The line join between segments of stroked paths.

The LineJoin enumeration may take the following values:

  • Miter - Miter join.
  • Round - Round join.
  • Bevel - Bevel join.


ContentStreamScanner GraphicsState MiterLimit Property. The miter defining how sharm mitered joins may be. ABCpdf .NET PDF Library.

MiterLimit Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | The miter defining how sharm mitered joins may be.

Notes

The miter defining how sharm mitered joins may be.


ContentStreamScanner GraphicsState DashArray Property. The dash array defining the lengths of shown and unshown parts of a path. ABCpdf .NET PDF Library.

DashArray Property

Type | Default Value | Read Only | Description
[C#] double[] [Visual Basic] Double[] | null | No | The dash array defining the lengths of shown and unshown parts of a path.

Notes

The dash array defining the lengths of shown and unshown parts of a path.

The first length is shows, the second hidden and so on. When the end of the array is reached it repeats.


ContentStreamScanner GraphicsState DashPhase Property. The length at which the first item in a dashed line starts. ABCpdf .NET PDF Library.

DashPhase Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | The length at which the first item in a dashed line starts.

Notes

The length at which the first item in a dashed line starts.


ContentStreamScanner GraphicsState RenderingIntent Property. The rendering intent determines how colors may be adapted to better fit with the limitations of the output device or color space. ABCpdf .NET PDF Library.

RenderingIntent Property

Type | Default Value | Read Only | Description
[C#] RenderingIntent [Visual Basic] RenderingIntent | null | No | The rendering intent determines how colors may be adapted to better fit with the limitations of the output device or color space.

Notes

The rendering intent determines how colors may be adapted to better fit with the limitations of the output device or color space.


ContentStreamScanner GraphicsState Flatness Property. The degree of precision to use when drawing curves. ABCpdf .NET PDF Library.

Flatness Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | The degree of precision to use when drawing curves.

Notes

The degree of precision to use when drawing curves.

The value represents the maximum error which is acceptable and is measured in device units - typically pixels.

A value of zero represents a device default.


ContentStreamScanner GraphicsState Smoothness Property. The degree of precision to use when drawing color gradients. ABCpdf .NET PDF Library.

Smoothness Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | The degree of precision to use when drawing color gradients.

Notes

The degree of precision to use when drawing color gradients.


ContentStreamScanner GraphicsState StrokeAdjustment Property. Whether to apply stroke adjustment or not. ABCpdf .NET PDF Library.

StrokeAdjustment Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to apply stroke adjustment or not.

Notes

Whether to apply stroke adjustment or not.

Adjusted strokes maintain line thickness at the expense of errors in positioning.


ContentStreamScanner GraphicsState BlendMode Property. The blend mode to be used when transparency is in use. ABCpdf .NET PDF Library.

BlendMode Property

Type | Default Value | Read Only | Description
[C#] BlendMode[] [Visual Basic] BlendMode[] | null | No | The blend mode to be used when transparency is in use.

Notes

The blend mode to be used when transparency is in use.

The BlendMode enumeration may take the following values:

  • Normal - Normal.
  • Multiply - Multiply source and backdrop colors.
  • Screen - Multiply complements of souurce and backdrop colors and then complement the output.
  • Overlay - Multiplies of screens depending on backdrop.
  • Darken - Minimum of source and backdrop.
  • Lighten - Maximum of source and backdrop.
  • ColorDodge - Brightens the backdrop.
  • ColorBurn - Darkens the backdrop.
  • HardLight - Like shining a spotlight on the backrop.
  • SoftLight - Like shining a light on the backrop.
  • Difference - Finds the difference between th colors.
  • Exclusion - A lower contrast difference.
  • Hue - Hue of source, saturation and luminescence of backdrop.
  • Saturation - Saturation of source, hue and luminescence of backdrop.
  • Color - Hue and saturation of source, luminescence of backdrop.
  • Luminosity - Luminosity of source, hue and saturation of backdrop.


ContentStreamScanner GraphicsState SoftMask Property. The soft mask to be used for transparent clipping. ABCpdf .NET PDF Library.

SoftMask Property

Type | Default Value | Read Only | Description
[C#] Atom [Visual Basic] Atom | null | No | The soft mask to be used for transparent clipping.

Notes

The soft mask to be used for transparent clipping.


ContentStreamScanner GraphicsState StrokeOverprint Property. Whether to apply overprint when stroking. ABCpdf .NET PDF Library.

StrokeOverprint Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to apply overprint when stroking.

Notes

Whether to apply overprint when stroking.


ContentStreamScanner GraphicsState FillOverprint Property. Whether to apply overprint when filling. ABCpdf .NET PDF Library.

FillOverprint Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether to apply overprint when filling.

Notes

Whether to apply overprint when filling.


ContentStreamScanner GraphicsState OverprintMode Property. The overprint mode. ABCpdf .NET PDF Library.

OverprintMode Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | The overprint mode.

Notes

The overprint mode. This may be 0 or 1 and the value controls the way that colors are interpreted when overprinting.


ContentStreamScanner GraphicsState BlackGeneration Property. The black generation function or name. ABCpdf .NET PDF Library.

BlackGeneration Property

Type | Default Value | Read Only | Description
[C#] Atom [Visual Basic] Atom | null | No | The black generation function or name.

Notes

The black generation function or name.


ContentStreamScanner GraphicsState UndercolorRemoval Property. The undercolor removal function or name. ABCpdf .NET PDF Library.

UndercolorRemoval Property

Type | Default Value | Read Only | Description
[C#] Atom [Visual Basic] Atom | null | No | The undercolor removal function or name.

Notes

The undercolor removal function or name.


ContentStreamScanner GraphicsState TransferFunction Property. The transfer function - either a function or name. ABCpdf .NET PDF Library.

TransferFunction Property

Type | Default Value | Read Only | Description
[C#] Atom [Visual Basic] Atom | null | No | The transfer function - either a function or name.

Notes

The transfer function - either a function or name.


ContentStreamScanner GraphicsState Halftone Property. A halftone dictionary or stream to be used when converting continuous tone images to monotone. ABCpdf .NET PDF Library.

Halftone Property

Type | Default Value | Read Only | Description
[C#] Atom [Visual Basic] Atom | null | No | A halftone dictionary or stream to be used when converting continuous tone images to monotone.

Notes

A halftone dictionary or stream to be used when converting continuous tone images to monotone.


ContentStreamScanner GraphicsState StrokeAlpha Property. A constant alpha value to use when stroking paths. ABCpdf .NET PDF Library.

StrokeAlpha Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | A constant alpha value to use when stroking paths.

Notes

A constant alpha value to use when stroking paths.


ContentStreamScanner GraphicsState FillAlpha Property. A constant alpha value to use when filling paths. ABCpdf .NET PDF Library.

FillAlpha Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | A constant alpha value to use when filling paths.

Notes

A constant alpha value to use when filling paths.


ContentStreamScanner GraphicsState AlphaIsShape Property. Whether alpha should be used to define shape or opacity. ABCpdf .NET PDF Library.

AlphaIsShape Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether alpha should be used to define shape or opacity.

Notes

Whether alpha should be used to define shape or opacity.


ContentStreamScanner GraphicsState GlyphWidth Property. The width of a glyph. ABCpdf .NET PDF Library.

GlyphWidth Property

Type | Default Value | Read Only | Description
[C#] double[] [Visual Basic] Double[] | null | No | The width of a glyph.

Notes

The width of a glyph. This property is only used in Type 3 fonts.


ContentStreamScanner GraphicsState GlyphWidthBounds Property. The width and bounds of a glyph. ABCpdf .NET PDF Library.

GlyphWidthBounds Property

Type | Default Value | Read Only | Description
[C#] double[] [Visual Basic] Double[] | null | No | The width and bounds of a glyph.

Notes

The width and bounds of a glyph. This property is only used in Type 3 fonts.


ContentStreamScanner GraphicsState TextCharacterSpacing Property. The spacing between adjacent characters as expressed in unscaled text space units. ABCpdf .NET PDF Library.

TextCharacterSpacing Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | The spacing between adjacent characters as expressed in unscaled text space units.

Notes

The spacing between adjacent characters as expressed in unscaled text space units.


ContentStreamScanner GraphicsState TextWordSpacing Property. The spacing between adjacent words as expressed in unscaled text space units. ABCpdf .NET PDF Library.

TextWordSpacing Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | The spacing between adjacent words as expressed in unscaled text space units.

Notes

The spacing between adjacent words as expressed in unscaled text space units.

Word spacing is applied by adding space to every character with value 0x20 in single byte fonts.


ContentStreamScanner GraphicsState TextHorizontalScaling Property. A factor to be used to horizontally scale text. ABCpdf .NET PDF Library.

TextHorizontalScaling Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | A factor to be used to horizontally scale text.

Notes

A factor to be used to horizontally scale text. A value of 1.0 indicates normal scaling.


ContentStreamScanner GraphicsState TextLeading Property. The distance between lines as expressed in unscaled text units. ABCpdf .NET PDF Library.

TextLeading Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | The distance between lines as expressed in unscaled text units.

Notes

The distance between lines as expressed in unscaled text units.


ContentStreamScanner GraphicsState TextFont Property. The name of the current font. ABCpdf .NET PDF Library.

TextFont Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | The name of the current font.

Notes

The name of the current font.

This may be one of the pre-defined built in fonts like Times-Roman or Helvetica.

If it is not one of the pre-defined fonts then it indicates a font resource in the Fonts subdictionary.


ContentStreamScanner GraphicsState TextFontSize Property. The scale factor for the current font. ABCpdf .NET PDF Library.

TextFontSize Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | The scale factor for the current font.

Notes

The scale factor for the current font.


ContentStreamScanner GraphicsState TextRenderingMode Property. The text rendering mode for text. ABCpdf .NET PDF Library.

TextRenderingMode Property

Type | Default Value | Read Only | Description
[C#] TextRenderingMode [Visual Basic] TextRenderingMode | null | No | The text rendering mode for text.

Notes

The text rendering mode for text.

The TextRenderingMode enumeration may take the following values:

  • Fill - Fill text - the default.
  • Stroke - Stroke glyph outlines.
  • FillAndStroke - Fill text and stroke glyph outlines.
  • Invisible - Neither fill nor stroke.
  • FillAndClip - Fill text then add to clipping path.
  • StrokeAndClip - Stroke text then add to clipping path.
  • FillStrokeAndClip - Fill and stroke text then add to clipping path.
  • Clip - Add to clipping path.


ContentStreamScanner GraphicsState TextRise Property. The amount by which text should be shifted up as expressed in uncscaled text units. ABCpdf .NET PDF Library.

TextRise Property

Type | Default Value | Read Only | Description
[C#] double [Visual Basic] Double | 0.0 | No | The amount by which text should be shifted up as expressed in uncscaled text units.

Notes

The amount by which text should be shifted up as expressed in uncscaled text units.


ContentStreamScanner GraphicsState TextKnockout Property. Whether text knockout should be applied. ABCpdf .NET PDF Library.

TextKnockout Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether text knockout should be applied.

Notes

Whether text knockout should be applied.


ContentStreamScanner OperatorCategories Class

OperatorCategories Class

Operator categories.

These align with the official categories as defined in the PDF specification.

System.Object
   WebSupergoo.ABCpdf12.Operations.ContentStreamScanner.OperatorCategories

Method
 Description

Property | Description
GeneralGraphicsState | General graphics state.
SpecialGraphicsState | Special graphics state.
PathConstruction | Path construction.
PathPainting | Path painting.
ClippingPaths | Clipping paths.
TextObjects | Text objects.
TextState | Text state.
TextPositioning | Text positioning.
TextShowing | Text showing.
Type3Fonts | Type 3 fonts.
Color | Color.
ShadingPatterns | Shading patterns.
InlineImages | Inline images.
XObjects | XObjects.
MarkedContent | Marked content.
Compatibility | Compatibility.


ContentStreamScanner OperatorCategories GeneralGraphicsState Property. General graphics state. ABCpdf .NET PDF Library.

GeneralGraphicsState Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | "w", "J", "j", "M", "d", "ri", "i", "gs" | Yes | General graphics state.

Notes
General graphics state.


ContentStreamScanner OperatorCategories SpecialGraphicsState Property. Special graphics state. ABCpdf .NET PDF Library.

SpecialGraphicsState Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | "q", "Q", "cm" | Yes | Special graphics state.

Notes
Special graphics state.


ContentStreamScanner OperatorCategories PathConstruction Property. Path construction. ABCpdf .NET PDF Library.

PathConstruction Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | "m", "l", "c", "v", "y", "h", "re" | Yes | Path construction.

Notes
Path construction.


ContentStreamScanner OperatorCategories PathPainting Property. Path painting. ABCpdf .NET PDF Library.

PathPainting Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | "S", "s", "f", "F", "f*", "B", "B*", "b", "b*", "n" | Yes | Path painting.

Notes
Path painting.


ContentStreamScanner OperatorCategories ClippingPaths Property. Clipping paths. ABCpdf .NET PDF Library.

ClippingPaths Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | "W", "W*" | Yes | Clipping paths.

Notes
Clipping paths.


ContentStreamScanner OperatorCategories TextObjects Property. Text objects. ABCpdf .NET PDF Library.

TextObjects Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | "BT", "ET" | Yes | Text objects.

Notes
Text objects.


ContentStreamScanner OperatorCategories TextState Property. Text state. ABCpdf .NET PDF Library.

TextState Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | "Tc", "Tw", "Tz", "TL", "Tf", "Tr", "Ts" | Yes | Text state.

Notes
Text state.


ContentStreamScanner OperatorCategories TextPositioning Property. Text positioning. ABCpdf .NET PDF Library.

TextPositioning Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | "Td", "TD", "Tm", "T*" | Yes | Text positioning.

Notes
Text positioning.


ContentStreamScanner OperatorCategories TextShowing Property. Text showing. ABCpdf .NET PDF Library.

TextShowing Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | "Tj", "TJ", "\'", "\"" | Yes | Text showing.

Notes
Text showing.


ContentStreamScanner OperatorCategories Type3Fonts Property. Type 3 fonts. ABCpdf .NET PDF Library.

Type3Fonts Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | "d0", "d1" | Yes | Type 3 fonts.

Notes
Type 3 fonts. Note that these are only permitted in Type3 font definitions.


ContentStreamScanner OperatorCategories Color Property. Color. ABCpdf .NET PDF Library.

Color Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | "CS", "cs", "SC", "SCN", "sc", "scn", "G", "g", "RG", "rg", "K", "k" | Yes | Color.

Notes
Color.


ContentStreamScanner OperatorCategories ShadingPatterns Property. Shading patterns. ABCpdf .NET PDF Library.

ShadingPatterns Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | "sh" | Yes | Shading patterns.

Notes
Shading patterns.


ContentStreamScanner OperatorCategories InlineImages Property. Inline images. ABCpdf .NET PDF Library.

InlineImages Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | "BI", "ID", "EI" | Yes | Inline images.

Notes
Inline images.


ContentStreamScanner OperatorCategories XObjects Property. XObjects. ABCpdf .NET PDF Library.

XObjects Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | "Do" | Yes | XObjects.

Notes
XObjects.


ContentStreamScanner OperatorCategories MarkedContent Property. Marked content. ABCpdf .NET PDF Library.

MarkedContent Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | "MP", "DP", "BMC", "BDC", "EMC" | Yes | Marked content.

Notes
Marked content.


ContentStreamScanner OperatorCategories Compatibility Property. Compatibility. ABCpdf .NET PDF Library.

Compatibility Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | "BX", "EX" | Yes | Compatibility.

Notes
Compatibility.


ContentStreamScanner TextState Class

TextState Class

The text state which determines the positioning of text.

System.Object
   WebSupergoo.ABCpdf12.Operations.ContentStreamScanner.TextState

Method | Description
TextState | Create a new TextState initialized to default values.
GetTextRenderingMatrix | Get the current Text Rendering Matrix (Trm).
Advance | Advances the text position by an amount - typically the width of a glyph.

Property | Description
TextMatrix | The transformation matrix which defines the scale and positioning of a block of text.
TextLineMatrix | The transformation matrix which defines the scale and positioning of the current line of text within the current block of text.


ContentStreamScanner TextState TextState Function. Create a new TextState initialized to default values. ABCpdf .NET PDF Library.

TextState Function

Create a new TextState initialized to default values.

Syntax

[C#]
TextState()

[Visual Basic]
TextState()

Params
Name | Description
none |

Notes

Create a new TextState initialized to default values.


ContentStreamScanner TextState GetTextRenderingMatrix Function. Get the current Text Rendering Matrix (Trm). ABCpdf .NET PDF Library.

GetTextRenderingMatrix Function

Get the current Text Rendering Matrix (Trm).

Syntax

[C#]
virtual XTransform GetTextRenderingMatrix(GraphicsState state)

[Visual Basic]
Overridable Function GetTextRenderingMatrix(state As GraphicsState) As XTransform

Params
Name | Description
state | The current graphics state.
return | The Text Rendering Matrix.

Notes

Get the current Text Rendering Matrix (Trm).

This transformation matrix encompasses all text state parameters and can be used to place text for output.

The Trm is part of the PDF Specification and is defined precisely in the documentation for this.


ContentStreamScanner TextState Advance Function. Advances the text position by an amount - typically the width of a glyph. ABCpdf .NET PDF Library.

Advance Function

Advances the text position by an amount - typically the width of a glyph.

Syntax

[C#]
virtual double Advance(double delta, bool vertical)

[Visual Basic]
Overridable Function Advance(delta As double, vertical As bool) As Double

Params
Name | Description
delta | The amount to advance in unscaled text units.
vertical | Whether the advance should be horizontal or vertical.
return | The distance that the Text Matrix has been transformed by.

Notes

Advances the text position by an amount - typically the width of a glyph.


ContentStreamScanner TextState TextMatrix Property. The transformation matrix which defines the scale and positioning of a block of text. ABCpdf .NET PDF Library.

TextMatrix Property

Type | Default Value | Read Only | Description
[C#] XTransform [Visual Basic] XTransform | null | No | The transformation matrix which defines the scale and positioning of a block of text.

Notes

The transformation matrix which defines the scale and positioning of a block of text.


ContentStreamScanner TextState TextLineMatrix Property. The transformation matrix which defines the scale and positioning of the current line of text within the current block of text. ABCpdf .NET PDF Library.

TextLineMatrix Property

Type | Default Value | Read Only | Description
[C#] XTransform [Visual Basic] XTransform | null | No | The transformation matrix which defines the scale and positioning of the current line of text within the current block of text.

Notes

The transformation matrix which defines the scale and positioning of the current line of text within the current block of text.


AtomAndObject Class

A utility class encompassing an Atom and a related IndirectObject.

System.Object
   WebSupergoo.ABCpdf12.Operations.AtomAndObject

Method | Description
AtomAndObject | Create an AtomAndObject.

Property | Description
Atom | The Atom.
Object | The Object.


AtomAndObject AtomAndObject Function. Create an AtomAndObject. ABCpdf .NET PDF Library.

AtomAndObject Function

Create an AtomAndObject.

Syntax

[C#]
AtomAndObject(Atom atom, IndirectObject obj)
AtomAndObject()

[Visual Basic]
AtomAndObject(atom As Atom, obj As IndirectObject)
AtomAndObject()

Params
Name | Description
atom | The Atom.
obj | The IndirectObject.

Notes

Create an AtomAndObject.


AtomAndObject Atom Property. The Atom. ABCpdf .NET PDF Library.

Atom Property

Type | Default Value | Read Only | Description
[C#] Atom [Visual Basic] Atom | null | No | The Atom.

Notes
The Atom.


AtomAndObject Object Property. The Object. ABCpdf .NET PDF Library.

Object Property

Type | Default Value | Read Only | Description
[C#] IndirectObject [Visual Basic] IndirectObject | null | No | The Object.

Notes
The Object.


Resorcerer Class

A class for managing document resources as found in Pages and FormXObjects.

System.Object
   WebSupergoo.ABCpdf12.Operations.Resorcerer

Method | Description
Resorcerer | Create a new Resorcerer.
ClearCache | Clear the GetResource lookup cache.
GetResource | Gets a resource from the resources dictionary.
Property
 Description


Resorcerer Resorcerer Function. Create a new Resorcerer. ABCpdf .NET PDF Library.

Resorcerer Function

Create a new Resorcerer.

Syntax

[C#]
Resorcerer()

[Visual Basic]
Resorcerer()

Params
Name | Description
none |

Notes

Create a new Resorcerer.


Resorcerer ClearCache Function. Clear the GetResource lookup cache. ABCpdf .NET PDF Library.

ClearCache Function

Clear the GetResource lookup cache.

Syntax

[C#]
virtual void ClearCache()

[Visual Basic]
Overridable Function ClearCache() As void

Params
Name | Description
none |

Notes

Clear the GetResource lookup cache.


Resorcerer GetResource Function. Gets a resource from the resources dictionary. ABCpdf .NET PDF Library.

GetResource Function

Gets a resource from the resources dictionary.

Syntax

[C#]
virtual AtomAndObject GetResource(IndirectObject owner, ResourceType type, string name)

[Visual Basic]
Overridable Function GetResource(owner As IndirectObject, type As ResourceType, name As string) As AtomAndObject

Params
Name | Description
owner | The owner of the stream - either a Page or Form XObject.
type | The type of resource. For example this might be "Font".
name | The name of the resource as referenced in the content stream.
return | The resource.

Notes

Gets a resource from the resources dictionary.

Resources are cached for fast lookup of repeated requests.

The ResourceType enumeration may take the following values:

  • ExtGState - External graphics states.
  • ColorSpace - Color space for graphics.
  • Pattern - Pattern for filling areas.
  • Shading - Shading type for filling areas.
  • XObject - Encapsulated image in raster or vector form.
  • Font - Font typeface for drawing text.
  • ProcSet - Predefined procedure sets. This property is deprecated in the PDF specification.
  • Properties - Marked content properties.


VirtualPageOperation Class

Operation to for drawing onto a virtual page.

System.Object
   WebSupergoo.ABCpdf12.Operations.VirtualPageOperation

Method | Description
VirtualPageOperation | Create a VirtualPageOperation.
GetFormXObject | Get the current page as a compressed FormXObject.

Property | Description
Page | The ID of the virtual page.


VirtualPageOperation VirtualPageOperation Function. Create a VirtualPageOperation. ABCpdf .NET PDF Library.

VirtualPageOperation Function

Create a VirtualPageOperation.

Syntax

[C#]
VirtualPageOperation(Doc doc)
VirtualPageOperation(Doc doc, double width, double height)
VirtualPageOperation(Doc doc, XRect rect)

[Visual Basic]
VirtualPageOperation(doc As Doc)
VirtualPageOperation(doc As Doc, width As double, height As double)
VirtualPageOperation(doc As Doc, rect As XRect)

Params
Name | Description
doc | The Doc for which the page is intended.
width | The width of the page in points.
height | The height of the page in points.
rect | The rectangle for the page in points.

Notes

Create a VirtualPageOperation.

If no page dimensions are specified the page will default to the current document MediaBox.

Creating this process sets the current Doc.Page to the newly created virtual page. This means you can immediately use Doc methods to add content to this page.

However it also means that after you have finished with this object, you will need to set the Doc.Page before you can add content to existing pages of the document.


VirtualPageOperation GetFormXObject Function. Get the current page as a compressed FormXObject. ABCpdf .NET PDF Library.

GetFormXObject Function

Get the current page as a compressed FormXObject.

Syntax

[C#]
virtual FormXObject GetFormXObject()

[Visual Basic]
Overridable Function GetFormXObject() As FormXObject

Params
Name | Description
return | The FormXObject.

Notes

Get the current page as a compressed FormXObject.

This function copies the content so that the FormXObject reflects the current state.

However you can continue to use the virtual page and then later obtain a new FormXObject reflecting the then updated content.


VirtualPageOperation Page Property. The ID of the virtual page. ABCpdf .NET PDF Library.

Page Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | Yes | The ID of the virtual page.

Notes

The ID of the virtual page.

This can be used in the same way as a real page ID.


VectorizeTextOperation Class

An operation used to convert text glyphs to polygons in PDF documents.

System.Object
   WebSupergoo.ABCpdf12.Operations.Operation
      WebSupergoo.ABCpdf12.Operations.VectorizeTextOperation

Method | Description
VectorizeTextOperation | VectorizeTextOperation Constructor.
Throws Exceptions Vectorize | Vectorize the text in the pages of a document.
 | inherited methods...

Property | Description
 | inherited properties...


VectorizeTextOperation VectorizeTextOperation Function. VectorizeTextOperation Constructor. ABCpdf .NET PDF Library.

VectorizeTextOperation Constructor

VectorizeTextOperation Constructor.

Syntax

[C#]
VectorizeTextOperation()

[Visual Basic]
Sub New()

Params
Name | Description
none |

Notes

Create a VectorizeTextOperation instance.

Example

See the Vectorize method.


VectorizeTextOperation Vectorize Method. Vectorizes the text glyphs in the pages in a document. ABCpdf .NET PDF Library.

Vectorize Method

Vectorizes the text glyphs in the pages of a document.

Syntax

[C#]
void Vectorize(Doc doc)
void Vectorize(Pages pages)
void Vectorize(Page page)

[Visual Basic]
Sub Vectorize(doc As Doc)
Sub Vectorize(pages As Pages)
Sub Vectorize(page As Page)

Throws Exceptions may throw Exception()

Params
Name | Description
doc | The document containing the pages of text to be vectorized.
pages | The pages of text to be vectorized as referenced by a Pages IndirectObject.
page | The page of text to be vectorized as referenced by a Page IndirectObject.

Notes

Vectorizes the text glyphs on pages in the document.

The VectorizeTextOperation operation removes font glyphs and replaces them with polygonal outlines that appear the same.

The Operation.ProcessingObject property is used to give the user some control over which fonts would be vectorized. Setting the ProcessingObjectEventArgs.Cancel to 'true' turns off the vectorization for the particular font that's passed in to the Processing method (see examples below)

Please see the FontObject class for more information on the ProcessingObjectEventArgs.Object argument

The Operation.ProcessedObject property is not used with this operation

Example

Here we vectorize all the text in the document.

[C#]

static void VectorizeDocText(string inDocName) {
  VectorizeTextOperation vecOp = new VectorizeTextOperation();
  Doc doc = new Doc();
  doc.Read(Server.MapPath(inDocName));
  vecOp.Vectorize(doc);
  doc.Save(Server.MapPath("VectorizedSample.pdf"));
}

[Visual Basic]

  Dim vecOp As New VectorizeTextOperation()
  Dim doc As New Doc()
  doc.Read(Server.MapPath("../mypics/sample.pdf"))
  vecOp.Vectorize(doc)
  doc.Save(Server.MapPath("../mypics/VectorizedSample.pdf"))

Here we Vectorize all but the bold text.

[C#]

static void Vectorizing(object sender, ProcessingObjectEventArgs e) {
  FontObject theFont = e.Object as FontObject;
  if (theFont != null && theFont.BaseFont.Contains("Bold"))
    e.Cancel = true;
}
static void VectorizeDocText(string inDocName) {
  VectorizeTextOperation vecOp = new VectorizeTextOperation();
  Doc doc = new Doc();
  doc.Read(Server.MapPath(inDocName));
  // Use the 'Vectorizing' method to decide which fonts to vectorize
  vecOp.ProcessingObject += new ProcessingObjectEventHandler(Vectorizing);
  vecOp.Vectorize(doc);
  doc.Save(Server.MapPath("VectorizedSample.pdf"));
}

[Visual Basic]

Private Shared Sub Vectorizing(ByVal sender As Object, ByVal e As ProcessingObjectEventArgs)
  Dim theFont As FontObject = TryCast(e.Object, FontObject)
  If theFont IsNot Nothing AndAlso theFont.BaseFont.Contains("Bold") Then e.Cancel = True
End Sub

Private Shared Sub VectorizeDocText(ByVal inDocName As String)
  Dim vecOp As VectorizeTextOperation = New VectorizeTextOperation()
  Dim doc As Doc = New Doc()
  doc.Read(Server.MapPath(inDocName))
  vecOp.ProcessingObject += New ProcessingObjectEventHandler(AddressOf Vectorizing)
  vecOp.Vectorize(doc)
  doc.Save(Server.MapPath("VectorizedSample.pdf"))
End Sub

Vectorize all the external fonts.

[C#]

static void Vectorizing(object sender, ProcessingObjectEventArgs e) {
  FontObject theFont = e.Object as FontObject;
  if (theFont != null && theFont.EmbeddedFont != null)
    e.Cancel = true;
}
static void VectorizeDocText(string inDocName) {
  VectorizeTextOperation vecOp = new VectorizeTextOperation();
  Doc doc = new Doc();
  doc.Read(Server.MapPath(inDocName));
  // Use the 'Vectorizing' method to decide which fonts to vectorize
  vecOp.ProcessingObject += new ProcessingObjectEventHandler(Vectorizing);
  vecOp.Vectorize(doc);
  doc.Save(Server.MapPath("VectorizedSample.pdf"));
}

[Visual Basic]

Private Shared Sub Vectorizing(ByVal sender As Object, ByVal e As ProcessingObjectEventArgs)
  Dim theFont As FontObject = TryCast(e.Object, FontObject)
  If theFont IsNot Nothing AndAlso theFont.EmbeddedFont IsNot Nothing Then e.Cancel = True
End Sub

Private Shared Sub VectorizeDocText(ByVal inDocName As String)
  Dim vecOp As VectorizeTextOperation = New VectorizeTextOperation()
  Dim doc As Doc = New Doc()
  doc.Read(Server.MapPath(inDocName))
  vecOp.ProcessingObject += New ProcessingObjectEventHandler(AddressOf Vectorizing)
  vecOp.Vectorize(doc)
  doc.Save(Server.MapPath("VectorizedSample.pdf"))
End Sub


ZZ Elements ArrayElement<T>

ArrayElement<T> Class

Class ArrayElement.

This class represents an array of typed Elements.

Since it is an array, the core Atom it is created from should be an ArrayAtom.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ArrayElement<T>

Implements: IList<T>, IList

Type T : The type of Element that this ArrayElement contains.

Method | Description
ArrayElement<T> | Create a new ArrayElement.
IndexOf | Determines the index of a specific Element.
Throws Exceptions Insert | Inserts an Element into the array at the specified position.
Throws Exceptions RemoveAt | Removes the Element at the specified index.
Throws Exceptions Add | Add an Element to the end of the array.
Clear | Removes all Elements from the array.
Contains | Determines whether the array contains a specific Element.
CopyTo | Copies the Elements into an array.
Remove | Removes an Element from the array.
GetEnumerator | Returns an enumerator that iterates through the collection.
 | inherited methods...

Property | Description
ElementType | The Type of elements within the Array.
ElementsIndirect | Whether elements within the Array are required to be indirect.
Nullable | Whether NullAtom values are acceptable within the array.
Throws Exceptions Item[int index] | Gets or sets the Element at the specified index.
Count | Gets the number of Elements contained in the array.
 | inherited properties...


ZZ Elements ArrayElement<T> Constructor Function

ArrayElement<T> Function

Create a new ArrayElement.

Syntax

[C#]
ArrayElement<T>()
ArrayElement<T>(Atom atom, IndirectObject host)
ArrayElement<T>(IndirectObject obj)
ArrayElement<T>(Element relation, CreationOptions options)

[Visual Basic]
ArrayElement<T>()
ArrayElement<T>(atom As Atom, host As IndirectObject)
ArrayElement<T>(obj As IndirectObject)
ArrayElement<T>(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ArrayElement .

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from TaggedPDF.cs line 630 in the AccessiblePDF example project.

[C#]

if (parent.EntryK == null)
  parent.EntryK = new ArrayElement<Element>(parent);
if (index > parent.EntryK.Count)
  index = parent.EntryK.Count;
parent.EntryK.Insert(index, element);

[VB]

If parent.EntryK Is Nothing Then
  parent.EntryK = New ArrayElement(Of Element)(parent)
End If
If index > parent.EntryK.Count Then
  index = parent.EntryK.Count
End If
parent.EntryK.Insert(index, element)

This code snippet is taken from Annotations.cs line 81 in the Annotations example project.

[C#]

BorderStyleElement.EntryD = new ArrayElement<Element>(Atom.FromString(value), AnnotationElement.Host);

[VB]

BorderStyleElement.EntryD = New ArrayElement(Of Element)(Atom.FromString(value), AnnotationElement.Host)

This code snippet is taken from Annotations.cs line 310 in the Annotations example project.

[C#]

string partialName, parentName;
List<string> parts = new List<string>(fieldName.Split(new char[] { '.' }));
partialName = parts[parts.Count - 1];
if (string.IsNullOrEmpty(parts[parts.Count - 1]))
  parts.RemoveAt(parts.Count - 1);
parentName = string.Join(".", parts);
FieldElement parent = new FieldElement(Form.Doc.Form[parentName]);
if (parent.EntryKids == null)
  parent.EntryKids = new ArrayElement<FieldElement>();
parent.EntryKids.Add(FieldElement);
FieldElement.EntryParent = parent;
if (!string.IsNullOrEmpty(partialName))
  FieldElement.EntryT = fieldName;

[VB]

Dim partialName, parentName As String
Dim parts As New List(Of String)(fieldName.Split(New Char() { "."c }))
partialName = parts(parts.Count - 1)
If String.IsNullOrEmpty(parts(parts.Count - 1)) Then
  parts.RemoveAt(parts.Count - 1)
End If
parentName = String.Join(".", parts)
Dim parent As New FieldElement(Form.Doc.Form(parentName))
If parent.EntryKids Is Nothing Then
  parent.EntryKids = New ArrayElement(Of FieldElement)()
End If
parent.EntryKids.Add(FieldElement)
FieldElement.EntryParent = parent
If Not String.IsNullOrEmpty(partialName) Then
  FieldElement.EntryT = fieldName
End If

This code snippet is taken from Annotations.cs line 333 in the Annotations example project.

[C#]

int fieldID = FieldElement.Object.ID;
if ((Widgets.Count == 0) || ((Widgets.Count == 1) && (Widgets[0].AnnotationElement.Object.ID == fieldID))) {
  FieldElement.EntryKids = null;
  return;
}
FieldElement.EntryKids = new ArrayElement<FieldElement>(FieldElement);
string ft = null;
Element dv = null;
foreach (WidgetAnnotation widget in Widgets) {
  FieldElement kid = new FieldElement(widget.WidgetElement.Object);
  if (kid.Object.ID != fieldID) { // not the same object
    kid.EntryParent = FieldElement;
    FieldElement.EntryKids.Add(kid);
  }
  if (ft == null)
    ft = kid.EntryFT;
  if (dv == null)
    dv = kid.EntryDV;
  kid.EntryFT = null;
  kid.EntryV = null;
  kid.EntryDV = null;
}
if (ft != null)
  FieldElement.EntryFT = ft;
if (dv != null)
  FieldElement.EntryDV = dv;

[VB]

Dim fieldID As Integer = FieldElement.Object.ID
If (Widgets.Count = 0) OrElse ((Widgets.Count = 1) AndAlso (Widgets(0).AnnotationElement.Object.ID = fieldID)) Then
  FieldElement.EntryKids = Nothing
  Return
End If
FieldElement.EntryKids = New ArrayElement(Of FieldElement)(FieldElement)
Dim ft As String = Nothing
Dim dv As Element = Nothing
For Each widget As WidgetAnnotation In Widgets
  Dim kid As New FieldElement(widget.WidgetElement.Object)
  If kid.Object.ID <> fieldID Then ' not the same object
    kid.EntryParent = FieldElement
    FieldElement.EntryKids.Add(kid)
  End If
  If ft Is Nothing Then
    ft = kid.EntryFT
  End If
  If dv Is Nothing Then
    dv = kid.EntryDV
  End If
  kid.EntryFT = Nothing
  kid.EntryV = Nothing
  kid.EntryDV = Nothing
Next widget
If ft IsNot Nothing Then
  FieldElement.EntryFT = ft
End If
If dv IsNot Nothing Then
  FieldElement.EntryDV = dv
End If


ZZ Elements ArrayElement<T> IndexOf Function

IndexOf Function

Determines the index of a specific Element.

Syntax

[C#]
virtual int IndexOf(T value)

[Visual Basic]
Overridable Function IndexOf(value As T) As Integer

Params
Name | Description
value | The Element to locate in the Collection
return | If found, the index of value, otherwise -1.

Notes

Determines the index of a specific Element.


ZZ Elements ArrayElement<T> Insert Function

Insert Function

Inserts an Element into the array at the specified position.

Syntax

[C#]
virtual void Insert(int index, T value)

[Visual Basic]
Overridable Function Insert(index As int, value As T) As void

Throws Exceptions  ArgumentOutOfRangeException: Thrown if the index provided is not valid. Throws Exceptions  NullReferenceException: Thrown if an attempt is made to insert a null value in a non-Nullable array.

Params
Name | Description
index | The zero-based index at which value should be inserted.
value | The Element to insert into the array.

Notes

Inserts an Element into the array at the specified position.

If the index equals the number of items in the array then the Element is appended to the end.

Most ArrayElements cannot hold null values in a meaningful way. So in general, if you provide a null value this will result in an exception being raised.

Occasionally it is appropriate for ArrayElements to hold null values represented as NullAtoms. You can indicate this is acceptable, by setting the Nullable property.


ZZ Elements ArrayElement<T> RemoveAt Function

RemoveAt Function

Removes the Element at the specified index.

Syntax

[C#]
virtual void RemoveAt(int index)

[Visual Basic]
Overridable Function RemoveAt(index As int) As void

Throws Exceptions  ArgumentOutOfRangeException: Thrown if the index provided is not valid.

Params
Name | Description
index | The zero-based index of the item to remove.

Notes

Removes the Element at the specified index.

When an Element is removed the items that follow the removed item, move up to occupy the vacated spot.


ZZ Elements ArrayElement<T> Add Function

Add Function

Add an Element to the end of the array.

Syntax

[C#]
virtual void Add(T value)

[Visual Basic]
Overridable Function Add(value As T) As void

Throws Exceptions  NullReferenceException: Thrown if an attempt is made to insert a null value in a non-Nullable array.

Params
Name | Description
value | The value.

Notes

Add an Element to the end of the array.

This method adds an Element to the array.

Most ArrayElements cannot hold null values in a meaningful way. So in general, if you provide a null value this will result in an exception being raised.

Occasionally it is appropriate for ArrayElements to hold null values represented as NullAtoms. You can indicate this is acceptable, by setting the Nullable property.


ZZ Elements ArrayElement<T> Clear Function

Clear Function

Removes all Elements from the array.

Syntax

[C#]
virtual void Clear()

[Visual Basic]
Overridable Function Clear() As void

Params
Name | Description
none |

Notes

Removes all Elements from the array.


ZZ Elements ArrayElement<T> Contains Function

Contains Function

Determines whether the array contains a specific Element.

Syntax

[C#]
virtual bool Contains(T value)

[Visual Basic]
Overridable Function Contains(value As T) As Boolean

Params
Name | Description
value | The Element to locate.
return | True if the object is found, otherwise false.

Notes

Determines whether the array contains a specific Element.


ZZ Elements ArrayElement<T> CopyTo Function

CopyTo Function

Copies the Elements into an array.

Syntax

[C#]
virtual void CopyTo(T[] array, int index)

[Visual Basic]
Overridable Function CopyTo(array() As T, index As int) As void

Params
Name | Description
array | The array that is the destination for the elements.
index | The zero-based index at which copying begins.

Notes

Copies the Elements into an array.

Copies the elements of the collection to an array starting at a particular index.


ZZ Elements ArrayElement<T> Remove Function

Remove Function

Removes an Element from the array.

Syntax

[C#]
virtual bool Remove(T value)

[Visual Basic]
Overridable Function Remove(value As T) As Boolean

Params
Name | Description
value | The Element to remove.
return | True if the Element is removed, otherwise false.

Notes

Removes an Element from the array.

When an Element is removed, the items that follow the removed item move up to occupy the vacated spot.


ZZ Elements ArrayElement<T> GetEnumerator Function

GetEnumerator Function

Returns an enumerator that iterates through the collection.

Syntax

[C#]
virtual IEnumerator<T> GetEnumerator()

[Visual Basic]
Overridable Function GetEnumerator() As IEnumerator<T>

Params
Name | Description
return | An enumerator for the collection.

Notes

Returns an enumerator that iterates through the collection.

Gets an Element enumerator for the Collection.


ZZ Elements ArrayElement<T> ElementType Property

ElementType Property

Type | Default Value | Read Only | Description
[C#] Type [Visual Basic] Type | null | Yes | The Type of elements within the Array.

Notes

The Type of elements within the Array.


ZZ Elements ArrayElement<T> ElementsIndirect Property

ElementsIndirect Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether elements within the Array are required to be indirect.

Notes

Whether elements within the Array are required to be indirect.


ZZ Elements ArrayElement<T> Nullable Property

Nullable Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether NullAtom values are acceptable within the array.

Notes

Whether NullAtom values are acceptable within the array.

In most cases null values are not appropriate within an ArrayElement.

In occasional cases it is possible to represent missing elements using a NullAtom.

This property allows you to determine if this should be the case.


ZZ Elements ArrayElement<T> Item(int index) Property

Item(int index) Property

Type | Default Value | Read Only | Description
[C#] T [Visual Basic] T | null | No | Gets or sets the Element at the specified index.

Throws Exceptions  ArgumentOutOfRangeException: Thrown if the index provided is not valid. Throws Exceptions  NullReferenceException: Thrown if an attempt is made to assign a null value in a non-Nullable array.

Notes

Gets or sets the Element at the specified index. In C# this property is the indexer for the class.

The Item property is used to access Elements within the Array.

The ArrayAtom is accessed and used to create an Element of type T.

In the case that T has multiple sub-types, default factories will result in an item of the correct subtype being created.

The precise factory that should be used is determined at the point the ArrayElement is assigned to a property of another Element.

So since different properties may use different factories, you should not share one ArrayElement between more than one property.

Most ArrayElements cannot hold null values in a meaningful way. So in general, if you provide a null value this will result in an exception being raised.

Occasionally it is appropriate for ArrayElements to hold null values represented as NullAtoms. You can indicate this is acceptable, by setting the Nullable property.


ZZ Elements ArrayElement<T> Count Property

Count Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | Yes | Gets the number of Elements contained in the array.

Notes

Gets the number of Elements contained in the array.

As Elements are added to the array the Count will increase.

As they are removed, it will decrease.


ZZ Elements AtomicArrayElement<T>

AtomicArrayElement<T> Class

Class AtomicArrayElement.

This class represents an array of atomic elements.

By atomic, we mean elements that can be directly represented using a .NET equivalent such as a string or int.

On the PDF side the elements that are acceptable may be types such as StringAtom or NameAtom.

The set of acceptable types may be indicated using the AtomicTypes property.

Since it is an array, the core Atom this class is created from should be an ArrayAtom.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AtomicArrayElement<T>

Implements: IList<T>, IList

Type T : Can be string, int, double, double? or bool.

Method | Description
Throws Exceptions AtomicArrayElement<T> | Create a new AtomicArrayElement.
IndexOf | Determines the first index matching a specific value.
Throws Exceptions Insert | Inserts an item into the array at the specified position.
Throws Exceptions RemoveAt | Removes the item at the specified index.
Add | Add an item to the end of the array.
Clear | Removes all items from the array.
Contains | Determines whether the array contains a specific value.
CopyTo | Copies the items into an array.
Remove | Removes the first matching value from the array.
GetEnumerator | Returns an enumerator that iterates through the collection.
 | inherited methods...

Property | Description
AtomicTypes | The Type of elements within the Array.
Throws Exceptions Item[int index] | Gets or sets the items at the specified index.
Count | Gets the number of items contained in the array.
 | inherited properties...


ZZ Elements AtomicArrayElement<T> Constructor Function

AtomicArrayElement<T> Function

Create a new AtomicArrayElement.

Syntax

[C#]
AtomicArrayElement<T>()
AtomicArrayElement<T>(Atom atom, IndirectObject host)
AtomicArrayElement<T>(IndirectObject obj)
AtomicArrayElement<T>(Element relation, CreationOptions options)

[Visual Basic]
AtomicArrayElement<T>()
AtomicArrayElement<T>(atom As Atom, host As IndirectObject)
AtomicArrayElement<T>(obj As IndirectObject)
AtomicArrayElement<T>(relation As Element, options As CreationOptions)

Throws Exceptions  ArgumentException: Thrown if the Atom provided is not an ArrayAtom or a RefAtom pointing to an ArrayAtom.

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new AtomicArrayElement .

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements AtomicArrayElement<T> IndexOf Function

IndexOf Function

Determines the first index matching a specific value.

Syntax

[C#]
virtual int IndexOf(T value)

[Visual Basic]
Overridable Function IndexOf(value As T) As Integer

Params
Name | Description
value | The value to locate in the Collection
return | If found, the index of value, otherwise -1.

Notes

Determines the first index matching a specific value.


ZZ Elements AtomicArrayElement<T> Insert Function

Insert Function

Inserts an item into the array at the specified position.

Syntax

[C#]
virtual void Insert(int index, T value)

[Visual Basic]
Overridable Function Insert(index As int, value As T) As void

Throws Exceptions  ArgumentOutOfRangeException: Thrown if the index provided is not valid.

Params
Name | Description
index | The zero-based index at which the value should be inserted.
value | The items to insert into the array.

Notes

Inserts an item into the array at the specified position.

If the index equals the number of items in the array then the items is appended to the end.

If the type indicated is string then a null string will be interpreted as an empty string.

If the type indicated is a double? then a null value will be interpreted as a NullAtom.

All other types are non-nullable.


ZZ Elements AtomicArrayElement<T> RemoveAt Function

RemoveAt Function

Removes the item at the specified index.

Syntax

[C#]
virtual void RemoveAt(int index)

[Visual Basic]
Overridable Function RemoveAt(index As int) As void

Throws Exceptions  ArgumentOutOfRangeException: Thrown if the index provided is not valid.

Params
Name | Description
index | The zero-based index of the item to remove.

Notes

Removes the item at the specified index.

When an item is removed the items that follow the removed item, move up to occupy the vacated spot.


ZZ Elements AtomicArrayElement<T> Add Function

Add Function

Add an item to the end of the array.

Syntax

[C#]
virtual void Add(T value)

[Visual Basic]
Overridable Function Add(value As T) As void

Params
Name | Description
value | The value.

Notes

Add an item to the end of the array.

This method adds an item to the array.

If the type indicated is string then a null string will be interpreted as an empty string.

If the type indicated is a double? then a null value will be interpreted as a NullAtom.

All other types are non-nullable.


ZZ Elements AtomicArrayElement<T> Clear Function

Clear Function

Removes all items from the array.

Syntax

[C#]
virtual void Clear()

[Visual Basic]
Overridable Function Clear() As void

Params
Name | Description
none |

Notes

Removes all items from the array.


ZZ Elements AtomicArrayElement<T> Contains Function

Contains Function

Determines whether the array contains a specific value.

Syntax

[C#]
virtual bool Contains(T value)

[Visual Basic]
Overridable Function Contains(value As T) As Boolean

Params
Name | Description
value | The value to locate.
return | True if the object is found, otherwise false.

Notes

Determines whether the array contains a specific value.


ZZ Elements AtomicArrayElement<T> CopyTo Function

CopyTo Function

Copies the items into an array.

Syntax

[C#]
virtual void CopyTo(T[] array, int index)

[Visual Basic]
Overridable Function CopyTo(array() As T, index As int) As void

Params
Name | Description
array | The array that is the destination for the elements.
index | The zero-based index at which copying begins.

Notes

Copies the items into an array.

Copies the items of the collection to an array starting at a particular index.


ZZ Elements AtomicArrayElement<T> Remove Function

Remove Function

Removes the first matching value from the array.

Syntax

[C#]
virtual bool Remove(T value)

[Visual Basic]
Overridable Function Remove(value As T) As Boolean

Params
Name | Description
value | The value to remove.
return | True if the value is removed, otherwise false.

Notes

Removes the first matching value from the array.

When an item is removed, the items that follow the removed item move up to occupy the vacated spot.


ZZ Elements AtomicArrayElement<T> GetEnumerator Function

GetEnumerator Function

Returns an enumerator that iterates through the collection.

Syntax

[C#]
virtual IEnumerator<T> GetEnumerator()

[Visual Basic]
Overridable Function GetEnumerator() As IEnumerator<T>

Params
Name | Description
return | An enumerator for the collection.

Notes

Returns an enumerator that iterates through the collection.

Gets a value enumerator for the Collection.


ZZ Elements AtomicArrayElement<T> AtomicTypes Property

AtomicTypes Property

Type | Default Value | Read Only | Description
[C#] AtomicTypes [Visual Basic] AtomicTypes | null | No | The Type of elements within the Array.

Notes

The Type of elements within the Array.

This indicates the types of Atom that are acceptable in this Array.

For example an AtomicArray of strings may accept NameAtoms, or StringAtoms or indeed both.

This is a flags based enum so more than one type may be indicated by combining values.

The possible values are:.

  • None
  • Names
  • Strings
  • Numbers
  • Booleans
    • .

    The AtomicTypes type is a flags type enumeration so different values can be combined together using bitwise operations. It may take the following values:


ZZ Elements AtomicArrayElement<T> Item(int index) Property

Item(int index) Property

Type | Default Value | Read Only | Description
[C#] T [Visual Basic] T | null | No | Gets or sets the items at the specified index.

Throws Exceptions  ArgumentOutOfRangeException: Thrown if the index provided is not valid.

Notes

Gets or sets the items at the specified index. In C# this property is the indexer for the class.

The Item property is used to access items within the Array.

The ArrayAtom is accessed and used to create a value of type T.

If the type indicated is string then a null string will be interpreted as an empty string.

If the type indicated is a double? then a null value will be interpreted as a NullAtom.

All other types are non-nullable.


ZZ Elements AtomicArrayElement<T> Count Property

Count Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | Yes | Gets the number of items contained in the array.

Notes

Gets the number of items contained in the array.

As items are added to the array the Count will increase.

As they are removed, it will decrease.


ZZ Elements DictElement<T>

DictElement<T> Class

The collection of Dictionary Atom names and values.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.DictElement<T>

Implements: IDictionary<string, T>, System.Collections.IDictionary

Method | Description
DictElement<T> | Create a new DictElement.
ContainsValue | Determines whether the DictElement contains a specific value.
 | inherited methods...

Property | Description
ElementType | The Type of elements within the Array.
ElementsIndirect | Whether elements within the Array are required to be indirect.
Keys | Gets a collection containing the keys.
Values | Gets a collection containing the values.
 | inherited properties...


ZZ Elements DictElement<T> Constructor Function

DictElement<T> Function

Create a new DictElement.

Syntax

[C#]
DictElement<T>()
DictElement<T>(Atom atom, IndirectObject host)
DictElement<T>(IndirectObject obj)
DictElement<T>(Element relation, CreationOptions options)

[Visual Basic]
DictElement<T>()
DictElement<T>(atom As Atom, host As IndirectObject)
DictElement<T>(obj As IndirectObject)
DictElement<T>(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new DictElement .

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1101 in the Annotations example project.

[C#]

appearanceElement.EntryResources.EntryXObject = new DictElement<XObjectElement>(appearanceElement);
if (imageResName.Length > 0)
  appearanceElement.EntryResources.EntryXObject[imageResName] = new XObjectElement(Doc.ObjectSoup[imageID]);

[VB]

appearanceElement.EntryResources.EntryXObject = New DictElement(Of XObjectElement)(appearanceElement)
If imageResName.Length > 0 Then
  appearanceElement.EntryResources.EntryXObject(imageResName) = New XObjectElement(Doc.ObjectSoup(imageID))
End If

This code snippet is taken from Annotations.cs line 1106 in the Annotations example project.

[C#]

appearanceElement.EntryResources.EntryFont = new DictElement<FontElement>(appearanceElement);
if (fontResName.Length > 0)
  appearanceElement.EntryResources.EntryFont[fontResName] = new FontElement(Doc.ObjectSoup[fontID]);

[VB]

appearanceElement.EntryResources.EntryFont = New DictElement(Of FontElement)(appearanceElement)
If fontResName.Length > 0 Then
  appearanceElement.EntryResources.EntryFont(fontResName) = New FontElement(Doc.ObjectSoup(fontID))
End If


ZZ Elements DictElement<T> ContainsValue Function

ContainsValue Function

Determines whether the DictElement contains a specific value.

Syntax

[C#]
virtual bool ContainsValue(T value)

[Visual Basic]
Overridable Function ContainsValue(value As T) As Boolean

Params
Name | Description
value | The value to locate.
return | True if the DictElement contains an element with the specified value otherwise false.

Notes

Determines whether the DictElement contains a specific value.


ZZ Elements DictElement<T> ElementType Property

ElementType Property

Type | Default Value | Read Only | Description
[C#] Type [Visual Basic] Type | null | Yes | The Type of elements within the Array.

Notes

The Type of elements within the Array.


ZZ Elements DictElement<T> ElementsIndirect Property

ElementsIndirect Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | No | Whether elements within the Array are required to be indirect.

Notes

Whether elements within the Array are required to be indirect.


ZZ Elements DictElement<T> Keys Property

Keys Property

Type | Default Value | Read Only | Description
[C#] KeyCollection [Visual Basic] KeyCollection | null | Yes | Gets a collection containing the keys.

Notes

Gets a collection containing the keys.

DictElement.KeyCollection implements ICollection<string> and ICollection.


ZZ Elements DictElement<T> Values Property

Values Property

Type | Default Value | Read Only | Description
[C#] ValueCollection [Visual Basic] ValueCollection | null | Yes | Gets a collection containing the values.

Notes

Gets a collection containing the values.

DictElement.KeyCollection implements ICollection<T> and ICollection.


ZZ Elements Enumerator

Enumerator Struct

Enumerates the elements of a Tree.

System.Object
   WebSupergoo.ABCpdf12.Elements.Enumerator

Implements: IEnumerator<KeyValuePair<TKey, TVal>>, System.Collections.IDictionaryEnumerator

Method | Description
MoveNext | Advances the enumerator to the next element of the DictElement.
GetEnumerator | Returns an enumerator that iterates through the DictElement.
ContainsKey | Determines whether the DictElement contains the specified key.
TryGetValue | Gets the value associated with the specified key.
Throws Exceptions Add | Adds the specified key and value to the dictionary.
Throws Exceptions Remove | Remove an element from the dictionary.
Clear | Removes all keys and values from the dictionary.

Property | Description
Throws Exceptions Item[string key] | Gets or sets the Element at the specified index.
T> | Gets the element at the current position of the enumerator.
Current | Gets the element at the current position of the enumerator.
Throws Exceptions Item[TKey key] | Gets or sets the value associated with the specified key.
Count | Gets the number of key/value pairs contained in the dictionary.
TVal> | Gets the element at the current position of the enumerator.


ZZ Elements Enumerator MoveNext Function

MoveNext Function

Advances the enumerator to the next element of the DictElement.

Syntax

[C#]
virtual bool MoveNext()

[Visual Basic]
Overridable Function MoveNext() As Boolean

Params
Name | Description
return | true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.

Notes

Advances the enumerator to the next element of the DictElement.ValueCollection.


ZZ Elements Enumerator GetEnumerator Function

GetEnumerator Function

Returns an enumerator that iterates through the DictElement.

Syntax

[C#]
virtual Enumerator GetEnumerator()

[Visual Basic]
Overridable Function GetEnumerator() As Enumerator

Params
Name | Description
return | An enumerator for the collection.

Notes

Returns an enumerator that iterates through the DictElement.

Get a KeyValuePair<string, T> enumerator for the dictionary.

DictAtom.Enumerator is a value type that implements IEnumerator<KeyValuePair<string, T>> and IDictionaryEnumerator.


ZZ Elements Enumerator ContainsKey Function

ContainsKey Function

Determines whether the DictElement contains the specified key.

Syntax

[C#]
virtual bool ContainsKey(string key)
virtual bool ContainsKey(TKey key)

[Visual Basic]
Overridable Function ContainsKey(key As string) As Boolean
Overridable Function ContainsKey(key As TKey) As Boolean

Params
Name | Description
key | The key to locate.
return | True if the Tree contains an element with the specified key otherwise false.

Notes

Determines whether the DictElement contains the specified key.


ZZ Elements Enumerator TryGetValue Function

TryGetValue Function

Gets the value associated with the specified key.

Syntax

[C#]
virtual bool TryGetValue(string key, out value)
virtual bool TryGetValue(TKey key, out value)

[Visual Basic]
Overridable Function TryGetValue(key As string, value As out) As Boolean
Overridable Function TryGetValue(key As TKey, value As out) As Boolean

Params
Name | Description
key | The key of the value to get.
value | When this method returns this contains the value associated with the specified key. If the key was not found this contains the default value for the type of the value.
return | True if the DictElement contains the specified key otherwise false.

Notes

Gets the value associated with the specified key.


ZZ Elements Enumerator Add Function

Add Function

Adds the specified key and value to the dictionary.

Syntax

[C#]
virtual void Add(string key, T value)
virtual void Add(TKey key, TVal value)

[Visual Basic]
Overridable Function Add(key As string, value As T) As void
Overridable Function Add(key As TKey, value As TVal) As void

Throws Exceptions  ArgumentException: Thrown if the key was already present. Throws Exceptions  NullReferenceException: Thrown if the key or value was null.

Params
Name | Description
key | The key of the element to add.
value | The value of the element to add.

Notes

Adds the specified key and value to the dictionary.

This method adds an item to the dictionary.

If the key or value is null then this method will throw an ArgumentNullException. If the key is already present in the dictionary then this method will throw an ArgumentException.


ZZ Elements Enumerator Remove Function

Remove Function

Remove an element from the dictionary.

Syntax

[C#]
virtual bool Remove(string key)
virtual bool Remove(TKey key)

[Visual Basic]
Overridable Function Remove(key As string) As Boolean
Overridable Function Remove(key As TKey) As Boolean

Throws Exceptions  NullReferenceException: Thrown if the key was null.

Params
Name | Description
key | The name of the element to remove.
return | True if the element is successfully found and removed otherwise false.

Notes

Remove an element from the dictionary.

Removes the value with the specified name from the dictionary.


ZZ Elements Enumerator Clear Function

Clear Function

Removes all keys and values from the dictionary.

Syntax

[C#]
virtual void Clear()

[Visual Basic]
Overridable Function Clear() As void

Params
Name | Description
none |

Notes

Removes all keys and values from the dictionary.


ZZ Elements Enumerator Item(string key) Property

Item(string key) Property

Type | Default Value | Read Only | Description
[C#] T [Visual Basic] T | null | No | Gets or sets the Element at the specified index.

Throws Exceptions  KeyNotFoundException: Thrown if getting an item, but the specified key was not found. Throws Exceptions  NullReferenceException: Thrown if an attempt is made to assign a null value.

Notes

Gets or sets the Element at the specified index. In C# this property is the indexer for the class.

The Item property is used to access Elements within the dictionary.

The DictAtom is accessed and used to create an Element of type T.

In the case that T has multiple sub-types, default factories will result in an item of the correct subtype being created.

The precise factory that should be used is determined at the point the DictElement is assigned to a property of another Element.

So since different properties may use different factories, you should not share one DictElement between more than one property.

DictElements cannot hold null values in a meaningful way. So if you provide a null value, this will result in an exception being raised.

If the specified key is not found, a get operation throws a KeyNotFoundException, and a set operation creates a new element with the specified key.


ZZ Elements Enumerator T> Current Property

T> Current Property

Type | Default Value | Read Only | Description
[C#] KeyValuePair<string, [Visual Basic] KeyValuePair<string, | null | Yes | Gets the element at the current position of the enumerator.

Notes
Gets the element at the current position of the enumerator.


ZZ Elements Enumerator Current Property

Current Property

Type | Default Value | Read Only | Description
[C#] TVal [Visual Basic] TVal | null | Yes | Gets the element at the current position of the enumerator.

Notes
Gets the element at the current position of the enumerator.


ZZ Elements Enumerator Item(TKey key) Property

Item(TKey key) Property

Type | Default Value | Read Only | Description
[C#] TVal [Visual Basic] TVal | null | No | Gets or sets the value associated with the specified key.

Throws Exceptions  KeyNotFoundException: Thrown if getting an item, but the specified key was not found. Throws Exceptions  NullReferenceException: Thrown if an attempt is made to assign a null value.

Notes

Gets or sets the value associated with the specified key. In C# this property is the indexer for the class.

The Item property is used to access Elements within the tree.

The tree is searched for a matching entry and used to create an Element of type T.

Note that no factories are used here so the element will always be type T - not a subclass.

Trees cannot hold null values in a meaningful way. So if you provide a null value, this will result in an exception being raised.

If the specified key is not found, a get operation throws a KeyNotFoundException, and a set operation creates a new element with the specified key.


ZZ Elements Enumerator Count Property

Count Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | Yes | Gets the number of key/value pairs contained in the dictionary.

Notes

Gets the number of key/value pairs contained in the dictionary.

As pairs are added to the array the Count will increase.

As they are removed, it will decrease.


ZZ Elements Enumerator TVal> Current Property

TVal> Current Property

Type | Default Value | Read Only | Description
[C#] KeyValuePair<TKey, [Visual Basic] KeyValuePair<TKey, | null | Yes | Gets the element at the current position of the enumerator.

Notes
Gets the element at the current position of the enumerator.


ZZ Elements ElementFactories

ElementFactories Class

Class ElementFactories.

This static class contains a set of static factory methods for creating Elements.

The reason you may need a factory method is because you may not know the type of Element you want to create at compile time.

For example documents often contain annotations which float over the page. Each type of annotation is represented by a different type of Elemment.

However, until you read the document, you will not know if those annotations are stamps or lines or fields or any other type of annotation.

Using a factory method allows the structure of the object to be examined and a sensible Element type allocated to it.

Different factory methods are appropriate at different times. For example the creation of annotations may require a different logic to the creation of actions.

System.Object
   WebSupergoo.ABCpdf12.Elements.ElementFactories

Method | Description
S» AutodetectFactory | Autodetect Factory.
Property
 Description


ZZ Elements ElementFactories AutodetectFactory Function

AutodetectFactory Function

Autodetect Factory.

Syntax

[C#]
static Element AutodetectFactory(Atom atom, IndirectObject host, object reference)

[Visual Basic]
Shared Function AutodetectFactory(atom As Atom, host As IndirectObject, reference As object) As Element

Params
Name | Description
atom | The atom from which the Element should be created.
host | The host object. This can be any IndirectObject in the document but it is useful to specify one with which the atom is closely associated.
reference | A reference which may be used to pass context.
return | An Element or Element subclass.

Notes

Autodetect Factory.

This is used for the creation of specific types of Element based on the content of the Atom.

Many Atoms have specific Type or Subtype fields which are used to indicate the precise variant of Element.

If these are present, which in many cases they are, then a sensible choice can be made as to the type of Element to create.

Even when these are not present sometimes it is possible to detect the type from specific combinations of entries found in the Atom.

However not all specializations can be auto-detected as not all require this type of identification element.

If this is the case then the return value will be a generic Element.


ZZ Elements NameOrNumberTree<TKey, TVal>

NameOrNumberTree<TKey, TVal> Class

Abstract Name or Number Tree Base Class.

System.Object
   WebSupergoo.ABCpdf12.Elements.NameOrNumberTree<TKey, TVal>

Implements: IDictionary<TKey, TVal>, System.Collections.IDictionary

Method | Description
NameOrNumberTree<TKey, TVal> | NameOrNumberTree constructor.
ContainsValue | Determines whether the Tree contains a specific value.

Property | Description
ElementType | The Type of elements within the Tree.
Keys | Gets a collection containing the keys.
Values | Gets a collection containing the values.


ZZ Elements NameOrNumberTree<TKey, TVal> Constructor Function

NameOrNumberTree<TKey, TVal> Function

NameOrNumberTree constructor.

Syntax

[C#]
NameOrNumberTree<TKey, TVal>(TreeNodeElement root)

[Visual Basic]
NameOrNumberTree<TKey, TVal>(root As TreeNodeElement)

Params
Name | Description
root | The root node for the tree.

Notes

NameOrNumberTree constructor.


ZZ Elements NameOrNumberTree<TKey, TVal> ContainsValue Function

ContainsValue Function

Determines whether the Tree contains a specific value.

Syntax

[C#]
virtual bool ContainsValue(TVal value)

[Visual Basic]
Overridable Function ContainsValue(value As TVal) As Boolean

Params
Name | Description
value | The value to locate.
return | True if the Tree contains an element with the specified value otherwise false.

Notes

Determines whether the Tree contains a specific value.


ZZ Elements NameOrNumberTree<TKey, TVal> ElementType Property

ElementType Property

Type | Default Value | Read Only | Description
[C#] Type [Visual Basic] Type | null | No | The Type of elements within the Tree.

Notes

The Type of elements within the Tree.


ZZ Elements NameOrNumberTree<TKey, TVal> Keys Property

Keys Property

Type | Default Value | Read Only | Description
[C#] KeyCollection [Visual Basic] KeyCollection | null | Yes | Gets a collection containing the keys.

Notes

Gets a collection containing the keys.

DictElement.KeyCollection implements ICollection<TKey> and ICollection.


ZZ Elements NameOrNumberTree<TKey, TVal> Values Property

Values Property

Type | Default Value | Read Only | Description
[C#] ValueCollection [Visual Basic] ValueCollection | null | Yes | Gets a collection containing the values.

Notes

Gets a collection containing the values.

DictElement.KeyCollection implements ICollection<TVal> and ICollection.


ZZ Elements NameTree<T>

NameTree<T> Class

Name Tree Class.

System.Object
   WebSupergoo.ABCpdf12.Elements.NameOrNumberTree<TKey, TVal>
      WebSupergoo.ABCpdf12.Elements.NameTree<T>

Method | Description
NameTree<T> | NameTree constructor.
 | inherited methods...

Property | Description
 | inherited properties...


ZZ Elements NameTree<T> Constructor Function

NameTree<T> Function

NameTree constructor.

Syntax

[C#]
NameTree<T>(NameTreeNodeElement<T> root)

[Visual Basic]
NameTree<T>(root As NameTreeNodeElement<T>)

Params
Name | Description
root | The root node for the tree.

Notes

NameTree constructor.


ZZ Elements Validation

Validation Class

Validation class.

This is the base pure abstract class that stores and reports the validation status of Elements that are being validated.

For custom validation reports you may derive from this class and implement any abstract methods.

However generally you will want to derive from ValidationBase as it includes a number of useful housekeeping routines.

System.Object
   WebSupergoo.ABCpdf12.Elements.Validation
      WebSupergoo.ABCpdf12.Elements.ValidationBase

Method | Description
Validation | Initializes a new instance of the Validation class.
Start | Called at the point each Element starts validation.
Finish | Called at the point each Element finishes validation.
Seen | Called to indicate that a particular RefAtom has been seen.
ReportEntryVersion | Called to report the entry version.
ReportUnknownEntryName | Called to report an entry with an unrecognized name.
ReportIncorrectEntryValue | Called to report an entry with an incorrect value.
ReportMissingRequiredEntry | Called to report a missing required entry.
ReportNotIndirectObject | Called to report an object which should be indirect but is not.
ReportIncorrectItemType | Called to report an object which is of the wrong type.
ReportIncorrectNumberOfEntries | Called to report an array with an incorrect number of entries.
ReportException | Called to report an Exception that was thrown during validation.
ReportRecursiveStructure | Called to report detection of a recursive structure.
Property
 Description


ZZ Elements Validation Constructor Function

Validation Function

Initializes a new instance of the Validation class.

Syntax

[C#]
Validation()

[Visual Basic]
Validation()

Params
Name | Description
none |

Notes

Initializes a new instance of the Validation class.


ZZ Elements Validation Start Function

Start Function

Called at the point each Element starts validation.

Syntax

[C#]
virtual bool Start(Element element)
virtual void Start(string entry)
virtual void Start(int index)

[Visual Basic]
Overridable Function Start(element As Element) As Boolean
Overridable Function Start(entry As string) As void
Overridable Function Start(index As int) As void

Params
Name | Description
element | The element.
entry | The new key or entry.
index | The new index.

Notes

Called at the point each Element starts validation.

If the Element has already been seen then this function should return false to indicate that it has already been validated.

If not then the function should return true to indicate that validation should go ahead.

Subclasses should keep track of elements that they have seen so as to avoid recursive loops.


ZZ Elements Validation Finish Function

Finish Function

Called at the point each Element finishes validation.

Syntax

[C#]
virtual void Finish(Element element)

[Visual Basic]
Overridable Function Finish(element As Element) As void

Params
Name | Description
element | The element.

Notes

Called at the point each Element finishes validation.


ZZ Elements Validation Seen Function

Seen Function

Called to indicate that a particular RefAtom has been seen.

Syntax

[C#]
virtual void Seen(RefAtom refAtom)

[Visual Basic]
Overridable Function Seen(refAtom As RefAtom) As void

Params
Name | Description
refAtom | The RefAtom.

Notes

Called to indicate that a particular RefAtom has been seen.

Most of the time the Start method can be used to keep track of which IndirectObjects have been seen.

However occasionally a RefAtom may not resolve to an Element that can be validated.

For example the Length entry in a StreamElement is a number indicating the number of bytes of data in the stream.

In most cases this is a simple number embedded as the value of the Length entry in the dictionary.

However some PDFs represent this as a reference to an IndirectObject containing a number.

Since it is a reference to a number there is no Element type for it and it will not get validated.

For the basic validation process this will not matter since the reference is automatically resolved and a simple number provided.

However if you are keeping track of which IndirectObjects have been validated, it is important to know about these cases.

You can do so by overriding this function.


ZZ Elements Validation ReportEntryVersion Function

ReportEntryVersion Function

Called to report the entry version.

Syntax

[C#]
virtual void ReportEntryVersion(string entry, PDFVersion version)

[Visual Basic]
Overridable Function ReportEntryVersion(entry As string, version As PDFVersion) As void

Params
Name | Description
entry | The entry name.
version | The PDF version.

Notes

Called to report the entry version.

Dictionaries are validated item by item for each of the key value pairs.

Each key is associated with a particular PDF Version in which it was introduced.

This function is called for each entry, with a number indicating the minimum version required.

The PDFVersion type is a flags type enumeration so different values can be combined together using bitwise operations. It may take the following values:

  • None - No version information available.
  • PDF10 - Introduced in PDF 1.0.
  • PDF11 - Introduced in PDF 1.1.
  • PDF12 - Introduced in PDF 1.2.
  • PDF13 - Introduced in PDF 1.3.
  • PDF14 - Introduced in PDF 1.4.
  • PDF15 - Introduced in PDF 1.5.
  • PDF16 - Introduced in PDF 1.6.
  • PDF17 - Introduced in PDF 1.7.
  • PDF17Obsolescent - Obsolescent in PDF 1.7.
  • AdobeUndocumented - Adobe undocumented extension.
  • PDF17Extension3 - Introduced in PDF 1.7 Adobe Extension Level 3.
  • PDF17Extension5 - Introduced in PDF 1.7 Adobe Extension Level 5.
  • PDF20 - Introduced in PDF 2.0.
  • PDF20Deprecated - Deprecated in PDF 2.0.


ZZ Elements Validation ReportUnknownEntryName Function

ReportUnknownEntryName Function

Called to report an entry with an unrecognized name.

Syntax

[C#]
virtual void ReportUnknownEntryName(string entry)

[Visual Basic]
Overridable Function ReportUnknownEntryName(entry As string) As void

Params
Name | Description
entry | The entry name.

Notes

Called to report an entry with an unrecognized name.


ZZ Elements Validation ReportIncorrectEntryValue Function

ReportIncorrectEntryValue Function

Called to report an entry with an incorrect value.

Syntax

[C#]
virtual void ReportIncorrectEntryValue(string value)

[Visual Basic]
Overridable Function ReportIncorrectEntryValue(value As string) As void

Params
Name | Description
value | The incorrect value.

Notes

Called to report an entry with an incorrect value.

Many entries have values which are constrained.

For example some numbers may have a range between which they must fall.

Some numbers may be cardinal only. Names are often used to indicated enumerated options.

In the event that a value is incorrect this function will be called.


ZZ Elements Validation ReportMissingRequiredEntry Function

ReportMissingRequiredEntry Function

Called to report a missing required entry.

Syntax

[C#]
virtual void ReportMissingRequiredEntry()

[Visual Basic]
Overridable Function ReportMissingRequiredEntry() As void

Params
Name | Description
none |

Notes

Called to report a missing required entry.

Some entries are required to be present.

In the event that the entry is not provided, this function will be called.


ZZ Elements Validation ReportNotIndirectObject Function

ReportNotIndirectObject Function

Called to report an object which should be indirect but is not.

Syntax

[C#]
virtual void ReportNotIndirectObject()

[Visual Basic]
Overridable Function ReportNotIndirectObject() As void

Params
Name | Description
none |

Notes

Called to report an object which should be indirect but is not.

Some entries are required to be indirect - to refer to an IndirectObject.

For example Page objects are always indirect and a reference to a Page will always be made via a RefAtom.

In the event that an object which is supposed to be indirect, is not, this function will be called.


ZZ Elements Validation ReportIncorrectItemType Function

ReportIncorrectItemType Function

Called to report an object which is of the wrong type.

Syntax

[C#]
virtual void ReportIncorrectItemType(string expectedType, string actualType, Atom atom)

[Visual Basic]
Overridable Function ReportIncorrectItemType(expectedType As string, actualType As string, atom As Atom) As void

Params
Name | Description
expectedType | The expected type name.
actualType | The actual type name.
atom | The atom which was found.

Notes

Called to report an object which is of the wrong type.

Some entries are required to specific types of object.

For example a Page Node has children which must be either other Page Nodes or Pages.

If an item like this is retrieved, and turns out to be a different type, this function will be called.


ZZ Elements Validation ReportIncorrectNumberOfEntries Function

ReportIncorrectNumberOfEntries Function

Called to report an array with an incorrect number of entries.

Syntax

[C#]
virtual void ReportIncorrectNumberOfEntries(int expected, int found)

[Visual Basic]
Overridable Function ReportIncorrectNumberOfEntries(expected As int, found As int) As void

Params
Name | Description
expected | The value which was expected.
found | The value which was found.

Notes

Called to report an array with an incorrect number of entries.

Some arrays have a set number of items.

For example a value range may be represented as an array with two elements indicating higher and lower bounds.

In the event that the number of entries is incorrect, this function will be called.


ZZ Elements Validation ReportException Function

ReportException Function

Called to report an Exception that was thrown during validation.

Syntax

[C#]
virtual void ReportException(Element element, Exception ex)

[Visual Basic]
Overridable Function ReportException(element As Element, ex As Exception) As void

Params
Name | Description
element | The Element which was being processed.
ex | The Exception which was thrown.

Notes

Called to report an Exception that was thrown during validation.

In general you do not want the validation of one Element to affect another.

So if an Exception is thrown during the validation of one Element, you want this to be reported, but then for validation to continue.

In the event that this happens, this function will be called.


ZZ Elements Validation ReportRecursiveStructure Function

ReportRecursiveStructure Function

Called to report detection of a recursive structure.

Syntax

[C#]
virtual void ReportRecursiveStructure()

[Visual Basic]
Overridable Function ReportRecursiveStructure() As void

Params
Name | Description
none |

Notes

Called to report detection of a recursive structure.

Recursive structures are unusual but they can exist.

For example a Page object might contain a reference to itself.

This needs to be detected to avoid a recursive loop in which the Page validates itself over and over again.

In the event that this type of recursion is detected, this function will be called.


ZZ Elements NumberTree<T>

NumberTree<T> Class

Number Tree Class.

System.Object
   WebSupergoo.ABCpdf12.Elements.NameOrNumberTree<TKey, TVal>
      WebSupergoo.ABCpdf12.Elements.NumberTree<T>

Method | Description
NumberTree<T> | NumberTree constructor.
 | inherited methods...

Property | Description
 | inherited properties...


ZZ Elements NumberTree<T> Constructor Function

NumberTree<T> Function

NumberTree constructor.

Syntax

[C#]
NumberTree<T>(NameTreeNodeElement<T> root)

[Visual Basic]
NumberTree<T>(root As NameTreeNodeElement<T>)

Params
Name | Description
root | The root node for the tree.

Notes

NumberTree constructor.


ZZ Elements ValidationStackNode

ValidationStackNode Class

StackNode class.

Validation is a recursive process. One Element validates each of its child Elements. Each of those in turn validate their children.

In the event that an inconsistency is found, it useful to know how the current Element was arrived at.

The Stack consists of a sequence of ValidationStackNode.

Each node indicates the state of validation at the point at which a child element was asked to validate itself.

There may be apparent duplicates on the stack as sub-classes may result in multiple calls to the Start function.

System.Object
   WebSupergoo.ABCpdf12.Elements.ValidationStackNode

Method | Description
ValidationStackNode | Initializes a new instance of the ValidationStackNode class.

Property | Description
Element | Gets the element to which this node refers.
Entry | Gets or sets the entry - the DictAtom key - which represents the current item being validated.
Index | Gets or sets the item - the ArrayAtom index - which represents the current item being validated.


ZZ Elements ValidationStackNode Constructor Function

ValidationStackNode Function

Initializes a new instance of the ValidationStackNode class.

Syntax

[C#]
ValidationStackNode(Element element)

[Visual Basic]
ValidationStackNode(element As Element)

Params
Name | Description
element | The current element.

Notes

Initializes a new instance of the ValidationStackNode class.


ZZ Elements ValidationStackNode Element Property

Element Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | Yes | Gets the element to which this node refers.

Notes

Gets the element to which this node refers.


ZZ Elements ValidationStackNode Entry Property

Entry Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Gets or sets the entry - the DictAtom key - which represents the current item being validated.

Notes

Gets or sets the entry - the DictAtom key - which represents the current item being validated.


ZZ Elements ValidationStackNode Index Property

Index Property

Type | Default Value | Read Only | Description
[C#] int [Visual Basic] Integer | 0 | No | Gets or sets the item - the ArrayAtom index - which represents the current item being validated.

Notes

Gets or sets the item - the ArrayAtom index - which represents the current item being validated.


ZZ Elements ValidationBase

ValidationBase Class

ValidationBase class.

This is a class derived from Validation that stores and reports the validation status of Elements that are being validated.

It implements a variety of useful features like the detection and resolution of recursive loops, a stack trace and a coverage option.

For custom validation reports you will generally want to derive from this class and implement any abstract methods.

System.Object
   WebSupergoo.ABCpdf12.Elements.Validation
      WebSupergoo.ABCpdf12.Elements.ValidationBase

Method | Description
ValidationBase | Initializes a new instance of the ValidationBase class.
GetStackTrace | Gets the stack trace.
 | inherited methods...

Property | Description
HashSet<string> | Gets all types that may be recorded in the Coverage.
Coverage | Gets or sets the coverage.
Stack | Gets or sets the stack.
Done | Gets the set of IDs which have been processed.
 | inherited properties...


ZZ Elements ValidationBase Constructor Function

ValidationBase Function

Initializes a new instance of the ValidationBase class.

Syntax

[C#]
ValidationBase()

[Visual Basic]
ValidationBase()

Params
Name | Description
none |

Notes

Initializes a new instance of the ValidationBase class.


ZZ Elements ValidationBase GetStackTrace Function

GetStackTrace Function

Gets the stack trace.

Syntax

[C#]
virtual string GetStackTrace()

[Visual Basic]
Overridable Function GetStackTrace() As string

Params
Name | Description
return | A string containing the stack trace.

Notes

Gets the stack trace.

Validation is a recursive process. One Element validates each of its child Elements. Each of those in turn validate their children.

In the event that an inconsistency is found, it useful to know how the current Element was arrived at.

This property allows you to get the current stack trace stack including all parents up to the root.


ZZ Elements ValidationBase HashSet<string> AllTypes Property

HashSet<string> AllTypes Property

Type | Default Value | Read Only | Description
[C#] static [Visual Basic] static | null | Yes | Gets all types that may be recorded in the Coverage.

Notes

Gets all types that may be recorded in the Coverage.

By removing covered types from the all types set, you can determine which types have not been covered.


ZZ Elements ValidationBase Coverage Property

Coverage Property

Type | Default Value | Read Only | Description
[C#] HashSet<string> [Visual Basic] HashSet<string> | null | No | Gets or sets the coverage.

Notes

Gets or sets the coverage.

The coverage is a set of the names of the types of Elements that have been created during validation.

The default value of this property is null which means that coverage information will not be recorded.

To record coverage information, assign a HashSet to this property.

The values in the HashSet are preserved so you can use one HashSet to determine the coverage of a group of documents.


ZZ Elements ValidationBase Stack Property

Stack Property

Type | Default Value | Read Only | Description
[C#] Stack<ValidationStackNode> [Visual Basic] Stack<ValidationStackNode> | null | No | Gets or sets the stack.

Notes

Gets or sets the stack.

Validation is a recursive process. One Element validates each of its child Elements. Each of those in turn validate their children.

In the event that an inconsistency is found, it useful to know how the current Element was arrived at.

This property allows you to examine the current state of the stack including all parent StackNodes up to the root.

There may be apparent duplicates on the stack as sub-classes may result in multiple calls to the Start function.

For this reason, for a stack trace, you will generally want to use the GetStackTrace function.

However you may also find that you want to Peek at the top - current - item for added detail when reporting errors.


ZZ Elements ValidationBase Done Property

Done Property

Type | Default Value | Read Only | Description
[C#] HashSet<int> [Visual Basic] HashSet<Integer> | null | Yes | Gets the set of IDs which have been processed.

Notes

Gets the set of IDs which have been processed.

During validation many IndirectObjects will be encountered.

Each time this happens, the ID value is added to this property.

The result is a set of IDs which allows you to determine the Objects that were validated.

If some are not validated this will be generally because they were not referenced anywhere.

However it may also be that they were referenced but that the references were not part of the PDF specification and thus could not be followed.


ZZ Elements Element

Element Class

An Element is a specialization wrapper around an Atom designed to expose aspects of that Atom in a structured manner.

Different subclasses of Element are used to represent the different objects defined in the Adobe PDF Specification.

In general there is one Element subclass for each object table in the PDF Specification.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
      WebSupergoo.ABCpdf12.Elements.AlternateImageElement
      WebSupergoo.ABCpdf12.Elements.AnnotationAdditionalActionsElement
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
      WebSupergoo.ABCpdf12.Elements.AppearanceCharacteristicsElement
      WebSupergoo.ABCpdf12.Elements.AppearanceElement
      WebSupergoo.ABCpdf12.Elements.ArrayElement<T>
      WebSupergoo.ABCpdf12.Elements.AtomicArrayElement<T>
      WebSupergoo.ABCpdf12.Elements.AttributesElement
      WebSupergoo.ABCpdf12.Elements.BeadElement
      WebSupergoo.ABCpdf12.Elements.BorderEffectElement
      WebSupergoo.ABCpdf12.Elements.BorderStyleElement
      WebSupergoo.ABCpdf12.Elements.BoxColorInformationElement
      WebSupergoo.ABCpdf12.Elements.BoxStyleElement
      WebSupergoo.ABCpdf12.Elements.CalGrayColorSpaceAttributesElement
      WebSupergoo.ABCpdf12.Elements.CalRGBColorSpaceAttributesElement
      WebSupergoo.ABCpdf12.Elements.CatalogElement
      WebSupergoo.ABCpdf12.Elements.CatalogUriElement
      WebSupergoo.ABCpdf12.Elements.CertificateSeedValueElement
      WebSupergoo.ABCpdf12.Elements.CIDSystemInfoElement
      WebSupergoo.ABCpdf12.Elements.CMapStreamElement
      WebSupergoo.ABCpdf12.Elements.CollectionColorsElement
      WebSupergoo.ABCpdf12.Elements.CollectionElement
      WebSupergoo.ABCpdf12.Elements.CollectionFieldElement
      WebSupergoo.ABCpdf12.Elements.CollectionItemElement
      WebSupergoo.ABCpdf12.Elements.CollectionSchemaElement
      WebSupergoo.ABCpdf12.Elements.CollectionSortElement
      WebSupergoo.ABCpdf12.Elements.CollectionSplitElement
      WebSupergoo.ABCpdf12.Elements.CollectionSubItemElement
      WebSupergoo.ABCpdf12.Elements.ColorElement
      WebSupergoo.ABCpdf12.Elements.ColorSpaceElement
      WebSupergoo.ABCpdf12.Elements.CrossReferenceStreamElement
      WebSupergoo.ABCpdf12.Elements.CryptFilterElement
      WebSupergoo.ABCpdf12.Elements.CuePointElement
      WebSupergoo.ABCpdf12.Elements.D3DActivationElement
      WebSupergoo.ABCpdf12.Elements.D3DAnimationStyleElement
      WebSupergoo.ABCpdf12.Elements.D3DBackgroundElement
      WebSupergoo.ABCpdf12.Elements.D3DCrossSectionElement
      WebSupergoo.ABCpdf12.Elements.D3DLightingSchemeElement
      WebSupergoo.ABCpdf12.Elements.D3DMeasurementElement
      WebSupergoo.ABCpdf12.Elements.D3DNodeElement
      WebSupergoo.ABCpdf12.Elements.D3DReferenceElement
      WebSupergoo.ABCpdf12.Elements.D3DStreamElement
      WebSupergoo.ABCpdf12.Elements.D3DUnitsElement
      WebSupergoo.ABCpdf12.Elements.D3DViewElement
      WebSupergoo.ABCpdf12.Elements.DestinationActionElement
      WebSupergoo.ABCpdf12.Elements.DestinationElement
      WebSupergoo.ABCpdf12.Elements.DeveloperExtensionsElement
      WebSupergoo.ABCpdf12.Elements.DeviceNColorSpaceAttributesElement
      WebSupergoo.ABCpdf12.Elements.DeviceNMixingHintsElement
      WebSupergoo.ABCpdf12.Elements.DeviceNProcessElement
      WebSupergoo.ABCpdf12.Elements.DictElement<T>
      WebSupergoo.ABCpdf12.Elements.DocumentCatalogAdditionalActionsElement
      WebSupergoo.ABCpdf12.Elements.DocumentInformationElement
      WebSupergoo.ABCpdf12.Elements.DocumentPartElement
      WebSupergoo.ABCpdf12.Elements.DocumentPartRootElement
      WebSupergoo.ABCpdf12.Elements.DocumentSecurityStoreElement
      WebSupergoo.ABCpdf12.Elements.EmbeddedFileParameterElement
      WebSupergoo.ABCpdf12.Elements.EmbeddedFileSetElement
      WebSupergoo.ABCpdf12.Elements.EmbeddedFileStreamElement
      WebSupergoo.ABCpdf12.Elements.EmbeddedFontStreamElement
      WebSupergoo.ABCpdf12.Elements.EncodingElement
      WebSupergoo.ABCpdf12.Elements.EncryptedPayloadElement
      WebSupergoo.ABCpdf12.Elements.EncryptionElement
      WebSupergoo.ABCpdf12.Elements.ExtensionsElement
      WebSupergoo.ABCpdf12.Elements.ExternalDataElement
      WebSupergoo.ABCpdf12.Elements.FDFElement
      WebSupergoo.ABCpdf12.Elements.FDFFieldElement
      WebSupergoo.ABCpdf12.Elements.FDFJavaScriptElement
      WebSupergoo.ABCpdf12.Elements.FDFNamedPageReferenceElement
      WebSupergoo.ABCpdf12.Elements.FDFPageElement
      WebSupergoo.ABCpdf12.Elements.FDFTemplateElement
      WebSupergoo.ABCpdf12.Elements.FieldElement
      WebSupergoo.ABCpdf12.Elements.FileSpecificationElement
      WebSupergoo.ABCpdf12.Elements.FileTrailerElement
      WebSupergoo.ABCpdf12.Elements.FixedPrintElement
      WebSupergoo.ABCpdf12.Elements.FloatingWindowParametersElement
      WebSupergoo.ABCpdf12.Elements.FolderElement
      WebSupergoo.ABCpdf12.Elements.FontDescriptorElement
      WebSupergoo.ABCpdf12.Elements.FontElement
      WebSupergoo.ABCpdf12.Elements.FormFieldAdditionalActionsElement
      WebSupergoo.ABCpdf12.Elements.FunctionElement
      WebSupergoo.ABCpdf12.Elements.GeographicCoordinateSystemElement
      WebSupergoo.ABCpdf12.Elements.GraphicsStateParameterElement
      WebSupergoo.ABCpdf12.Elements.GroupAttributesElement
      WebSupergoo.ABCpdf12.Elements.HalftoneElement
      WebSupergoo.ABCpdf12.Elements.ICCProfileStreamElement
      WebSupergoo.ABCpdf12.Elements.IconFitElement
      WebSupergoo.ABCpdf12.Elements.InteractiveFormElement
      WebSupergoo.ABCpdf12.Elements.LabColorSpaceAttributesElement
      WebSupergoo.ABCpdf12.Elements.LegalAttestationElement
      WebSupergoo.ABCpdf12.Elements.LinearizationParameterElement
      WebSupergoo.ABCpdf12.Elements.MacOSFileInformationElement
      WebSupergoo.ABCpdf12.Elements.MarkedContentReferenceElement
      WebSupergoo.ABCpdf12.Elements.MarkInformationElement
      WebSupergoo.ABCpdf12.Elements.MatrixElement
      WebSupergoo.ABCpdf12.Elements.MeasureElement
      WebSupergoo.ABCpdf12.Elements.MediaClipDataMhBeElement
      WebSupergoo.ABCpdf12.Elements.MediaClipElement
      WebSupergoo.ABCpdf12.Elements.MediaClipSectionMhBeElement
      WebSupergoo.ABCpdf12.Elements.MediaCriteriaElement
      WebSupergoo.ABCpdf12.Elements.MediaDurationElement
      WebSupergoo.ABCpdf12.Elements.MediaOffsetElement
      WebSupergoo.ABCpdf12.Elements.MediaPermissionsElement
      WebSupergoo.ABCpdf12.Elements.MediaPlayerInfoElement
      WebSupergoo.ABCpdf12.Elements.MediaPlayersElement
      WebSupergoo.ABCpdf12.Elements.MediaPlayParametersElement
      WebSupergoo.ABCpdf12.Elements.MediaPlayParametersMhBeElement
      WebSupergoo.ABCpdf12.Elements.MediaScreenParametersElement
      WebSupergoo.ABCpdf12.Elements.MediaScreenParametersMhBeElement
      WebSupergoo.ABCpdf12.Elements.MetadataStreamElement
      WebSupergoo.ABCpdf12.Elements.MinimumBitDepthElement
      WebSupergoo.ABCpdf12.Elements.MinimumScreenSizeElement
      WebSupergoo.ABCpdf12.Elements.MovieActivationElement
      WebSupergoo.ABCpdf12.Elements.MovieElement
      WebSupergoo.ABCpdf12.Elements.NameDictionaryElement
      WebSupergoo.ABCpdf12.Elements.NamespaceElement
      WebSupergoo.ABCpdf12.Elements.NavigationNodeElement
      WebSupergoo.ABCpdf12.Elements.NavigatorElement
      WebSupergoo.ABCpdf12.Elements.NumberFormatElement
      WebSupergoo.ABCpdf12.Elements.ObjectReferenceElement
      WebSupergoo.ABCpdf12.Elements.ObjectStreamElement
      WebSupergoo.ABCpdf12.Elements.OpiElement
      WebSupergoo.ABCpdf12.Elements.OpiVersionElement
      WebSupergoo.ABCpdf12.Elements.OptionalContentConfigElement
      WebSupergoo.ABCpdf12.Elements.OptionalContentGroupElement
      WebSupergoo.ABCpdf12.Elements.OptionalContentMembershipElement
      WebSupergoo.ABCpdf12.Elements.OptionalContentPropertiesElement
      WebSupergoo.ABCpdf12.Elements.OptionalContentUsageCreatorElement
      WebSupergoo.ABCpdf12.Elements.OptionalContentUsageElement
      WebSupergoo.ABCpdf12.Elements.OptionalContentUsageExportElement
      WebSupergoo.ABCpdf12.Elements.OptionalContentUsageLanguageElement
      WebSupergoo.ABCpdf12.Elements.OptionalContentUsagePageElement
      WebSupergoo.ABCpdf12.Elements.OptionalContentUsagePrintElement
      WebSupergoo.ABCpdf12.Elements.OptionalContentUsageUserElement
      WebSupergoo.ABCpdf12.Elements.OptionalContentUsageViewElement
      WebSupergoo.ABCpdf12.Elements.OptionalContentUsageZoomElement
      WebSupergoo.ABCpdf12.Elements.OutlineElement
      WebSupergoo.ABCpdf12.Elements.OutlineItemElement
      WebSupergoo.ABCpdf12.Elements.OutputIntentElement
      WebSupergoo.ABCpdf12.Elements.OutputProfilesElement
      WebSupergoo.ABCpdf12.Elements.PageLabelElement
      WebSupergoo.ABCpdf12.Elements.PageObjectAdditionalActionsElement
      WebSupergoo.ABCpdf12.Elements.PageObjectElement
      WebSupergoo.ABCpdf12.Elements.PagePieceDataElement
      WebSupergoo.ABCpdf12.Elements.PageTreeNodeElement
      WebSupergoo.ABCpdf12.Elements.PaperMetaDataGenerationParametersElement
      WebSupergoo.ABCpdf12.Elements.ParameterElement
      WebSupergoo.ABCpdf12.Elements.PatternElement
      WebSupergoo.ABCpdf12.Elements.PermissionsElement
      WebSupergoo.ABCpdf12.Elements.PointDataElement
      WebSupergoo.ABCpdf12.Elements.ProjectedCoordinateSystemElement
      WebSupergoo.ABCpdf12.Elements.ProjectionElement
      WebSupergoo.ABCpdf12.Elements.RectangleElement
      WebSupergoo.ABCpdf12.Elements.ReferenceElement
      WebSupergoo.ABCpdf12.Elements.RelatedFileSetElement
      WebSupergoo.ABCpdf12.Elements.RenderModeElement
      WebSupergoo.ABCpdf12.Elements.RenditionElement
      WebSupergoo.ABCpdf12.Elements.RenditionMhBeElement
      WebSupergoo.ABCpdf12.Elements.RequirementElement
      WebSupergoo.ABCpdf12.Elements.RequirementHandlerElement
      WebSupergoo.ABCpdf12.Elements.ResourceElement
      WebSupergoo.ABCpdf12.Elements.RichMediaActivationElement
      WebSupergoo.ABCpdf12.Elements.RichMediaAnimationElement
      WebSupergoo.ABCpdf12.Elements.RichMediaCommandElement
      WebSupergoo.ABCpdf12.Elements.RichMediaConfigElement
      WebSupergoo.ABCpdf12.Elements.RichMediaContentElement
      WebSupergoo.ABCpdf12.Elements.RichMediaDeactivationElement
      WebSupergoo.ABCpdf12.Elements.RichMediaDimensionsElement
      WebSupergoo.ABCpdf12.Elements.RichMediaInstanceElement
      WebSupergoo.ABCpdf12.Elements.RichMediaParamsElement
      WebSupergoo.ABCpdf12.Elements.RichMediaPositionElement
      WebSupergoo.ABCpdf12.Elements.RichMediaPresentationElement
      WebSupergoo.ABCpdf12.Elements.RichMediaSettingsElement
      WebSupergoo.ABCpdf12.Elements.RichMediaWindowElement
      WebSupergoo.ABCpdf12.Elements.SeparationElement
      WebSupergoo.ABCpdf12.Elements.ShadingElement
      WebSupergoo.ABCpdf12.Elements.SignatureElement
      WebSupergoo.ABCpdf12.Elements.SignatureFieldLockElement
      WebSupergoo.ABCpdf12.Elements.SignatureFieldSeedValueElement
      WebSupergoo.ABCpdf12.Elements.SignatureFieldTimeStampElement
      WebSupergoo.ABCpdf12.Elements.SignatureReferenceElement
      WebSupergoo.ABCpdf12.Elements.SignatureValidationRelatedInformationElement
      WebSupergoo.ABCpdf12.Elements.SlideshowElement
      WebSupergoo.ABCpdf12.Elements.SoftMaskElement
      WebSupergoo.ABCpdf12.Elements.SoftwareIdentifierElement
      WebSupergoo.ABCpdf12.Elements.SoundObjectStreamElement
      WebSupergoo.ABCpdf12.Elements.SourceInformationElement
      WebSupergoo.ABCpdf12.Elements.StreamElement
      WebSupergoo.ABCpdf12.Elements.StructureElementElement
      WebSupergoo.ABCpdf12.Elements.StructureTreeRootElement
      WebSupergoo.ABCpdf12.Elements.TargetElement
      WebSupergoo.ABCpdf12.Elements.ThreadElement
      WebSupergoo.ABCpdf12.Elements.TimespanElement
      WebSupergoo.ABCpdf12.Elements.TransformParametersElement
      WebSupergoo.ABCpdf12.Elements.TransitionElement
      WebSupergoo.ABCpdf12.Elements.TreeNodeElement
      WebSupergoo.ABCpdf12.Elements.UrlAliasElement
      WebSupergoo.ABCpdf12.Elements.UsageApplicationElement
      WebSupergoo.ABCpdf12.Elements.UserPropertyElement
      WebSupergoo.ABCpdf12.Elements.ViewerPreferencesElement
      WebSupergoo.ABCpdf12.Elements.ViewParamsElement
      WebSupergoo.ABCpdf12.Elements.ViewportElement
      WebSupergoo.ABCpdf12.Elements.WebCaptureCommandElement
      WebSupergoo.ABCpdf12.Elements.WebCaptureCommandSettingsElement
      WebSupergoo.ABCpdf12.Elements.WebCaptureContentSetElement
      WebSupergoo.ABCpdf12.Elements.WebCaptureInformationElement
      WebSupergoo.ABCpdf12.Elements.WindowsLaunchParameterElement
      WebSupergoo.ABCpdf12.Elements.XObjectElement

Implements: ICloneable, IEquatable<Element>, IComparable<Element>

Method | Description
Throws Exceptions Element | Create a new Element.
Throws Exceptions Assign | Assign an IndirectObject to this Element.
Equals | Test whether the two Elements are the same.
GetEntryVersion | Get the minimum PDF version required for the use of a particular named entry.
Validate | Validate this object and report any inconsistencies.
ClearCache | Clears any cached Element items.

Property | Description
Host | Gets the host IndirectObject.
Ref | Gets any RefAtom that is part of this Element.
Atom | Gets any Atom that is part of this Element.
RefOrAtom | Gets the Atom that was used to create this Element.
Object | Gets the IndirectObject that is part of this Element.
DictAtom | Gets the Atom property as a DictAtom.
ArrayAtom | Gets the Atom property as an ArrayAtom.
NameAtom | Gets the Atom property as a NameAtom.
NumAtom | Gets the Atom property as a NumAtom.
StringAtom | Gets the Atom property as a StringAtom.
BoolAtom | Gets the Atom property as a BoolAtom.
EntryMetadata | This property represents the "Metadata" entry of the Element.


ZZ Elements Element Constructor Function

Element Function

Create a new Element.

Syntax

[C#]
Element()
Element(Atom atom, IndirectObject host)
Element(IndirectObject obj)
Element(Element relation, CreationOptions options)

[Visual Basic]
Element()
Element(atom As Atom, host As IndirectObject)
Element(obj As IndirectObject)
Element(relation As Element, options As CreationOptions)

Throws Exceptions  ArgumentException: Thrown if the atom is not of correct type for this type of Element.

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Element.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from TaggedPDF.cs line 87 in the AccessiblePDF example project.

[C#]

List<Element> items = new List<Element>();
FindAll(item, items);
return items;

[VB]

Dim items As New List(Of Element)()
FindAll(item, items)
Return items

This code snippet is taken from Annotations.cs line 464 in the Annotations example project.

[C#]

if (inKids.Count == 0)
  throw new Exception("Cannot have a group field with no kids");
int fieldID = Doc.AddObject("<< /Kids [] >>");
FormField formField = new FormField(this, inName, fieldID, inKids);
formField.FieldElement.EntryV = new Element(new StringAtom(inValue), formField.Host);
return formField;

[VB]

If inKids.Count = 0 Then
  Throw New Exception("Cannot have a group field with no kids")
End If
Dim fieldID As Integer = Doc.AddObject("<< /Kids [] >>")
Dim formField As New FormField(Me, inName, fieldID, inKids)
formField.FieldElement.EntryV = New Element(New StringAtom(inValue), formField.Host)
Return formField

This code snippet is taken from Annotations.cs line 480 in the Annotations example project.

[C#]

TextFieldAnnotation textField = new TextFieldAnnotation(this, inRect);
FormField formField = new FormField(this, inName, textField);
formField.FieldElement.EntryFT = "Tx";
formField.FieldElement.EntryFf = (int)Field.FieldFlags.Multiline;
formField.FieldElement.EntryQ = 1;
if (inText != null)
  formField.FieldElement.EntryV = new Element(new StringAtom(inText), formField.FieldElement.Host);
return formField;

[VB]

Dim textField As New TextFieldAnnotation(Me, inRect)
Dim formField As New FormField(Me, inName, textField)
formField.FieldElement.EntryFT = "Tx"
formField.FieldElement.EntryFf = CInt(Math.Truncate(Field.FieldFlags.Multiline))
formField.FieldElement.EntryQ = 1
If inText IsNot Nothing Then
  formField.FieldElement.EntryV = New Element(New StringAtom(inText), formField.FieldElement.Host)
End If
Return formField

This code snippet is taken from Annotations.cs line 514 in the Annotations example project.

[C#]

CheckBoxAnnotation checkBox = new CheckBoxAnnotation(this, inRect, inValue);
FormField formField = new FormField(this, inName, checkBox);
formField.FieldElement.EntryFT = "Btn";
formField.FieldElement.EntryV = new Element(new NameAtom(inValue ? "Yes" : "Off"), formField.Host);
return formField;

[VB]

Dim checkBox As New CheckBoxAnnotation(Me, inRect, inValue)
Dim formField As New FormField(Me, inName, checkBox)
formField.FieldElement.EntryFT = "Btn"
formField.FieldElement.EntryV = New Element(New NameAtom(If(inValue, "Yes", "Off")), formField.Host)
Return formField

This code snippet is taken from Annotations.cs line 529 in the Annotations example project.

[C#]

List<WidgetAnnotation> kids = new List<WidgetAnnotation>();
for (int i = 0; i < inRects.Length; i++) {
  RadioButtonAnnotation radioButton = new RadioButtonAnnotation(this, inRects[i], i.ToString(), i == inSelectedButton);
  kids.Add(radioButton);
}
int fieldID = Doc.AddObject("<</FT /Btn /Ff 49152 /Kids [] /DA (/ZaDb 0 Tf 0 g)>>");
FormField formField = new FormField(this, inName, fieldID, kids);
formField.FieldElement.EntryV = new Element(new NameAtom(inSelectedButton.ToString()), formField.Host);
return formField;

[VB]

Dim kids As New List(Of WidgetAnnotation)()
For i As Integer = 0 To inRects.Length - 1
  Dim radioButton As New RadioButtonAnnotation(Me, inRects(i), i.ToString(), i = inSelectedButton)
  kids.Add(radioButton)
Next i
Dim fieldID As Integer = Doc.AddObject("<</FT /Btn /Ff 49152 /Kids [] /DA (/ZaDb 0 Tf 0 g)>>")
Dim formField As New FormField(Me, inName, fieldID, kids)
formField.FieldElement.EntryV = New Element(New NameAtom(inSelectedButton.ToString()), formField.Host)
Return formField

This code snippet is taken from Annotations.cs line 1944 in the Annotations example project.

[C#]

RichMediaParamsElement pars = RichMediaElement.EntryRichMediaSettings.EntryActivation.EntryConfiguration.EntryInstances[0].EntryParams;
if (string.IsNullOrEmpty(value))
  pars.EntryFlashVars = null;
else if (value.Length <= 128)
  pars.EntryFlashVars = new Element(new StringAtom(value), AnnotationElement.Object);
else {
  StreamObject so = new StreamObject(Form.Doc.ObjectSoup);
  so.SetText(value);
  so.CompressFlate();
  pars.EntryFlashVars = new Element(new RefAtom(so), AnnotationElement.Object);
}

[VB]

Dim pars As RichMediaParamsElement = RichMediaElement.EntryRichMediaSettings.EntryActivation.EntryConfiguration.EntryInstances(0).EntryParams
If String.IsNullOrEmpty(value) Then
  pars.EntryFlashVars = Nothing
ElseIf value.Length <= 128 Then
  pars.EntryFlashVars = New Element(New StringAtom(value), AnnotationElement.Object)
Else
  Dim so As New StreamObject(Form.Doc.ObjectSoup)
  so.SetText(value)
  so.CompressFlate()
  pars.EntryFlashVars = New Element(New RefAtom(so), AnnotationElement.Object)
End If


ZZ Elements Element Assign Function

Assign Function

Assign an IndirectObject to this Element.

Syntax

[C#]
virtual bool Assign(IndirectObject obj)
virtual bool Assign(Atom host, IndirectObject atom)

[Visual Basic]
Overridable Function Assign(obj As IndirectObject) As Boolean
Overridable Function Assign(host As Atom, atom As IndirectObject) As Boolean

Throws Exceptions  NullReferenceException: Thrown if the atom or host provided is null.

Params
Name | Description
obj | The IndirectObject to be assigned to this Element.
host | An IndirectObject closely associated with this Atom - ideally the one that contains it.
atom | The Atom to be assigned to this Element.
return | Whether the assignment was made successfully.

Notes

Assign an IndirectObject to this Element.

The process of assignment allows an existing IndirectObject to be viewed through the lens of a particular type of Element.

It is important to ensure that IndirectObjects are assigned to appropriate types of Element.

For example, while is is possible to assign a Page Indirect Object to an Image Element, such an assignment is not going to produce any useful view of the data.

In addition, some assignments cannot be made at all. This occurs if if the underlying atom types are inconsistent.

For example a ColorSpaceElement is based around an ArrayAtom, so attempting to assign an IndirectObject which contains a DictAtom will result in failure.

Classes that inherit from this one may wish to override this function to ensure that the Atom type that is provided is acceptable.


ZZ Elements Element Equals Function

Equals Function

Test whether the two Elements are the same.

Syntax

[C#]
virtual bool Equals(Element other)

[Visual Basic]
Overridable Function Equals(other As Element) As Boolean

Params
Name | Description
other | The Element to test against.
return | Whether the Elements are equal.

Notes

Test whether the two Elements are the same.


ZZ Elements Element GetEntryVersion Function

GetEntryVersion Function

Get the minimum PDF version required for the use of a particular named entry.

Syntax

[C#]
virtual PDFVersion GetEntryVersion(string entry)

[Visual Basic]
Overridable Function GetEntryVersion(entry As string) As PDFVersion

Params
Name | Description
entry | The name of the entry.
return | The PDF version.

Notes

Get the minimum PDF version required for the use of a particular named entry.

This function should be overridden by classes which inherit from this.

They should provide return values for the entries specific to the new class.


ZZ Elements Element Validate Function

Validate Function

Validate this object and report any inconsistencies.

Syntax

[C#]
virtual void Validate(Validation validation)

[Visual Basic]
Overridable Function Validate(validation As Validation) As void

Params
Name | Description
validation | The Validation object which will receive validation results and progress.

Notes

Validate this object and report any inconsistencies.

The validation of one object involves validating the properties of the object. Since.

the properties are often objects themselves, the process can be quite involved.


ZZ Elements Element ClearCache Function

ClearCache Function

Clears any cached Element items.

Syntax

[C#]
virtual void ClearCache()

[Visual Basic]
Overridable Function ClearCache() As void

Params
Name | Description
none |

Notes

Clears any cached Element items.

Elements in properties are cached so that the Element you assign to a property is the same as the one you retrieve when you later get that property.

However it is possible that sometimes this behavior is not what you want.

For example suppose you assign a DeviceColorSpaceElement to a property and then later change the underlying Atom so that it is really a CalRGBColorSpace.

In this situation the retrieved ColorSpaceElement will continue to be interpreted as a DeviceColorSpaceElement and an invalid one at that.

What you really want to do here is to clear the cached Element thus allowing the property to be regenerated as a CalRGBColorSpace.

This function clears the cached Elements to allow this to happen.


ZZ Elements Element Host Property

Host Property

Type | Default Value | Read Only | Description
[C#] IndirectObject [Visual Basic] IndirectObject | null | Yes | Gets the host IndirectObject.

Notes

Gets the host IndirectObject.

The host is specified during construction or in a later call to Assign.

The host is primarily used to indicate the document to which the Element belongs.

As such it can be any IndirectObject in the document.

However it is often useful to choose one which is closely associated with the Atom provided.

For example, if you create an Element from an IndirectObject, the Host can be itself.


ZZ Elements Element Ref Property

Ref Property

Type | Default Value | Read Only | Description
[C#] RefAtom [Visual Basic] RefAtom | null | Yes | Gets any RefAtom that is part of this Element.

Notes

Gets any RefAtom that is part of this Element.

When an Atom is provided during construction, this may be a reference to an IndirectObject rather than a direct reference to an Atom.

If this is the case then the reference needs to be resolved through to an Atom.

This property stores the original RefAtom and the Atom property stores the resolved Atom - usually a DictAtom.

If the provided Atom is not a RefAtom then this property will be null.


ZZ Elements Element Atom Property

Atom Property

Type | Default Value | Read Only | Description
[C#] Atom [Visual Basic] Atom | null | Yes | Gets any Atom that is part of this Element.

Notes

Gets any Atom that is part of this Element.

When an Atom is provided during construction, this may be a reference to an IndirectObject rather than a direct reference to an Atom.

If this is the case then the reference needs to be resolved through to an Atom.

This property stores the resolved Atom - usually a DictAtom but occasionally other types for some specific types of Element.

However this property will never be a RefAtom as all references have been resolved.


ZZ Elements Element RefOrAtom Property

RefOrAtom Property

Type | Default Value | Read Only | Description
[C#] Atom [Visual Basic] Atom | null | Yes | Gets the Atom that was used to create this Element.

Notes

Gets the Atom that was used to create this Element.

When an Atom is provided during construction, this may be a reference to an IndirectObject rather than a direct reference to an Atom.

If this is the case then the reference needs to be resolved through to an Atom.

The Ref property stores the RefAtom, if one was provided. The Atom property stores the resolved Atom.

This property will return the Ref if it is not null, or the Atom if it is.


ZZ Elements Element Object Property

Object Property

Type | Default Value | Read Only | Description
[C#] IndirectObject [Visual Basic] IndirectObject | null | Yes | Gets the IndirectObject that is part of this Element.

Notes

Gets the IndirectObject that is part of this Element.

When an Atom is provided during construction, this may be a reference to an IndirectObject rather than a direct reference to an Atom.

If this is the case then this property stores the referenced IndirectObject.

If the provided Atom is not a RefAtom then this property will be null.


ZZ Elements Element DictAtom Property

DictAtom Property

Type | Default Value | Read Only | Description
[C#] DictAtom [Visual Basic] DictAtom | null | Yes | Gets the Atom property as a DictAtom.

Notes

Gets the Atom property as a DictAtom.

If the Atom is not a DictAtom then the property will be null.


ZZ Elements Element ArrayAtom Property

ArrayAtom Property

Type | Default Value | Read Only | Description
[C#] ArrayAtom [Visual Basic] ArrayAtom | null | Yes | Gets the Atom property as an ArrayAtom.

Notes

Gets the Atom property as an ArrayAtom.

If the Atom is not an ArrayAtom then the property will be null.


ZZ Elements Element NameAtom Property

NameAtom Property

Type | Default Value | Read Only | Description
[C#] NameAtom [Visual Basic] NameAtom | null | Yes | Gets the Atom property as a NameAtom.

Notes

Gets the Atom property as a NameAtom.

If the Atom is not a NameAtom then the property will be null.


ZZ Elements Element NumAtom Property

NumAtom Property

Type | Default Value | Read Only | Description
[C#] NumAtom [Visual Basic] NumAtom | null | Yes | Gets the Atom property as a NumAtom.

Notes

Gets the Atom property as a NumAtom.

If the Atom is not a NumAtom then the property will be null.


ZZ Elements Element StringAtom Property

StringAtom Property

Type | Default Value | Read Only | Description
[C#] StringAtom [Visual Basic] StringAtom | null | Yes | Gets the Atom property as a StringAtom.

Notes

Gets the Atom property as a StringAtom.

If the Atom is not a StringAtom then the property will be null.


ZZ Elements Element BoolAtom Property

BoolAtom Property

Type | Default Value | Read Only | Description
[C#] BoolAtom [Visual Basic] BoolAtom | null | Yes | Gets the Atom property as a BoolAtom.

Notes

Gets the Atom property as a BoolAtom.

If the Atom is not a BoolAtom then the property will be null.


ZZ Elements Element EntryMetadata Property

EntryMetadata Property

Type | Default Value | Read Only | Description
[C#] MetadataStreamElement [Visual Basic] MetadataStreamElement | null | No | This property represents the "Metadata" entry of the Element.

Notes

This property represents the "Metadata" entry of the Element.

It is an optional entry for all Dictionaries or Streams as defined as part of the PDF 1.4 specification.

A MetadataStreamElement.

For definitive details see:.

ISO 32000-1:2008 PDF 1.7; Table: 30, page 78.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.


ZZ Elements EncryptedPayloadElement

EncryptedPayloadElement Class

This class represents the encrypted payload dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 28, page 94.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.EncryptedPayloadElement

Method | Description
EncryptedPayloadElement | Create a new EncryptedPayloadElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the encrypted payload dictionary object.
EntrySubtype | Represents the "Subtype" entry of the encrypted payload dictionary object.
EntryVersion | Represents the "Version" entry of the encrypted payload dictionary object.
 | inherited properties...


ZZ Elements EncryptedPayloadElement Constructor Function

EncryptedPayloadElement Function

Create a new EncryptedPayloadElement.

Syntax

[C#]
EncryptedPayloadElement()
EncryptedPayloadElement(Atom atom, IndirectObject host)
EncryptedPayloadElement(IndirectObject obj)
EncryptedPayloadElement(Element relation, CreationOptions options)

[Visual Basic]
EncryptedPayloadElement()
EncryptedPayloadElement(atom As Atom, host As IndirectObject)
EncryptedPayloadElement(obj As IndirectObject)
EncryptedPayloadElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new EncryptedPayloadElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements EncryptedPayloadElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the encrypted payload dictionary object.

Notes

Represents the "Type" entry of the encrypted payload dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "EncryptedPayload".

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 28, page 94.


ZZ Elements EncryptedPayloadElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the encrypted payload dictionary object.

Notes

Represents the "Subtype" entry of the encrypted payload dictionary object.

It is a required entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 28, page 94.


ZZ Elements EncryptedPayloadElement EntryVersion Property

EntryVersion Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Version" entry of the encrypted payload dictionary object.

Notes

Represents the "Version" entry of the encrypted payload dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 28, page 94.


ZZ Elements FileSpecificationElement

FileSpecificationElement Class

This class represents the file specification dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 97.

This class is always an indirect object because RichMediaActivationElement.EntryScripts, RichMediaInstanceElement.EntryAsset and StructureTreeRootElement.EntryPronunciationLexicon require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FileSpecificationElement
         WebSupergoo.ABCpdf12.Elements.FullFileSpecificationElement
         WebSupergoo.ABCpdf12.Elements.StringFileSpecificationElement

Method | Description
FileSpecificationElement | Create a new FileSpecificationElement.
 | inherited methods...

Property | Description
 | inherited properties...


ZZ Elements FileSpecificationElement Constructor Function

FileSpecificationElement Function

Create a new FileSpecificationElement.

Syntax

[C#]
FileSpecificationElement()
FileSpecificationElement(Atom atom, IndirectObject host)
FileSpecificationElement(IndirectObject obj)
FileSpecificationElement(Element relation, CreationOptions options)

[Visual Basic]
FileSpecificationElement()
FileSpecificationElement(atom As Atom, host As IndirectObject)
FileSpecificationElement(obj As IndirectObject)
FileSpecificationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FileSpecificationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ParameterElement

ParameterElement Class

This class represents the parameter dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 22.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ParameterElement
         WebSupergoo.ABCpdf12.Elements.CcittParametersElement
         WebSupergoo.ABCpdf12.Elements.CryptParametersElement
         WebSupergoo.ABCpdf12.Elements.DctParametersElement
         WebSupergoo.ABCpdf12.Elements.FlateParametersElement
         WebSupergoo.ABCpdf12.Elements.Jbig2ParametersElement
         WebSupergoo.ABCpdf12.Elements.LzwParametersElement

Method | Description
ParameterElement | Create a new ParameterElement.
 | inherited methods...

Property | Description
 | inherited properties...


ZZ Elements ParameterElement Constructor Function

ParameterElement Function

Create a new ParameterElement.

Syntax

[C#]
ParameterElement()
ParameterElement(Atom atom, IndirectObject host)
ParameterElement(IndirectObject obj)
ParameterElement(Element relation, CreationOptions options)

[Visual Basic]
ParameterElement()
ParameterElement(atom As Atom, host As IndirectObject)
ParameterElement(obj As IndirectObject)
ParameterElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ParameterElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type4FunctionElement

Type4FunctionElement Class

This class represents the type 4 function dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 97.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FunctionElement
         WebSupergoo.ABCpdf12.Elements.Type4FunctionElement

Method | Description
Type4FunctionElement | Create a new Type4FunctionElement.
 | inherited methods...

Property | Description
StreamElement | The StreamElement associated with this class.
 | inherited properties...


ZZ Elements Type4FunctionElement Constructor Function

Type4FunctionElement Function

Create a new Type4FunctionElement.

Syntax

[C#]
Type4FunctionElement()
Type4FunctionElement(Atom atom, IndirectObject host)
Type4FunctionElement(IndirectObject obj)
Type4FunctionElement(Element relation, CreationOptions options)

[Visual Basic]
Type4FunctionElement()
Type4FunctionElement(atom As Atom, host As IndirectObject)
Type4FunctionElement(obj As IndirectObject)
Type4FunctionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type4FunctionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type4FunctionElement StreamElement Property

StreamElement Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | Yes | The StreamElement associated with this class.

Notes

The StreamElement associated with this class.


ZZ Elements ColorElement

ColorElement Class

This class represents a color.

A color consists of an array of component values. For example an RGB color has three values between zero and one, a CMYK color has four between zero and one.

Colors only make sense in the context of a color space that specifies what the components represent. Most components range between zero and one.

However some color spaces such as Lab have components with values outside this range.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 139.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ColorElement

Method | Description
ColorElement | Create a new ColorElement.
GetColor | Get the contents of this ColorElement as an XColor.
SetColor | Set the contents of this ColorElement using an XColor.
 | inherited methods...

Property | Description
Components | The component intensities for the color.
 | inherited properties...


ZZ Elements ColorElement Constructor Function

ColorElement Function

Create a new ColorElement.

Syntax

[C#]
ColorElement()
ColorElement(Atom atom, IndirectObject host)
ColorElement(IndirectObject obj)
ColorElement(Element relation, CreationOptions options)

[Visual Basic]
ColorElement()
ColorElement(atom As Atom, host As IndirectObject)
ColorElement(obj As IndirectObject)
ColorElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ColorElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ColorElement GetColor Function

GetColor Function

Get the contents of this ColorElement as an XColor.

Syntax

[C#]
virtual XColor GetColor()

[Visual Basic]
Overridable Function GetColor() As XColor

Params
Name | Description
return | A new XColor with values corresponding to the contents of this ColorElement.

Notes

Get the contents of this ColorElement as an XColor.


ZZ Elements ColorElement SetColor Function

SetColor Function

Set the contents of this ColorElement using an XColor.

Syntax

[C#]
virtual XColor SetColor(XColor color)

[Visual Basic]
Overridable Function SetColor(color As XColor) As XColor

Params
Name | Description
color | The XColor containing values to be inserted into this ColorElement
return | The XColor that was passed in.

Notes

Set the contents of this ColorElement using an XColor.


ZZ Elements ColorElement Components Property

Components Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | The component intensities for the color.

Notes

The component intensities for the color. For example an RGB color has three values between zero and one, a CMYK color has four between zero and one.

Colors only make sense in the context of a color space that specifies what the components represent. Most components range between zero and one.

However some color spaces such as Lab have components with values outside this range.


ZZ Elements LinkAttributesElement

LinkAttributesElement Class

This class represents link structure attributes.

These are attributes associated with links in tagged PDF documents.

This is not part of the offical PDF specification, but it is used in Adobe produced documents.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AttributesElement
         WebSupergoo.ABCpdf12.Elements.LinkAttributesElement

Method | Description
LinkAttributesElement | Create a new LinkAttributesElement.
 | inherited methods...

Property | Description
EntryID | This property represents the "ID" entry of the link structure attributes object.
EntryS | This property represents the "S" entry of the link structure attributes object.
 | inherited properties...


ZZ Elements LinkAttributesElement Constructor Function

LinkAttributesElement Function

Create a new LinkAttributesElement.

Syntax

[C#]
LinkAttributesElement()
LinkAttributesElement(Atom atom, IndirectObject host)
LinkAttributesElement(IndirectObject obj)
LinkAttributesElement(Element relation, CreationOptions options)

[Visual Basic]
LinkAttributesElement()
LinkAttributesElement(atom As Atom, host As IndirectObject)
LinkAttributesElement(obj As IndirectObject)
LinkAttributesElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new LinkAttributesElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements LinkAttributesElement EntryID Property

EntryID Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | This property represents the "ID" entry of the link structure attributes object.

Notes

This property represents the "ID" entry of the link structure attributes object.


ZZ Elements LinkAttributesElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | This property represents the "S" entry of the link structure attributes object.

Notes

This property represents the "S" entry of the link structure attributes object.


ZZ Elements MatrixElement

MatrixElement Class

This class represents a tranformation matrix.

Transformation matrices can be used to produce affine transforms such as translations, scales, rotations and skews.

A transformation matrix consists of an array of six values.

Coordinates are expressed as a three element matrix:.

[x, y, 1].

The transformation matrix is expressed as a three by three matrix:.

[a, b, 0].

[c, d, 0].

[e, f, 1].

So to apply a matrix to a point or set of points one simply multiplies the point matrix by the transformation matrix.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 119.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MatrixElement

Method | Description
MatrixElement | Create a new MatrixElement.
 | inherited methods...

Property | Description
Elements | The six elements in this list represent the following elements of the three by three transformation matrix:.
 | inherited properties...


ZZ Elements MatrixElement Constructor Function

MatrixElement Function

Create a new MatrixElement.

Syntax

[C#]
MatrixElement()
MatrixElement(Atom atom, IndirectObject host)
MatrixElement(IndirectObject obj)
MatrixElement(Element relation, CreationOptions options)

[Visual Basic]
MatrixElement()
MatrixElement(atom As Atom, host As IndirectObject)
MatrixElement(obj As IndirectObject)
MatrixElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MatrixElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MatrixElement Elements Property

Elements Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | The six elements in this list represent the following elements of the three by three transformation matrix:.

Notes

The six elements in this list represent the following elements of the three by three transformation matrix:.

[a, b, 0].

[c, d, 0].

[e, f, 1].


ZZ Elements RectangleElement

RectangleElement Class

This class represents a rectangle.

A rectangle consists of an array of four values - two pairs of pairs. The first pair represent the x and y coordinates of the lower left of the rectangle,.

the second pair represent the x and y coordinates of the upper right of the rectangle. So [lx, ly, ux, uy].

Although the pairs conventially represent the lower left and upper right corners, it is in fact legal to represent any diagaonally opposed corners and.

PDF applications will automatically normalize these when they are found.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 88.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RectangleElement

Method | Description
RectangleElement | Create a new RectangleElement.
GetRect | Get the contents of this RectangleElement as an XRect.
SetRect | Set the contents of this RectangleElement using an XRect.
 | inherited methods...

Property | Description
Elements | A rectangle consists of an array of four values - two pairs of pairs.
 | inherited properties...


ZZ Elements RectangleElement Constructor Function

RectangleElement Function

Create a new RectangleElement.

Syntax

[C#]
RectangleElement()
RectangleElement(Atom atom, IndirectObject host)
RectangleElement(IndirectObject obj)
RectangleElement(Element relation, CreationOptions options)

[Visual Basic]
RectangleElement()
RectangleElement(atom As Atom, host As IndirectObject)
RectangleElement(obj As IndirectObject)
RectangleElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RectangleElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 106 in the Annotations example project.

[C#]

AnnotationElement.EntryRect = new RectangleElement(ArrayAtom.FromXRect(value), AnnotationElement.Host);

[VB]

AnnotationElement.EntryRect = New RectangleElement(ArrayAtom.FromXRect(value), AnnotationElement.Host)

This code snippet is taken from Annotations.cs line 1209 in the Annotations example project.

[C#]

WidgetAnnotationElement annot = WidgetElement;
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);

[VB]

Dim annot As WidgetAnnotationElement = WidgetElement
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)

This code snippet is taken from Annotations.cs line 1546 in the Annotations example project.

[C#]

CircleAnnotationElement annot = new CircleAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "Circle";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);
annot.EntryC = Array.ConvertAll(borderColor.Split(new char[] { ' ' }), s => double.Parse(s, NumberFormatInfo.InvariantInfo) / 255.0);
annot.EntryIC = Array.ConvertAll(fillColor.Split(new char[] { ' ' }), s => double.Parse(s, NumberFormatInfo.InvariantInfo) / 255.0);
AnnotationElement = annot;

[VB]

Dim annot As New CircleAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "Circle"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)
annot.EntryC = Array.ConvertAll(borderColor.Split(New Char() { " "c }), Function(s) Double.Parse(s, NumberFormatInfo.InvariantInfo) / 255.0)
annot.EntryIC = Array.ConvertAll(fillColor.Split(New Char() { " "c }), Function(s) Double.Parse(s, NumberFormatInfo.InvariantInfo) / 255.0)
AnnotationElement = annot


ZZ Elements RectangleElement GetRect Function

GetRect Function

Get the contents of this RectangleElement as an XRect.

Syntax

[C#]
virtual XRect GetRect()

[Visual Basic]
Overridable Function GetRect() As XRect

Params
Name | Description
return | A new XRect with values corresponding to the contents of this RectangleElement.

Notes

Get the contents of this RectangleElement as an XRect.


ZZ Elements RectangleElement SetRect Function

SetRect Function

Set the contents of this RectangleElement using an XRect.

Syntax

[C#]
virtual XRect SetRect(XRect rect)

[Visual Basic]
Overridable Function SetRect(rect As XRect) As XRect

Params
Name | Description
rect | The XRect containing values to be inserted into this RectangleElement
return | The XRect that was passed in.

Notes

Set the contents of this RectangleElement using an XRect.


ZZ Elements RectangleElement Elements Property

Elements Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | A rectangle consists of an array of four values - two pairs of pairs.

Notes

A rectangle consists of an array of four values - two pairs of pairs. The first pair represent the x and y coordinates of the lower left of the rectangle,.

the second pair represent the x and y coordinates of the upper right of the rectangle. So [lx, ly, ux, uy].

Although the pairs conventially represent the lower left and upper right corners, it is in fact legal to represent any diagaonally opposed corners and.

PDF applications will automatically normalize these when they are found.


ZZ Elements TextStreamElement

TextStreamElement Class

This class represents a text stream.

PDF streams are simply stores of raw data. So a text stream is simply a PDF stream that contains text data.

This class is always an indirect object because CollectionElement.EntryResources, NameTreeNodeElement<T>.EntryKids, NumberTreeNodeElement<T>.EntryKids, NavigatorElement.EntryResources and NavigatorElement.EntryStrings require it to be so.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Section 7.9.3, page 87.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.StreamElement
         WebSupergoo.ABCpdf12.Elements.TextStreamElement

Method | Description
TextStreamElement | Create a new TextStreamElement.
 | inherited methods...

Property | Description
 | inherited properties...


ZZ Elements TextStreamElement Constructor Function

TextStreamElement Function

Create a new TextStreamElement.

Syntax

[C#]
TextStreamElement()
TextStreamElement(Atom atom, IndirectObject host)
TextStreamElement(IndirectObject obj)
TextStreamElement(Element relation, CreationOptions options)

[Visual Basic]
TextStreamElement()
TextStreamElement(atom As Atom, host As IndirectObject)
TextStreamElement(obj As IndirectObject)
TextStreamElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new TextStreamElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements TreeNodeElement

TreeNodeElement Class

This class represents a name or number tree node dictionary.

This class is always an indirect object because CollectionElement.EntryResources, NameTreeNodeElement<T>.EntryKids, NumberTreeNodeElement<T>.EntryKids, NavigatorElement.EntryResources and NavigatorElement.EntryStrings require it to be so.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 36, page 89.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.TreeNodeElement
         WebSupergoo.ABCpdf12.Elements.NameTreeNodeElement<T>
         WebSupergoo.ABCpdf12.Elements.NumberTreeNodeElement<T>

Method | Description
TreeNodeElement | Create a new TreeNodeElement.
 | inherited methods...

Property | Description
IsRoot | Nodes in a tree may be root, intermediate or leaf.
IsIntermediate | Nodes in a tree may be root, intermediate or leaf.
IsLeaf | Nodes in a tree may be root, intermediate or leaf.
 | inherited properties...


ZZ Elements TreeNodeElement Constructor Function

TreeNodeElement Function

Create a new TreeNodeElement.

Syntax

[C#]
TreeNodeElement()
TreeNodeElement(Atom atom, IndirectObject host)
TreeNodeElement(IndirectObject obj)
TreeNodeElement(Element relation, CreationOptions options)

[Visual Basic]
TreeNodeElement()
TreeNodeElement(atom As Atom, host As IndirectObject)
TreeNodeElement(obj As IndirectObject)
TreeNodeElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new TreeNodeElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements TreeNodeElement IsRoot Property

IsRoot Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | Yes | Nodes in a tree may be root, intermediate or leaf.

Notes

Nodes in a tree may be root, intermediate or leaf.

This property indicates if the node is a root node or not.

We can know this because only the root node has no "Limits" entry.


ZZ Elements TreeNodeElement IsIntermediate Property

IsIntermediate Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | Yes | Nodes in a tree may be root, intermediate or leaf.

Notes

Nodes in a tree may be root, intermediate or leaf.

This property indicates if the node is an intermediate node or not.

We can know this because an intermediate node has a "Kids" entry and is not a root node.


ZZ Elements TreeNodeElement IsLeaf Property

IsLeaf Property

Type | Default Value | Read Only | Description
[C#] bool [Visual Basic] Boolean | false | Yes | Nodes in a tree may be root, intermediate or leaf.

Notes

Nodes in a tree may be root, intermediate or leaf.

This property indicates if the node is a leaf node or not.

We can know this because a leaf node does not have a "Kids" entry and is not a root node.


ZZ Elements StreamElement

StreamElement Class

This class represents the stream. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 5, page 20.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 5, page 32.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.StreamElement
         WebSupergoo.ABCpdf12.Elements.TextStreamElement

Method | Description
StreamElement | Create a new StreamElement.
 | inherited methods...

Property | Description
EntryLength | Represents the "Length" entry of the stream object.
EntryFilter | Represents the "Filter" entry of the stream object.
EntryDecodeParms | Represents the "DecodeParms" entry of the stream object.
EntryF | Represents the "F" entry of the stream object.
EntryFFilter | Represents the "FFilter" entry of the stream object.
EntryFDecodeParms | Represents the "FDecodeParms" entry of the stream object.
EntryDL | Represents the "DL" entry of the stream object.
 | inherited properties...


ZZ Elements StreamElement Constructor Function

StreamElement Function

Create a new StreamElement.

Syntax

[C#]
StreamElement()
StreamElement(Atom atom, IndirectObject host)
StreamElement(IndirectObject obj)
StreamElement(Element relation, CreationOptions options)

[Visual Basic]
StreamElement()
StreamElement(atom As Atom, host As IndirectObject)
StreamElement(obj As IndirectObject)
StreamElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new StreamElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements StreamElement EntryLength Property

EntryLength Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Length" entry of the stream object.

Notes

Represents the "Length" entry of the stream object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

It describes the number of bytes of data in the stream.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 5, page 20.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 5, page 32.


ZZ Elements StreamElement EntryFilter Property

EntryFilter Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Filter" entry of the stream object.

Notes

Represents the "Filter" entry of the stream object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF name objects.

Items in this array may take one of the following valid values:.

  • ASCIIHexDecode
  • ASCII85Decode
  • LZWDecode
  • FlateDecode
  • RunLengthDecode
  • CCITTFaxDecode
  • JBIG2Decode
  • DCTDecode
  • JPXDecode
  • Crypt
.

If you read the specification you will see that an array of one string may be represented as a single string rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

The array controls decompression settings.

Each item in the array represents a filter, a compression type, applied to the data in the stream.

Mutiple filters can be applied to chain compression types. For example you might wish to apply first Flate compression and then ASCII85 encoding.

As new filters are applied to the data, the names are added at the start of the array. So the array represents the order required to decode.

For example if you applied Flate and then ASCII85 encoding, the first item would be ASCII85Decode and the second FlateDecode.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 5, page 20.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 5, page 32.


ZZ Elements StreamElement EntryDecodeParms Property

EntryDecodeParms Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<ParameterElement> [Visual Basic] ArrayElement<ParameterElement> | null | No | Represents the "DecodeParms" entry of the stream object.

Notes

Represents the "DecodeParms" entry of the stream object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains ParameterElements.

If you read the specification you will see that an array of one ParameterElement may be represented as a single ParameterElement rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 5, page 20.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 5, page 32.


ZZ Elements StreamElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] FileSpecificationElement [Visual Basic] FileSpecificationElement | null | No | Represents the "F" entry of the stream object.

Notes

Represents the "F" entry of the stream object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains a FileSpecificationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 5, page 20.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 5, page 32.


ZZ Elements StreamElement EntryFFilter Property

EntryFFilter Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "FFilter" entry of the stream object.

Notes

Represents the "FFilter" entry of the stream object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains an array which contains strings, representing PDF name objects.

Items in this array may take one of the following valid values:.

  • ASCIIHexDecode
  • ASCII85Decode
  • LZWDecode
  • FlateDecode
  • RunLengthDecode
  • CCITTFaxDecode
  • JBIG2Decode
  • DCTDecode
  • JPXDecode
  • Crypt
.

If you read the specification you will see that an array of one string may be represented as a single string rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 5, page 20.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 5, page 32.


ZZ Elements StreamElement EntryFDecodeParms Property

EntryFDecodeParms Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<ParameterElement> [Visual Basic] ArrayElement<ParameterElement> | null | No | Represents the "FDecodeParms" entry of the stream object.

Notes

Represents the "FDecodeParms" entry of the stream object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains an array which contains ParameterElements.

If you read the specification you will see that an array of one ParameterElement may be represented as a single ParameterElement rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 5, page 20.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 5, page 32.


ZZ Elements StreamElement EntryDL Property

EntryDL Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "DL" entry of the stream object.

Notes

Represents the "DL" entry of the stream object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an integer representing a PDF numeric object.

It should have a minimum value of 0.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 5, page 21.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 5, page 32.


ZZ Elements FlateParametersElement

FlateParametersElement Class

This class represents the flate parameters. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 8, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 8, page 40.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ParameterElement
         WebSupergoo.ABCpdf12.Elements.FlateParametersElement

Method | Description
FlateParametersElement | Create a new FlateParametersElement.
 | inherited methods...

Property | Description
EntryPredictor | Represents the "Predictor" entry of the flate parameters object.
EntryColors | Represents the "Colors" entry of the flate parameters object.
EntryBitsPerComponent | Represents the "BitsPerComponent" entry of the flate parameters object.
EntryColumns | Represents the "Columns" entry of the flate parameters object.
 | inherited properties...


ZZ Elements FlateParametersElement Constructor Function

FlateParametersElement Function

Create a new FlateParametersElement.

Syntax

[C#]
FlateParametersElement()
FlateParametersElement(Atom atom, IndirectObject host)
FlateParametersElement(IndirectObject obj)
FlateParametersElement(Element relation, CreationOptions options)

[Visual Basic]
FlateParametersElement()
FlateParametersElement(atom As Atom, host As IndirectObject)
FlateParametersElement(obj As IndirectObject)
FlateParametersElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FlateParametersElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FlateParametersElement EntryPredictor Property

EntryPredictor Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Predictor" entry of the flate parameters object.

Notes

Represents the "Predictor" entry of the flate parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 8, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 8, page 40.


ZZ Elements FlateParametersElement EntryColors Property

EntryColors Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Colors" entry of the flate parameters object.

Notes

Represents the "Colors" entry of the flate parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 8, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 8, page 40.


ZZ Elements FlateParametersElement EntryBitsPerComponent Property

EntryBitsPerComponent Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "BitsPerComponent" entry of the flate parameters object.

Notes

Represents the "BitsPerComponent" entry of the flate parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 8 if no value has been provided.

This item may take one of the following valid values:.

  • 1
  • 2
  • 4
  • 8
  • 16

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 8, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 8, page 40.


ZZ Elements FlateParametersElement EntryColumns Property

EntryColumns Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Columns" entry of the flate parameters object.

Notes

Represents the "Columns" entry of the flate parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 8, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 8, page 40.


ZZ Elements LzwParametersElement

LzwParametersElement Class

This class represents the lzw parameters. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 8, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 8, page 40.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ParameterElement
         WebSupergoo.ABCpdf12.Elements.LzwParametersElement

Method | Description
LzwParametersElement | Create a new LzwParametersElement.
 | inherited methods...

Property | Description
EntryPredictor | Represents the "Predictor" entry of the lzw parameters object.
EntryColors | Represents the "Colors" entry of the lzw parameters object.
EntryBitsPerComponent | Represents the "BitsPerComponent" entry of the lzw parameters object.
EntryColumns | Represents the "Columns" entry of the lzw parameters object.
EntryEarlyChange | Represents the "EarlyChange" entry of the lzw parameters object.
 | inherited properties...


ZZ Elements LzwParametersElement Constructor Function

LzwParametersElement Function

Create a new LzwParametersElement.

Syntax

[C#]
LzwParametersElement()
LzwParametersElement(Atom atom, IndirectObject host)
LzwParametersElement(IndirectObject obj)
LzwParametersElement(Element relation, CreationOptions options)

[Visual Basic]
LzwParametersElement()
LzwParametersElement(atom As Atom, host As IndirectObject)
LzwParametersElement(obj As IndirectObject)
LzwParametersElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new LzwParametersElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements LzwParametersElement EntryPredictor Property

EntryPredictor Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Predictor" entry of the lzw parameters object.

Notes

Represents the "Predictor" entry of the lzw parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 8, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 8, page 40.


ZZ Elements LzwParametersElement EntryColors Property

EntryColors Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Colors" entry of the lzw parameters object.

Notes

Represents the "Colors" entry of the lzw parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

It should have a minimum value of 1.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 8, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 8, page 40.


ZZ Elements LzwParametersElement EntryBitsPerComponent Property

EntryBitsPerComponent Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "BitsPerComponent" entry of the lzw parameters object.

Notes

Represents the "BitsPerComponent" entry of the lzw parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 8 if no value has been provided.

This item may take one of the following valid values:.

  • 1
  • 2
  • 4
  • 8
  • 16

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 8, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 8, page 40.


ZZ Elements LzwParametersElement EntryColumns Property

EntryColumns Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Columns" entry of the lzw parameters object.

Notes

Represents the "Columns" entry of the lzw parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 8, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 8, page 40.


ZZ Elements LzwParametersElement EntryEarlyChange Property

EntryEarlyChange Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "EarlyChange" entry of the lzw parameters object.

Notes

Represents the "EarlyChange" entry of the lzw parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 8, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 8, page 40.


ZZ Elements CcittParametersElement

CcittParametersElement Class

This class represents the ccittfax parameters. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 11, page 30.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 11, page 43.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ParameterElement
         WebSupergoo.ABCpdf12.Elements.CcittParametersElement

Method | Description
CcittParametersElement | Create a new CcittParametersElement.
 | inherited methods...

Property | Description
EntryK | Represents the "K" entry of the ccittfax parameters object.
EntryEndOfLine | Represents the "EndOfLine" entry of the ccittfax parameters object.
EntryEncodedByteAlign | Represents the "EncodedByteAlign" entry of the ccittfax parameters object.
EntryColumns | Represents the "Columns" entry of the ccittfax parameters object.
EntryRows | Represents the "Rows" entry of the ccittfax parameters object.
EntryEndOfBlock | Represents the "EndOfBlock" entry of the ccittfax parameters object.
EntryBlackIs1 | Represents the "BlackIs1" entry of the ccittfax parameters object.
EntryDamagedRowsBeforeError | Represents the "DamagedRowsBeforeError" entry of the ccittfax parameters object.
 | inherited properties...


ZZ Elements CcittParametersElement Constructor Function

CcittParametersElement Function

Create a new CcittParametersElement.

Syntax

[C#]
CcittParametersElement()
CcittParametersElement(Atom atom, IndirectObject host)
CcittParametersElement(IndirectObject obj)
CcittParametersElement(Element relation, CreationOptions options)

[Visual Basic]
CcittParametersElement()
CcittParametersElement(atom As Atom, host As IndirectObject)
CcittParametersElement(obj As IndirectObject)
CcittParametersElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CcittParametersElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CcittParametersElement EntryK Property

EntryK Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "K" entry of the ccittfax parameters object.

Notes

Represents the "K" entry of the ccittfax parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 11, page 30.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 11, page 43.


ZZ Elements CcittParametersElement EntryEndOfLine Property

EntryEndOfLine Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "EndOfLine" entry of the ccittfax parameters object.

Notes

Represents the "EndOfLine" entry of the ccittfax parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 11, page 31.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 11, page 43.


ZZ Elements CcittParametersElement EntryEncodedByteAlign Property

EntryEncodedByteAlign Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "EncodedByteAlign" entry of the ccittfax parameters object.

Notes

Represents the "EncodedByteAlign" entry of the ccittfax parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 11, page 31.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 11, page 43.


ZZ Elements CcittParametersElement EntryColumns Property

EntryColumns Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Columns" entry of the ccittfax parameters object.

Notes

Represents the "Columns" entry of the ccittfax parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1728 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 11, page 31.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 11, page 44.


ZZ Elements CcittParametersElement EntryRows Property

EntryRows Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Rows" entry of the ccittfax parameters object.

Notes

Represents the "Rows" entry of the ccittfax parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 11, page 31.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 11, page 44.


ZZ Elements CcittParametersElement EntryEndOfBlock Property

EntryEndOfBlock Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "EndOfBlock" entry of the ccittfax parameters object.

Notes

Represents the "EndOfBlock" entry of the ccittfax parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of true if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 11, page 31.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 11, page 44.


ZZ Elements CcittParametersElement EntryBlackIs1 Property

EntryBlackIs1 Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "BlackIs1" entry of the ccittfax parameters object.

Notes

Represents the "BlackIs1" entry of the ccittfax parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 11, page 31.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 11, page 44.


ZZ Elements CcittParametersElement EntryDamagedRowsBeforeError Property

EntryDamagedRowsBeforeError Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "DamagedRowsBeforeError" entry of the ccittfax parameters object.

Notes

Represents the "DamagedRowsBeforeError" entry of the ccittfax parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

It should have a minimum value of 0.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 11, page 31.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 11, page 44.


ZZ Elements Jbig2ParametersElement

Jbig2ParametersElement Class

This class represents the jbig2 parameters. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 12, page 32.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 12, page 46.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ParameterElement
         WebSupergoo.ABCpdf12.Elements.Jbig2ParametersElement

Method | Description
Jbig2ParametersElement | Create a new Jbig2ParametersElement.
 | inherited methods...

Property | Description
EntryJBIG2Globals | Represents the "JBIG2Globals" entry of the jbig2 parameters object.
 | inherited properties...


ZZ Elements Jbig2ParametersElement Constructor Function

Jbig2ParametersElement Function

Create a new Jbig2ParametersElement.

Syntax

[C#]
Jbig2ParametersElement()
Jbig2ParametersElement(Atom atom, IndirectObject host)
Jbig2ParametersElement(IndirectObject obj)
Jbig2ParametersElement(Element relation, CreationOptions options)

[Visual Basic]
Jbig2ParametersElement()
Jbig2ParametersElement(atom As Atom, host As IndirectObject)
Jbig2ParametersElement(obj As IndirectObject)
Jbig2ParametersElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Jbig2ParametersElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Jbig2ParametersElement EntryJBIG2Globals Property

EntryJBIG2Globals Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | No | Represents the "JBIG2Globals" entry of the jbig2 parameters object.

Notes

Represents the "JBIG2Globals" entry of the jbig2 parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 12, page 32.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 12, page 46.


ZZ Elements DctParametersElement

DctParametersElement Class

This class represents the dct parameters. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 13, page 35.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 13, page 48.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ParameterElement
         WebSupergoo.ABCpdf12.Elements.DctParametersElement

Method | Description
DctParametersElement | Create a new DctParametersElement.
 | inherited methods...

Property | Description
EntryColorTransform | Represents the "ColorTransform" entry of the dct parameters object.
 | inherited properties...


ZZ Elements DctParametersElement Constructor Function

DctParametersElement Function

Create a new DctParametersElement.

Syntax

[C#]
DctParametersElement()
DctParametersElement(Atom atom, IndirectObject host)
DctParametersElement(IndirectObject obj)
DctParametersElement(Element relation, CreationOptions options)

[Visual Basic]
DctParametersElement()
DctParametersElement(atom As Atom, host As IndirectObject)
DctParametersElement(obj As IndirectObject)
DctParametersElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new DctParametersElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements DctParametersElement EntryColorTransform Property

EntryColorTransform Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "ColorTransform" entry of the dct parameters object.

Notes

Represents the "ColorTransform" entry of the dct parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 13, page 35.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 13, page 48.


ZZ Elements CryptParametersElement

CryptParametersElement Class

This class represents the crypt parameters. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 14, page 38.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 14, page 52.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ParameterElement
         WebSupergoo.ABCpdf12.Elements.CryptParametersElement

Method | Description
CryptParametersElement | Create a new CryptParametersElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the crypt parameters object.
EntryName | Represents the "Name" entry of the crypt parameters object.
 | inherited properties...


ZZ Elements CryptParametersElement Constructor Function

CryptParametersElement Function

Create a new CryptParametersElement.

Syntax

[C#]
CryptParametersElement()
CryptParametersElement(Atom atom, IndirectObject host)
CryptParametersElement(IndirectObject obj)
CryptParametersElement(Element relation, CreationOptions options)

[Visual Basic]
CryptParametersElement()
CryptParametersElement(atom As Atom, host As IndirectObject)
CryptParametersElement(obj As IndirectObject)
CryptParametersElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CryptParametersElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CryptParametersElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the crypt parameters object.

Notes

Represents the "Type" entry of the crypt parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "CryptFilterDecodeParms".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 14, page 38.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 14, page 52.


ZZ Elements CryptParametersElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Name" entry of the crypt parameters object.

Notes

Represents the "Name" entry of the crypt parameters object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Identity" if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 14, page 38.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 14, page 52.


ZZ Elements FileTrailerElement

FileTrailerElement Class

This class represents the file trailer dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 15, page 43.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 15, page 57.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FileTrailerElement

Method | Description
FileTrailerElement | Create a new FileTrailerElement.
 | inherited methods...

Property | Description
EntrySize | Represents the "Size" entry of the file trailer dictionary object.
EntryPrev | Represents the "Prev" entry of the file trailer dictionary object.
EntryRoot | Represents the "Root" entry of the file trailer dictionary object.
EntryEncrypt | Represents the "Encrypt" entry of the file trailer dictionary object.
EntryInfo | Represents the "Info" entry of the file trailer dictionary object.
EntryID | Represents the "ID" entry of the file trailer dictionary object.
EntryXRefStm | Represents the "XRefStm" entry of the file trailer dictionary object.
 | inherited properties...


ZZ Elements FileTrailerElement Constructor Function

FileTrailerElement Function

Create a new FileTrailerElement.

Syntax

[C#]
FileTrailerElement()
FileTrailerElement(Atom atom, IndirectObject host)
FileTrailerElement(IndirectObject obj)
FileTrailerElement(Element relation, CreationOptions options)

[Visual Basic]
FileTrailerElement()
FileTrailerElement(atom As Atom, host As IndirectObject)
FileTrailerElement(obj As IndirectObject)
FileTrailerElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FileTrailerElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FileTrailerElement EntrySize Property

EntrySize Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Size" entry of the file trailer dictionary object.

Notes

Represents the "Size" entry of the file trailer dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 15, page 43.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 15, page 57.


ZZ Elements FileTrailerElement EntryPrev Property

EntryPrev Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Prev" entry of the file trailer dictionary object.

Notes

Represents the "Prev" entry of the file trailer dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 15, page 43.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 15, page 57.


ZZ Elements FileTrailerElement EntryRoot Property

EntryRoot Property

Type | Default Value | Read Only | Description
[C#] CatalogElement [Visual Basic] CatalogElement | null | No | Represents the "Root" entry of the file trailer dictionary object.

Notes

Represents the "Root" entry of the file trailer dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a CatalogElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 15, page 43.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 15, page 57.


ZZ Elements FileTrailerElement EntryEncrypt Property

EntryEncrypt Property

Type | Default Value | Read Only | Description
[C#] EncryptionElement [Visual Basic] EncryptionElement | null | No | Represents the "Encrypt" entry of the file trailer dictionary object.

Notes

Represents the "Encrypt" entry of the file trailer dictionary object.

It is defined as part of the PDF 1.1 specification.

It contains an EncryptionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 15, page 43.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 15, page 57.


ZZ Elements FileTrailerElement EntryInfo Property

EntryInfo Property

Type | Default Value | Read Only | Description
[C#] DocumentInformationElement [Visual Basic] DocumentInformationElement | null | No | Represents the "Info" entry of the file trailer dictionary object.

Notes

Represents the "Info" entry of the file trailer dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a DocumentInformationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 15, page 43.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 15, page 57.


ZZ Elements FileTrailerElement EntryID Property

EntryID Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "ID" entry of the file trailer dictionary object.

Notes

Represents the "ID" entry of the file trailer dictionary object.

It is defined as part of the PDF 1.1 specification.

It contains an array which contains strings, representing PDF string objects.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 15, page 43.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 15, page 58.


ZZ Elements FileTrailerElement EntryXRefStm Property

EntryXRefStm Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "XRefStm" entry of the file trailer dictionary object.

Notes

Represents the "XRefStm" entry of the file trailer dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 15, page 43.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 15, page 57.


ZZ Elements ObjectStreamElement

ObjectStreamElement Class

This class represents the object stream dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 16, page 46.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 16, page 61.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ObjectStreamElement

Method | Description
ObjectStreamElement | Create a new ObjectStreamElement.
 | inherited methods...

Property | Description
StreamElement | The StreamElement associated with this class.
EntryType | Represents the "Type" entry of the object stream dictionary object.
EntryN | Represents the "N" entry of the object stream dictionary object.
EntryFirst | Represents the "First" entry of the object stream dictionary object.
EntryExtends | Represents the "Extends" entry of the object stream dictionary object.
 | inherited properties...


ZZ Elements ObjectStreamElement Constructor Function

ObjectStreamElement Function

Create a new ObjectStreamElement.

Syntax

[C#]
ObjectStreamElement()
ObjectStreamElement(Atom atom, IndirectObject host)
ObjectStreamElement(IndirectObject obj)
ObjectStreamElement(Element relation, CreationOptions options)

[Visual Basic]
ObjectStreamElement()
ObjectStreamElement(atom As Atom, host As IndirectObject)
ObjectStreamElement(obj As IndirectObject)
ObjectStreamElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ObjectStreamElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ObjectStreamElement StreamElement Property

StreamElement Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | Yes | The StreamElement associated with this class.

Notes

The StreamElement associated with this class.


ZZ Elements ObjectStreamElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the object stream dictionary object.

Notes

Represents the "Type" entry of the object stream dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "ObjStm".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 16, page 46.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 16, page 61.


ZZ Elements ObjectStreamElement EntryN Property

EntryN Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "N" entry of the object stream dictionary object.

Notes

Represents the "N" entry of the object stream dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 16, page 46.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 16, page 61.


ZZ Elements ObjectStreamElement EntryFirst Property

EntryFirst Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "First" entry of the object stream dictionary object.

Notes

Represents the "First" entry of the object stream dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 16, page 46.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 16, page 61.


ZZ Elements ObjectStreamElement EntryExtends Property

EntryExtends Property

Type | Default Value | Read Only | Description
[C#] ObjectStreamElement [Visual Basic] ObjectStreamElement | null | No | Represents the "Extends" entry of the object stream dictionary object.

Notes

Represents the "Extends" entry of the object stream dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an ObjectStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 16, page 46.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 16, page 61.


ZZ Elements CrossReferenceStreamElement

CrossReferenceStreamElement Class

This class represents the cross-reference stream dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 17, page 50.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 17, page 65.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CrossReferenceStreamElement

Method | Description
CrossReferenceStreamElement | Create a new CrossReferenceStreamElement.
 | inherited methods...

Property | Description
StreamElement | The StreamElement associated with this class.
EntryType | Represents the "Type" entry of the cross-reference stream dictionary object.
EntrySize | Represents the "Size" entry of the cross-reference stream dictionary object.
EntryIndex | Represents the "Index" entry of the cross-reference stream dictionary object.
EntryPrev | Represents the "Prev" entry of the cross-reference stream dictionary object.
EntryW | Represents the "W" entry of the cross-reference stream dictionary object.
EntryRoot | Represents the "Root" entry of the cross-reference stream dictionary object.
EntryEncrypt | Represents the "Encrypt" entry of the cross-reference stream dictionary object.
EntryInfo | Represents the "Info" entry of the cross-reference stream dictionary object.
EntryID | Represents the "ID" entry of the cross-reference stream dictionary object.
 | inherited properties...


ZZ Elements CrossReferenceStreamElement Constructor Function

CrossReferenceStreamElement Function

Create a new CrossReferenceStreamElement.

Syntax

[C#]
CrossReferenceStreamElement()
CrossReferenceStreamElement(Atom atom, IndirectObject host)
CrossReferenceStreamElement(IndirectObject obj)
CrossReferenceStreamElement(Element relation, CreationOptions options)

[Visual Basic]
CrossReferenceStreamElement()
CrossReferenceStreamElement(atom As Atom, host As IndirectObject)
CrossReferenceStreamElement(obj As IndirectObject)
CrossReferenceStreamElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CrossReferenceStreamElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CrossReferenceStreamElement StreamElement Property

StreamElement Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | Yes | The StreamElement associated with this class.

Notes

The StreamElement associated with this class.


ZZ Elements CrossReferenceStreamElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the cross-reference stream dictionary object.

Notes

Represents the "Type" entry of the cross-reference stream dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "XRef".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 17, page 50.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 17, page 65.


ZZ Elements CrossReferenceStreamElement EntrySize Property

EntrySize Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Size" entry of the cross-reference stream dictionary object.

Notes

Represents the "Size" entry of the cross-reference stream dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 17, page 50.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 17, page 65.


ZZ Elements CrossReferenceStreamElement EntryIndex Property

EntryIndex Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "Index" entry of the cross-reference stream dictionary object.

Notes

Represents the "Index" entry of the cross-reference stream dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains integers, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 17, page 50.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 17, page 65.


ZZ Elements CrossReferenceStreamElement EntryPrev Property

EntryPrev Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Prev" entry of the cross-reference stream dictionary object.

Notes

Represents the "Prev" entry of the cross-reference stream dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 17, page 50.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 17, page 65.


ZZ Elements CrossReferenceStreamElement EntryW Property

EntryW Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "W" entry of the cross-reference stream dictionary object.

Notes

Represents the "W" entry of the cross-reference stream dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains integers, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 17, page 50.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 17, page 66.


ZZ Elements CrossReferenceStreamElement EntryRoot Property

EntryRoot Property

Type | Default Value | Read Only | Description
[C#] CatalogElement [Visual Basic] CatalogElement | null | No | Represents the "Root" entry of the cross-reference stream dictionary object.

Notes

Represents the "Root" entry of the cross-reference stream dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a CatalogElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 17, page 50.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 17, page 65.


ZZ Elements CrossReferenceStreamElement EntryEncrypt Property

EntryEncrypt Property

Type | Default Value | Read Only | Description
[C#] EncryptionElement [Visual Basic] EncryptionElement | null | No | Represents the "Encrypt" entry of the cross-reference stream dictionary object.

Notes

Represents the "Encrypt" entry of the cross-reference stream dictionary object.

It is defined as part of the PDF 1.1 specification.

It contains an EncryptionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 17, page 50.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 17, page 65.


ZZ Elements CrossReferenceStreamElement EntryInfo Property

EntryInfo Property

Type | Default Value | Read Only | Description
[C#] DocumentInformationElement [Visual Basic] DocumentInformationElement | null | No | Represents the "Info" entry of the cross-reference stream dictionary object.

Notes

Represents the "Info" entry of the cross-reference stream dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a DocumentInformationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 17, page 50.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 17, page 65.


ZZ Elements CrossReferenceStreamElement EntryID Property

EntryID Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "ID" entry of the cross-reference stream dictionary object.

Notes

Represents the "ID" entry of the cross-reference stream dictionary object.

It is defined as part of the PDF 1.1 specification.

It contains an array which contains strings, representing PDF string objects.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 17, page 50.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 17, page 65.


ZZ Elements EncryptionElement

EncryptionElement Class

This class represents the encryption dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 20, page 56.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 20, page 71.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.18, page 14.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.EncryptionElement
         WebSupergoo.ABCpdf12.Elements.PublicKeyEncryptionElement
         WebSupergoo.ABCpdf12.Elements.StandardEncryptionElement

Method | Description
EncryptionElement | Create a new EncryptionElement.
 | inherited methods...

Property | Description
EntryFilter | Represents the "Filter" entry of the encryption dictionary object.
EntrySubFilter | Represents the "SubFilter" entry of the encryption dictionary object.
EntryV | Represents the "V" entry of the encryption dictionary object.
EntryLength | Represents the "Length" entry of the encryption dictionary object.
EntryCF | Represents the "CF" entry of the encryption dictionary object.
EntryStmF | Represents the "StmF" entry of the encryption dictionary object.
EntryStrF | Represents the "StrF" entry of the encryption dictionary object.
EntryEFF | Represents the "EFF" entry of the encryption dictionary object.
 | inherited properties...


ZZ Elements EncryptionElement Constructor Function

EncryptionElement Function

Create a new EncryptionElement.

Syntax

[C#]
EncryptionElement()
EncryptionElement(Atom atom, IndirectObject host)
EncryptionElement(IndirectObject obj)
EncryptionElement(Element relation, CreationOptions options)

[Visual Basic]
EncryptionElement()
EncryptionElement(atom As Atom, host As IndirectObject)
EncryptionElement(obj As IndirectObject)
EncryptionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new EncryptionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements EncryptionElement EntryFilter Property

EntryFilter Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Filter" entry of the encryption dictionary object.

Notes

Represents the "Filter" entry of the encryption dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The specification defines this as exensible which means that it may contain entries in addition to those defined in the specification.

In fact almost all objects are extensible but the fact that it is explicitly mentioned, implies that extra entries should be regarded as normal rather than exceptional.

For further details see The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: Annex E, page 673..

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 20, page 56.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.18, page 14.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 20, page 71.


ZZ Elements EncryptionElement EntrySubFilter Property

EntrySubFilter Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "SubFilter" entry of the encryption dictionary object.

Notes

Represents the "SubFilter" entry of the encryption dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 20, page 56.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.18, page 14.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 20, page 71.


ZZ Elements EncryptionElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "V" entry of the encryption dictionary object.

Notes

Represents the "V" entry of the encryption dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 20, page 56.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.18, page 14.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 20, page 72.


ZZ Elements EncryptionElement EntryLength Property

EntryLength Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Length" entry of the encryption dictionary object.

Notes

Represents the "Length" entry of the encryption dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification. It was deprecated in PDF 2.0.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 40 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 20, page 56.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.18, page 14.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 20, page 72.


ZZ Elements EncryptionElement EntryCF Property

EntryCF Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "CF" entry of the encryption dictionary object.

Notes

Represents the "CF" entry of the encryption dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 20, page 56.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.18, page 14.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 20, page 72.


ZZ Elements EncryptionElement EntryStmF Property

EntryStmF Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "StmF" entry of the encryption dictionary object.

Notes

Represents the "StmF" entry of the encryption dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Identity" if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 20, page 56.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.18, page 14.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 20, page 72.


ZZ Elements EncryptionElement EntryStrF Property

EntryStrF Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "StrF" entry of the encryption dictionary object.

Notes

Represents the "StrF" entry of the encryption dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Identity" if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 20, page 57.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.18, page 14.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 20, page 72.


ZZ Elements EncryptionElement EntryEFF Property

EntryEFF Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "EFF" entry of the encryption dictionary object.

Notes

Represents the "EFF" entry of the encryption dictionary object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 20, page 57.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.18, page 14.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 20, page 73.


ZZ Elements StandardEncryptionElement

StandardEncryptionElement Class

This class represents the standard security handler encryption dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 21, page 60.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 21, page 77.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.19, page 16.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.EncryptionElement
         WebSupergoo.ABCpdf12.Elements.StandardEncryptionElement

Method | Description
StandardEncryptionElement | Create a new StandardEncryptionElement.
 | inherited methods...

Property | Description
EntryR | Represents the "R" entry of the standard security handler encryption dictionary object.
EntryO | Represents the "O" entry of the standard security handler encryption dictionary object.
EntryU | Represents the "U" entry of the standard security handler encryption dictionary object.
EntryOE | Represents the "OE" entry of the standard security handler encryption dictionary object.
EntryUE | Represents the "UE" entry of the standard security handler encryption dictionary object.
EntryP | Represents the "P" entry of the standard security handler encryption dictionary object.
EntryPerms | Represents the "Perms" entry of the standard security handler encryption dictionary object.
EntryEncryptMetadata | Represents the "EncryptMetadata" entry of the standard security handler encryption dictionary object.
 | inherited properties...


ZZ Elements StandardEncryptionElement Constructor Function

StandardEncryptionElement Function

Create a new StandardEncryptionElement.

Syntax

[C#]
StandardEncryptionElement()
StandardEncryptionElement(Atom atom, IndirectObject host)
StandardEncryptionElement(IndirectObject obj)
StandardEncryptionElement(Element relation, CreationOptions options)

[Visual Basic]
StandardEncryptionElement()
StandardEncryptionElement(atom As Atom, host As IndirectObject)
StandardEncryptionElement(obj As IndirectObject)
StandardEncryptionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new StandardEncryptionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements StandardEncryptionElement EntryR Property

EntryR Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "R" entry of the standard security handler encryption dictionary object.

Notes

Represents the "R" entry of the standard security handler encryption dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

This item may take one of the following valid values:.

  • 2
  • 3
  • 4
  • 5

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 21, page 60.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.19, page 16.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 21, page 77.


ZZ Elements StandardEncryptionElement EntryO Property

EntryO Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "O" entry of the standard security handler encryption dictionary object.

Notes

Represents the "O" entry of the standard security handler encryption dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 21, page 60.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.19, page 16.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 21, page 77.


ZZ Elements StandardEncryptionElement EntryU Property

EntryU Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "U" entry of the standard security handler encryption dictionary object.

Notes

Represents the "U" entry of the standard security handler encryption dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 21, page 60.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.19, page 16.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 21, page 77.


ZZ Elements StandardEncryptionElement EntryOE Property

EntryOE Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "OE" entry of the standard security handler encryption dictionary object.

Notes

Represents the "OE" entry of the standard security handler encryption dictionary object.

It is defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 21, page 60.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.19, page 16.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 21, page 77.


ZZ Elements StandardEncryptionElement EntryUE Property

EntryUE Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "UE" entry of the standard security handler encryption dictionary object.

Notes

Represents the "UE" entry of the standard security handler encryption dictionary object.

It is defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 21, page 60.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.19, page 16.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 21, page 77.


ZZ Elements StandardEncryptionElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "P" entry of the standard security handler encryption dictionary object.

Notes

Represents the "P" entry of the standard security handler encryption dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 21, page 60.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.19, page 16.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 21, page 77.


ZZ Elements StandardEncryptionElement EntryPerms Property

EntryPerms Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Perms" entry of the standard security handler encryption dictionary object.

Notes

Represents the "Perms" entry of the standard security handler encryption dictionary object.

It is defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 21, page 60.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.19, page 16.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 21, page 77.


ZZ Elements StandardEncryptionElement EntryEncryptMetadata Property

EntryEncryptMetadata Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "EncryptMetadata" entry of the standard security handler encryption dictionary object.

Notes

Represents the "EncryptMetadata" entry of the standard security handler encryption dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of true if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 21, page 60.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.19, page 16.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 21, page 77.


ZZ Elements PublicKeyEncryptionElement

PublicKeyEncryptionElement Class

This class represents the public-key security handler encryption dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 23, page 65.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 23, page 86.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.EncryptionElement
         WebSupergoo.ABCpdf12.Elements.PublicKeyEncryptionElement

Method | Description
PublicKeyEncryptionElement | Create a new PublicKeyEncryptionElement.
 | inherited methods...

Property | Description
EntryRecipients | Represents the "Recipients" entry of the public-key security handler encryption dictionary object.
EntryP | Represents the "P" entry of the public-key security handler encryption dictionary object.
 | inherited properties...


ZZ Elements PublicKeyEncryptionElement Constructor Function

PublicKeyEncryptionElement Function

Create a new PublicKeyEncryptionElement.

Syntax

[C#]
PublicKeyEncryptionElement()
PublicKeyEncryptionElement(Atom atom, IndirectObject host)
PublicKeyEncryptionElement(IndirectObject obj)
PublicKeyEncryptionElement(Element relation, CreationOptions options)

[Visual Basic]
PublicKeyEncryptionElement()
PublicKeyEncryptionElement(atom As Atom, host As IndirectObject)
PublicKeyEncryptionElement(obj As IndirectObject)
PublicKeyEncryptionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new PublicKeyEncryptionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements PublicKeyEncryptionElement EntryRecipients Property

EntryRecipients Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Recipients" entry of the public-key security handler encryption dictionary object.

Notes

Represents the "Recipients" entry of the public-key security handler encryption dictionary object.

It is defined as part of the PDF 1.3 specification.

It contains an array which contains strings, representing PDF string objects.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 23, page 65.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 23, page 86.


ZZ Elements PublicKeyEncryptionElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "P" entry of the public-key security handler encryption dictionary object.

Notes

Represents the "P" entry of the public-key security handler encryption dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 23, page 65.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 23, page 86.


ZZ Elements CryptFilterElement

CryptFilterElement Class

This class represents the crypt filter dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 25, page 68.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 25, page 89.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.22, page 22.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CryptFilterElement
         WebSupergoo.ABCpdf12.Elements.PublicKeyCryptFilterElement

Method | Description
CryptFilterElement | Create a new CryptFilterElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the crypt filter dictionary object.
EntryCFM | Represents the "CFM" entry of the crypt filter dictionary object.
EntryAuthEvent | Represents the "AuthEvent" entry of the crypt filter dictionary object.
EntryLength | Represents the "Length" entry of the crypt filter dictionary object.
 | inherited properties...


ZZ Elements CryptFilterElement Constructor Function

CryptFilterElement Function

Create a new CryptFilterElement.

Syntax

[C#]
CryptFilterElement()
CryptFilterElement(Atom atom, IndirectObject host)
CryptFilterElement(IndirectObject obj)
CryptFilterElement(Element relation, CreationOptions options)

[Visual Basic]
CryptFilterElement()
CryptFilterElement(atom As Atom, host As IndirectObject)
CryptFilterElement(obj As IndirectObject)
CryptFilterElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CryptFilterElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CryptFilterElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the crypt filter dictionary object.

Notes

Represents the "Type" entry of the crypt filter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "CryptFilter".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 25, page 68.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.22, page 22.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 25, page 89.


ZZ Elements CryptFilterElement EntryCFM Property

EntryCFM Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "CFM" entry of the crypt filter dictionary object.

Notes

Represents the "CFM" entry of the crypt filter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "None" if no value has been provided.

This item may take one of the following valid values:.

  • None
  • V2
  • AESV2
  • AESV3

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 25, page 68.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.22, page 22.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 25, page 90.


ZZ Elements CryptFilterElement EntryAuthEvent Property

EntryAuthEvent Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "AuthEvent" entry of the crypt filter dictionary object.

Notes

Represents the "AuthEvent" entry of the crypt filter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "DocOpen" if no value has been provided.

This item may take one of the following valid values:.

  • DocOpen
  • EFOpen

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 25, page 68.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.22, page 22.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 25, page 90.


ZZ Elements CryptFilterElement EntryLength Property

EntryLength Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Length" entry of the crypt filter dictionary object.

Notes

Represents the "Length" entry of the crypt filter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 25, page 68.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.22, page 22.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 25, page 91.


ZZ Elements PublicKeyCryptFilterElement

PublicKeyCryptFilterElement Class

This class represents the public-key security handler crypt filter. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 27, page 69.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 27, page 91.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CryptFilterElement
         WebSupergoo.ABCpdf12.Elements.PublicKeyCryptFilterElement

Method | Description
PublicKeyCryptFilterElement | Create a new PublicKeyCryptFilterElement.
 | inherited methods...

Property | Description
EntryRecipients | Represents the "Recipients" entry of the public-key security handler crypt filter object.
EntryEncryptMetadata | Represents the "EncryptMetadata" entry of the public-key security handler crypt filter object.
 | inherited properties...


ZZ Elements PublicKeyCryptFilterElement Constructor Function

PublicKeyCryptFilterElement Function

Create a new PublicKeyCryptFilterElement.

Syntax

[C#]
PublicKeyCryptFilterElement()
PublicKeyCryptFilterElement(Atom atom, IndirectObject host)
PublicKeyCryptFilterElement(IndirectObject obj)
PublicKeyCryptFilterElement(Element relation, CreationOptions options)

[Visual Basic]
PublicKeyCryptFilterElement()
PublicKeyCryptFilterElement(atom As Atom, host As IndirectObject)
PublicKeyCryptFilterElement(obj As IndirectObject)
PublicKeyCryptFilterElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new PublicKeyCryptFilterElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements PublicKeyCryptFilterElement EntryRecipients Property

EntryRecipients Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Recipients" entry of the public-key security handler crypt filter object.

Notes

Represents the "Recipients" entry of the public-key security handler crypt filter object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

If you read the specification you will see that an array of one string may be represented as a single string rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 27, page 69.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 27, page 91.


ZZ Elements PublicKeyCryptFilterElement EntryEncryptMetadata Property

EntryEncryptMetadata Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "EncryptMetadata" entry of the public-key security handler crypt filter object.

Notes

Represents the "EncryptMetadata" entry of the public-key security handler crypt filter object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of true if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 27, page 69.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 27, page 92.


ZZ Elements CatalogElement

CatalogElement Class

This class represents the catalog dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 73.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 97.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.

This class is always an indirect object because CrossReferenceStreamElement.EntryRoot and FileTrailerElement.EntryRoot require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CatalogElement

Method | Description
CatalogElement | Create a new CatalogElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the catalog dictionary object.
EntryVersion | Represents the "Version" entry of the catalog dictionary object.
EntryExtensions | Represents the "Extensions" entry of the catalog dictionary object.
EntryPages | Represents the "Pages" entry of the catalog dictionary object.
EntryPageLabels | Represents the "PageLabels" entry of the catalog dictionary object.
EntryNames | Represents the "Names" entry of the catalog dictionary object.
EntryDests | Represents the "Dests" entry of the catalog dictionary object.
EntryViewerPreferences | Represents the "ViewerPreferences" entry of the catalog dictionary object.
EntryPageLayout | Represents the "PageLayout" entry of the catalog dictionary object.
EntryPageMode | Represents the "PageMode" entry of the catalog dictionary object.
EntryOutlines | Represents the "Outlines" entry of the catalog dictionary object.
EntryThreads | Represents the "Threads" entry of the catalog dictionary object.
EntryOpenAction | Represents the "OpenAction" entry of the catalog dictionary object.
EntryAA | Represents the "AA" entry of the catalog dictionary object.
EntryURI | Represents the "URI" entry of the catalog dictionary object.
EntryAcroForm | Represents the "AcroForm" entry of the catalog dictionary object.
EntryStructTreeRoot | Represents the "StructTreeRoot" entry of the catalog dictionary object.
EntryMarkInfo | Represents the "MarkInfo" entry of the catalog dictionary object.
EntryLang | Represents the "Lang" entry of the catalog dictionary object.
EntrySpiderInfo | Represents the "SpiderInfo" entry of the catalog dictionary object.
EntryOutputIntents | Represents the "OutputIntents" entry of the catalog dictionary object.
EntryPieceInfo | Represents the "PieceInfo" entry of the catalog dictionary object.
EntryOCProperties | Represents the "OCProperties" entry of the catalog dictionary object.
EntryPerms | Represents the "Perms" entry of the catalog dictionary object.
EntryLegal | Represents the "Legal" entry of the catalog dictionary object.
EntryRequirements | Represents the "Requirements" entry of the catalog dictionary object.
EntryCollection | Represents the "Collection" entry of the catalog dictionary object.
EntryNeedsRendering | Represents the "NeedsRendering" entry of the catalog dictionary object.
EntryDSS | Represents the "DSS" entry of the catalog dictionary object.
EntryAF | Represents the "AF" entry of the catalog dictionary object.
EntryDPartRoot | Represents the "DPartRoot" entry of the catalog dictionary object.
EntryFDF | Represents the "FDF" entry of the catalog dictionary object.
 | inherited properties...


ZZ Elements CatalogElement Constructor Function

CatalogElement Function

Create a new CatalogElement.

Syntax

[C#]
CatalogElement()
CatalogElement(Atom atom, IndirectObject host)
CatalogElement(IndirectObject obj)
CatalogElement(Element relation, CreationOptions options)

[Visual Basic]
CatalogElement()
CatalogElement(atom As Atom, host As IndirectObject)
CatalogElement(obj As IndirectObject)
CatalogElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CatalogElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 325 in the Annotations example project.

[C#]

FieldElement.EntryT = fieldName;
CatalogElement cat = new CatalogElement(Form.Doc.ObjectSoup[Form.Doc.Root]);
cat.EntryAcroForm.EntryFields.Add(FieldElement);

[VB]

FieldElement.EntryT = fieldName
Dim cat As New CatalogElement(Form.Doc.ObjectSoup(Form.Doc.Root))
cat.EntryAcroForm.EntryFields.Add(FieldElement)

This code snippet is taken from Annotations.cs line 987 in the Annotations example project.

[C#]

bool duplicatesFound = false;
CatalogElement cat = new CatalogElement(Doc.ObjectSoup[Doc.Root]);
FieldElement parent = field.FieldElement.EntryParent;
InteractiveFormElement acroForm = cat.EntryAcroForm;
ArrayElement<FieldElement> kids = parent != null ? parent.EntryKids : acroForm.EntryFields;
Dictionary<string, List<FieldElement>> items = new Dictionary<string, List<FieldElement>>();
foreach (var kid in kids) {
  if (kid == null)
    continue; // shouldn't really happen
  string name = kid.EntryT;
  if (!items.ContainsKey(name))
    items[name] = new List<FieldElement>();
  items[name].Add(kid);
}
foreach (KeyValuePair<string, List<FieldElement>> pair in items) {
  if (pair.Value.Count > 1) {
    duplicatesFound = true;
    // shift field down to be a child of a new field node
    FieldElement newField = new FieldElement(cat);
    newField.EntryKids = new ArrayElement<FieldElement>(acroForm);
    if (parent != null) {
      parent.EntryKids.Add(newField);
      newField.EntryParent = parent;
    }
    else {
      acroForm.EntryFields.Add(newField);
    }
    foreach (FieldElement twin in pair.Value) {
      if (!string.IsNullOrEmpty(twin.EntryFT)) {
        newField.EntryFT = twin.EntryFT;
        twin.EntryFT = null;
      }
      if (!string.IsNullOrEmpty(twin.EntryT)) {
        newField.EntryT = twin.EntryT;
        twin.EntryT = null;
      }
      if (!string.IsNullOrEmpty(twin.EntryTU)) {
        newField.EntryTU = twin.EntryTU;
        twin.EntryTU = null;
      }
      if (twin.EntryFf.HasValue) {
        newField.EntryFf = twin.EntryFf;
        twin.EntryFf = null;
      }
      if (twin.EntryV != null) {
        newField.EntryV = twin.EntryV;
        twin.EntryV = null;
      }
      if (twin.EntryDV != null) {
        newField.EntryDV = twin.EntryDV;
        twin.EntryDV = null;
      }
      kids.Remove(twin);
      newField.EntryKids.Add(twin);
      twin.EntryParent = newField;
    }
  }
}
if ((refreshForm) && (duplicatesFound))
  Doc.Form.Refresh();
return duplicatesFound;

[VB]

Dim duplicatesFound As Boolean = False
Dim cat As New CatalogElement(Doc.ObjectSoup(Doc.Root))
Dim parent As FieldElement = field.FieldElement.EntryParent
Dim acroForm As InteractiveFormElement = cat.EntryAcroForm
Dim kids As ArrayElement(Of FieldElement) = If(parent IsNot Nothing, parent.EntryKids, acroForm.EntryFields)
Dim items As New Dictionary(Of String, List(Of FieldElement))()
For Each kid In kids
  If kid Is Nothing Then
    Continue For ' shouldn't really happen
  End If
  Dim name As String = kid.EntryT
  If Not items.ContainsKey(name) Then
    items(name) = New List(Of FieldElement)()
  End If
  items(name).Add(kid)
Next kid
For Each pair As KeyValuePair(Of String, List(Of FieldElement)) In items
  If pair.Value.Count > 1 Then
    duplicatesFound = True
    ' shift field down to be a child of a new field node
    Dim newField As New FieldElement(cat)
    newField.EntryKids = New ArrayElement(Of FieldElement)(acroForm)
    If parent IsNot Nothing Then
      parent.EntryKids.Add(newField)
      newField.EntryParent = parent
    Else
      acroForm.EntryFields.Add(newField)
    End If
    For Each twin As FieldElement In pair.Value
      If Not String.IsNullOrEmpty(twin.EntryFT) Then
        newField.EntryFT = twin.EntryFT
        twin.EntryFT = Nothing
      End If
      If Not String.IsNullOrEmpty(twin.EntryT) Then
        newField.EntryT = twin.EntryT
        twin.EntryT = Nothing
      End If
      If Not String.IsNullOrEmpty(twin.EntryTU) Then
        newField.EntryTU = twin.EntryTU
        twin.EntryTU = Nothing
      End If
      If twin.EntryFf.HasValue Then
        newField.EntryFf = twin.EntryFf
        twin.EntryFf = Nothing
      End If
      If twin.EntryV IsNot Nothing Then
        newField.EntryV = twin.EntryV
        twin.EntryV = Nothing
      End If
      If twin.EntryDV IsNot Nothing Then
        newField.EntryDV = twin.EntryDV
        twin.EntryDV = Nothing
      End If
      kids.Remove(twin)
      newField.EntryKids.Add(twin)
      twin.EntryParent = newField
    Next twin
  End If
Next pair
If (refreshForm) AndAlso (duplicatesFound) Then
  Doc.Form.Refresh()
End If
Return duplicatesFound

This code snippet is taken from ValidationUtilities.cs line 83 in the ValidatePDF example project.

[C#]

ValidationLog validation = new ValidationLog();
validation.Coverage = coverage;
validation.Stack = new Stack<ValidationStackNode>();
CatalogElement cat = new CatalogElement(doc.ObjectSoup.Catalog);
cat.Validate(validation);
StreamObject trail = doc.ObjectSoup.Trailer;
bool isCrossRef = Atom.GetItem(trail.Atom, "W") != null;
CrossReferenceStreamElement crossRef = isCrossRef ? new CrossReferenceStreamElement(trail) : null;
FileTrailerElement fileTrailer = !isCrossRef ? new FileTrailerElement(trail) : null;
Element trailer = isCrossRef ? (Element)crossRef : (Element)fileTrailer;
trailer.Validate(validation);
if (doc.Encryption.Type != 0) {
  validation.Start(trailer);
  EncryptionElement encryption = crossRef != null ? crossRef.EntryEncrypt : fileTrailer.EntryEncrypt;
  validation.ReportEntryVersion("Encryption.V", encryption.GetEntryVersion("V"));
}

StringBuilder sb = validation.Log;
HashSet<int> done = validation.Done;
List<IndirectObject> missed = new List<IndirectObject>();
foreach (IndirectObject io in doc.ObjectSoup) {
  if ((io != null) && (io.ID != 0) && (!done.Contains(io.ID))) {
    Element e = ElementFactories.AutodetectFactory(new RefAtom(io), io, null);
    if ((e is ObjectStreamElement) || (e is CrossReferenceStreamElement) || (e is LinearizationParameterElement)) {
      e.Validate(validation);
      done = validation.Done;
    }
  }
}
if (reportOrphans) {
  foreach (IndirectObject io in doc.ObjectSoup) {
    if ((io != null) && (io.ID != 0) && (!done.Contains(io.ID)))
      missed.Add(io);
  }
  if (missed.Count > 0) {
    HashSet<int> refOnlyObjects = new HashSet<int>();
    Dictionary<int, HashSet<int>> references = new Dictionary<int, HashSet<int>>();
    foreach (IndirectObject io in doc.ObjectSoup) {
      if (io != null) {
        bool hasContent = false;
        FindAllReferences(io.ID, io.Atom, references, ref hasContent);
        if (!hasContent)
          refOnlyObjects.Add(io.ID);
      }
    }
    foreach (IndirectObject io in missed) {
      HashSet<int> set = null;
      references.TryGetValue(io.ID, out set);
      if (set == null)
        continue; // object not referenced by anything - ignore
      if (refOnlyObjects.Contains(io.ID))
        continue; // only reference atoms - simply a stop en route to other items
      sb.AppendLine("Missed ID: " + io.ID.ToString() + ": " + IndirectObjectDescription(io));
      foreach (var id in set)
        sb.AppendLine(" Referenced by ID: " + id.ToString() + ": " + IndirectObjectDescription(doc.ObjectSoup[id]));
    }
  }
}
string header = "PDF Version: " + GetVersion(validation.Version) + "\r\n";
if (validation.Version.HasFlag(PDFVersion.AdobeUndocumented))
  header += "PDF Uses Undocumented Extensions\r\n";
if (validation.Version.HasFlag(PDFVersion.PDF20Deprecated)) {
  header += "PDF Uses PDF 2.0 Deprecated Features\r\n";
  foreach (string feature in validation.Deprecated)
    header += " - " + feature + "\r\n";
}
header += "\r\n";
return header + sb.ToString();

[VB]

Dim validation As New ValidationLog()
validation.Coverage = coverage
validation.Stack = New Stack(Of ValidationStackNode)()
Dim cat As New CatalogElement(doc.ObjectSoup.Catalog)
cat.Validate(validation)
Dim trail As StreamObject = doc.ObjectSoup.Trailer
Dim isCrossRef As Boolean = Atom.GetItem(trail.Atom, "W") IsNot Nothing
Dim crossRef As CrossReferenceStreamElement = If(isCrossRef, New CrossReferenceStreamElement(trail), Nothing)
Dim fileTrailer As FileTrailerElement = If(Not isCrossRef, New FileTrailerElement(trail), Nothing)
Dim trailer As Element = If(isCrossRef, CType(crossRef, Element), CType(fileTrailer, Element))
trailer.Validate(validation)
If doc.Encryption.Type <> 0 Then
  validation.Start(trailer)
  Dim encryption As EncryptionElement = If(crossRef IsNot Nothing, crossRef.EntryEncrypt, fileTrailer.EntryEncrypt)
  validation.ReportEntryVersion("Encryption.V", encryption.GetEntryVersion("V"))
End If

Dim sb As StringBuilder = validation.Log
Dim done As HashSet(Of Integer) = validation.Done
Dim missed As New List(Of IndirectObject)()
For Each io As IndirectObject In doc.ObjectSoup
  If (io IsNot Nothing) AndAlso (io.ID <> 0) AndAlso (Not done.Contains(io.ID)) Then
    Dim e As Element = ElementFactories.AutodetectFactory(New RefAtom(io), io, Nothing)
    If (TypeOf e Is ObjectStreamElement) OrElse (TypeOf e Is CrossReferenceStreamElement) OrElse (TypeOf e Is LinearizationParameterElement) Then
      e.Validate(validation)
      done = validation.Done
    End If
  End If
Next io
If reportOrphans Then
  For Each io As IndirectObject In doc.ObjectSoup
    If (io IsNot Nothing) AndAlso (io.ID <> 0) AndAlso (Not done.Contains(io.ID)) Then
      missed.Add(io)
    End If
  Next io
  If missed.Count > 0 Then
    Dim refOnlyObjects As New HashSet(Of Integer)()
    Dim references As New Dictionary(Of Integer, HashSet(Of Integer))()
    For Each io As IndirectObject In doc.ObjectSoup
      If io IsNot Nothing Then
        Dim hasContent As Boolean = False
        FindAllReferences(io.ID, io.Atom, references, hasContent)
        If Not hasContent Then
          refOnlyObjects.Add(io.ID)
        End If
      End If
    Next io
    For Each io As IndirectObject In missed
      Dim set As HashSet(Of Integer) = Nothing
      references.TryGetValue(io.ID, set)
      If set Is Nothing Then
        Continue For ' object not referenced by anything - ignore
      End If
      If refOnlyObjects.Contains(io.ID) Then
        Continue For ' only reference atoms - simply a stop en route to other items
      End If
      sb.AppendLine("Missed ID: " & io.ID.ToString() & ": " & IndirectObjectDescription(io))
      For Each id In set
        sb.AppendLine(" Referenced by ID: " & id.ToString() & ": " & IndirectObjectDescription(doc.ObjectSoup(id)))
      Next id
    Next io
  End If
End If
Dim header As String = "PDF Version: " & GetVersion(validation.Version) & vbCrLf
If validation.Version.HasFlag(PDFVersion.AdobeUndocumented) Then
  header &= "PDF Uses Undocumented Extensions" & vbCrLf
End If
If validation.Version.HasFlag(PDFVersion.PDF20Deprecated) Then
  header &= "PDF Uses PDF 2.0 Deprecated Features" & vbCrLf
  For Each feature As String In validation.Deprecated
    header &= " - " & feature & vbCrLf
  Next feature
End If
header &= vbCrLf
Return header + sb.ToString()


ZZ Elements CatalogElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the catalog dictionary object.

Notes

Represents the "Type" entry of the catalog dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "Catalog".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 73.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 97.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryVersion Property

EntryVersion Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Version" entry of the catalog dictionary object.

Notes

Represents the "Version" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 73.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 98.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryExtensions Property

EntryExtensions Property

Type | Default Value | Read Only | Description
[C#] ExtensionsElement [Visual Basic] ExtensionsElement | null | No | Represents the "Extensions" entry of the catalog dictionary object.

Notes

Represents the "Extensions" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an ExtensionsElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 73.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 98.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryPages Property

EntryPages Property

Type | Default Value | Read Only | Description
[C#] PageTreeNodeElement [Visual Basic] PageTreeNodeElement | null | No | Represents the "Pages" entry of the catalog dictionary object.

Notes

Represents the "Pages" entry of the catalog dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a PageTreeNodeElement.

The PageTreeNodeElement represents the root node for all the pages in the document.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 73.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 98.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryPageLabels Property

EntryPageLabels Property

Type | Default Value | Read Only | Description
[C#] NumberTreeNodeElement<PageLabelElement> [Visual Basic] NumberTreeNodeElement<PageLabelElement> | null | No | Represents the "PageLabels" entry of the catalog dictionary object.

Notes

Represents the "PageLabels" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a NumberTreeNodeElement containing PageLabelElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 73.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 98.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryNames Property

EntryNames Property

Type | Default Value | Read Only | Description
[C#] NameDictionaryElement [Visual Basic] NameDictionaryElement | null | No | Represents the "Names" entry of the catalog dictionary object.

Notes

Represents the "Names" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains a NameDictionaryElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 73.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 98.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryDests Property

EntryDests Property

Type | Default Value | Read Only | Description
[C#] DictElement<Element> [Visual Basic] DictElement<Element> | null | No | Represents the "Dests" entry of the catalog dictionary object.

Notes

Represents the "Dests" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.1 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 73.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 98.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryViewerPreferences Property

EntryViewerPreferences Property

Type | Default Value | Read Only | Description
[C#] ViewerPreferencesElement [Visual Basic] ViewerPreferencesElement | null | No | Represents the "ViewerPreferences" entry of the catalog dictionary object.

Notes

Represents the "ViewerPreferences" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains a ViewerPreferencesElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 73.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 98.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryPageLayout Property

EntryPageLayout Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "PageLayout" entry of the catalog dictionary object.

Notes

Represents the "PageLayout" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "SinglePage" if no value has been provided.

This item may take one of the following valid values:.

  • SinglePage
  • OneColumn
  • TwoColumnLeft
  • TwoColumnRight
  • TwoPageLeft
  • TwoPageRight

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 73.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 99.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryPageMode Property

EntryPageMode Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "PageMode" entry of the catalog dictionary object.

Notes

Represents the "PageMode" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "UseNone" if no value has been provided.

This item may take one of the following valid values:.

  • UseNone
  • UseOutlines
  • UseThumbs
  • FullScreen
  • UseOC
  • UseAttachments

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 74.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 99.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryOutlines Property

EntryOutlines Property

Type | Default Value | Read Only | Description
[C#] OutlineElement [Visual Basic] OutlineElement | null | No | Represents the "Outlines" entry of the catalog dictionary object.

Notes

Represents the "Outlines" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an OutlineElement.

The document outline is the bookmark hierarchy visible in the Acrobat navigation panel.

This property holds the root of the document outline.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 74.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 99.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryThreads Property

EntryThreads Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<ThreadElement> [Visual Basic] ArrayElement<ThreadElement> | null | No | Represents the "Threads" entry of the catalog dictionary object.

Notes

Represents the "Threads" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.1 specification.

It contains an array which contains ThreadElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 74.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 99.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryOpenAction Property

EntryOpenAction Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "OpenAction" entry of the catalog dictionary object.

Notes

Represents the "OpenAction" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.1 specification.

This property may contain one of two different types:.

1) An ActionElement.

2) A DestinationElement.

When the document is opened the specified action or destination will be triggered.

This can be useful if you would like the document to open at a specific page or with a particular view.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 74.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 99.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryAA Property

EntryAA Property

Type | Default Value | Read Only | Description
[C#] DocumentCatalogAdditionalActionsElement [Visual Basic] DocumentCatalogAdditionalActionsElement | null | No | Represents the "AA" entry of the catalog dictionary object.

Notes

Represents the "AA" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a DocumentCatalogAdditionalActionsElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 74.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 99.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryURI Property

EntryURI Property

Type | Default Value | Read Only | Description
[C#] CatalogUriElement [Visual Basic] CatalogUriElement | null | No | Represents the "URI" entry of the catalog dictionary object.

Notes

Represents the "URI" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.1 specification.

It contains a CatalogUriElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 74.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 99.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryAcroForm Property

EntryAcroForm Property

Type | Default Value | Read Only | Description
[C#] InteractiveFormElement [Visual Basic] InteractiveFormElement | null | No | Represents the "AcroForm" entry of the catalog dictionary object.

Notes

Represents the "AcroForm" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains an InteractiveFormElement.

The InteractiveFormElement contains the root of any field information for the document.

Fields are represented as an abstract tree structure of FieldElements, spanning the entire document.

Each field has a name and also a full name (like a file path) which tells you how to get to that field from the top level of the tree.

Fields are abstract - they hold a name and value - but they do not explictly have any ability to display themselves.

So to make them visible, leaf FieldElements need to be linked to WidgetAnnotationElements placed on individual pages of the document.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 74.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 99.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryStructTreeRoot Property

EntryStructTreeRoot Property

Type | Default Value | Read Only | Description
[C#] StructureTreeRootElement [Visual Basic] StructureTreeRootElement | null | No | Represents the "StructTreeRoot" entry of the catalog dictionary object.

Notes

Represents the "StructTreeRoot" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a StructureTreeRootElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 74.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 100.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryMarkInfo Property

EntryMarkInfo Property

Type | Default Value | Read Only | Description
[C#] MarkInformationElement [Visual Basic] MarkInformationElement | null | No | Represents the "MarkInfo" entry of the catalog dictionary object.

Notes

Represents the "MarkInfo" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a MarkInformationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 74.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 100.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryLang Property

EntryLang Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Lang" entry of the catalog dictionary object.

Notes

Represents the "Lang" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 74.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 100.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntrySpiderInfo Property

EntrySpiderInfo Property

Type | Default Value | Read Only | Description
[C#] WebCaptureInformationElement [Visual Basic] WebCaptureInformationElement | null | No | Represents the "SpiderInfo" entry of the catalog dictionary object.

Notes

Represents the "SpiderInfo" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a WebCaptureInformationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 74.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 100.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryOutputIntents Property

EntryOutputIntents Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<OutputIntentElement> [Visual Basic] ArrayElement<OutputIntentElement> | null | No | Represents the "OutputIntents" entry of the catalog dictionary object.

Notes

Represents the "OutputIntents" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains an array which contains OutputIntentElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 75.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 100.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryPieceInfo Property

EntryPieceInfo Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "PieceInfo" entry of the catalog dictionary object.

Notes

Represents the "PieceInfo" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 75.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 100.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryOCProperties Property

EntryOCProperties Property

Type | Default Value | Read Only | Description
[C#] OptionalContentPropertiesElement [Visual Basic] OptionalContentPropertiesElement | null | No | Represents the "OCProperties" entry of the catalog dictionary object.

Notes

Represents the "OCProperties" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an OptionalContentPropertiesElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 75.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 100.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryPerms Property

EntryPerms Property

Type | Default Value | Read Only | Description
[C#] PermissionsElement [Visual Basic] PermissionsElement | null | No | Represents the "Perms" entry of the catalog dictionary object.

Notes

Represents the "Perms" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a PermissionsElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 75.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 100.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryLegal Property

EntryLegal Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Legal" entry of the catalog dictionary object.

Notes

Represents the "Legal" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 75.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 100.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryRequirements Property

EntryRequirements Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<RequirementElement> [Visual Basic] ArrayElement<RequirementElement> | null | No | Represents the "Requirements" entry of the catalog dictionary object.

Notes

Represents the "Requirements" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains an array which contains RequirementElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 75.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 100.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryCollection Property

EntryCollection Property

Type | Default Value | Read Only | Description
[C#] CollectionElement [Visual Basic] CollectionElement | null | No | Represents the "Collection" entry of the catalog dictionary object.

Notes

Represents the "Collection" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a CollectionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 75.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 100.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryNeedsRendering Property

EntryNeedsRendering Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "NeedsRendering" entry of the catalog dictionary object.

Notes

Represents the "NeedsRendering" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification. It was deprecated in PDF 2.0.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 75.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 101.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryDSS Property

EntryDSS Property

Type | Default Value | Read Only | Description
[C#] DocumentSecurityStoreElement [Visual Basic] DocumentSecurityStoreElement | null | No | Represents the "DSS" entry of the catalog dictionary object.

Notes

Represents the "DSS" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a DocumentSecurityStoreElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 73.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 101.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryAF Property

EntryAF Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FileSpecificationElement> [Visual Basic] ArrayElement<FileSpecificationElement> | null | No | Represents the "AF" entry of the catalog dictionary object.

Notes

Represents the "AF" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains FileSpecificationElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 73.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 101.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryDPartRoot Property

EntryDPartRoot Property

Type | Default Value | Read Only | Description
[C#] DocumentPartRootElement [Visual Basic] DocumentPartRootElement | null | No | Represents the "DPartRoot" entry of the catalog dictionary object.

Notes

Represents the "DPartRoot" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a DocumentPartRootElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 73.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 101.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements CatalogElement EntryFDF Property

EntryFDF Property

Type | Default Value | Read Only | Description
[C#] FDFElement [Visual Basic] FDFElement | null | No | Represents the "FDF" entry of the catalog dictionary object.

Notes

Represents the "FDF" entry of the catalog dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a FDFElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 28, page 73.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 29, page 97.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 242, page 458.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 245, page 555.


ZZ Elements PageTreeNodeElement

PageTreeNodeElement Class

This class represents the page tree node. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 29, page 76.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 30, page 102.

This class is always an indirect object because CatalogElement.EntryPages, PageObjectElement.EntryParent, PageTreeNodeElement.EntryKids and PageTreeNodeElement.EntryParent require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.PageTreeNodeElement

Method | Description
PageTreeNodeElement | Create a new PageTreeNodeElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the page tree node object.
EntryParent | Represents the "Parent" entry of the page tree node object.
EntryKids | Represents the "Kids" entry of the page tree node object.
EntryCount | Represents the "Count" entry of the page tree node object.
EntryResources | Represents the "Resources" entry of the page tree node object.
EntryMediaBox | Represents the "MediaBox" entry of the page tree node object.
EntryCropBox | Represents the "CropBox" entry of the page tree node object.
EntryRotate | Represents the "Rotate" entry of the page tree node object.
 | inherited properties...


ZZ Elements PageTreeNodeElement Constructor Function

PageTreeNodeElement Function

Create a new PageTreeNodeElement.

Syntax

[C#]
PageTreeNodeElement()
PageTreeNodeElement(Atom atom, IndirectObject host)
PageTreeNodeElement(IndirectObject obj)
PageTreeNodeElement(Element relation, CreationOptions options)

[Visual Basic]
PageTreeNodeElement()
PageTreeNodeElement(atom As Atom, host As IndirectObject)
PageTreeNodeElement(obj As IndirectObject)
PageTreeNodeElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new PageTreeNodeElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements PageTreeNodeElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the page tree node object.

Notes

Represents the "Type" entry of the page tree node object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "Pages".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 29, page 76.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 30, page 102.


ZZ Elements PageTreeNodeElement EntryParent Property

EntryParent Property

Type | Default Value | Read Only | Description
[C#] PageTreeNodeElement [Visual Basic] PageTreeNodeElement | null | No | Represents the "Parent" entry of the page tree node object.

Notes

Represents the "Parent" entry of the page tree node object.

It is defined as part of the PDF 1.0 specification.

It contains a PageTreeNodeElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 29, page 76.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 30, page 102.


ZZ Elements PageTreeNodeElement EntryKids Property

EntryKids Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "Kids" entry of the page tree node object.

Notes

Represents the "Kids" entry of the page tree node object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains PageTreeNodeElements or PageObjectElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 29, page 76.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 30, page 102.


ZZ Elements PageTreeNodeElement EntryCount Property

EntryCount Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Count" entry of the page tree node object.

Notes

Represents the "Count" entry of the page tree node object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 29, page 76.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 30, page 102.


ZZ Elements PageTreeNodeElement EntryResources Property

EntryResources Property

Type | Default Value | Read Only | Description
[C#] ResourceElement [Visual Basic] ResourceElement | null | No | Represents the "Resources" entry of the page tree node object.

Notes

Represents the "Resources" entry of the page tree node object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a ResourceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 29, page 76.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 30, page 102.


ZZ Elements PageTreeNodeElement EntryMediaBox Property

EntryMediaBox Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "MediaBox" entry of the page tree node object.

Notes

Represents the "MediaBox" entry of the page tree node object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 29, page 76.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 30, page 102.


ZZ Elements PageTreeNodeElement EntryCropBox Property

EntryCropBox Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "CropBox" entry of the page tree node object.

Notes

Represents the "CropBox" entry of the page tree node object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 29, page 76.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 30, page 102.


ZZ Elements PageTreeNodeElement EntryRotate Property

EntryRotate Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Rotate" entry of the page tree node object.

Notes

Represents the "Rotate" entry of the page tree node object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 29, page 76.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 30, page 102.


ZZ Elements PageObjectElement

PageObjectElement Class

This class represents the page object. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 77.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 103.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

This class is always an indirect object because AnnotationElement.EntryP, BeadElement.EntryP, DpartElement.EntryEnd, DpartElement.EntryStart, MarkedContentReferenceElement.EntryPg, ObjectReferenceElement.EntryPg, PageTreeNodeElement.EntryKids, SeparationElement.EntryPages, StructureElementElement.EntryPg and StructureTreeRootElement.EntryParentTree require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.PageObjectElement

Method | Description
PageObjectElement | Create a new PageObjectElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the page object object.
EntryParent | Represents the "Parent" entry of the page object object.
EntryLastModified | Represents the "LastModified" entry of the page object object.
EntryResources | Represents the "Resources" entry of the page object object.
EntryMediaBox | Represents the "MediaBox" entry of the page object object.
EntryCropBox | Represents the "CropBox" entry of the page object object.
EntryBleedBox | Represents the "BleedBox" entry of the page object object.
EntryTrimBox | Represents the "TrimBox" entry of the page object object.
EntryArtBox | Represents the "ArtBox" entry of the page object object.
EntryBoxColorInfo | Represents the "BoxColorInfo" entry of the page object object.
EntryContents | Represents the "Contents" entry of the page object object.
EntryRotate | Represents the "Rotate" entry of the page object object.
EntryGroup | Represents the "Group" entry of the page object object.
EntryThumb | Represents the "Thumb" entry of the page object object.
EntryB | Represents the "B" entry of the page object object.
EntryDur | Represents the "Dur" entry of the page object object.
EntryTrans | Represents the "Trans" entry of the page object object.
EntryAnnots | Represents the "Annots" entry of the page object object.
EntryAA | Represents the "AA" entry of the page object object.
EntryPieceInfo | Represents the "PieceInfo" entry of the page object object.
EntryStructParents | Represents the "StructParents" entry of the page object object.
EntryID | Represents the "ID" entry of the page object object.
EntryPZ | Represents the "PZ" entry of the page object object.
EntrySeparationInfo | Represents the "SeparationInfo" entry of the page object object.
EntryTabs | Represents the "Tabs" entry of the page object object.
EntryTemplateInstantiated | Represents the "TemplateInstantiated" entry of the page object object.
EntryPresSteps | Represents the "PresSteps" entry of the page object object.
EntryUserUnit | Represents the "UserUnit" entry of the page object object.
EntryVP | Represents the "VP" entry of the page object object.
EntryAF | Represents the "AF" entry of the page object object.
EntryOutputIntents | Represents the "OutputIntents" entry of the page object object.
EntryDPart | Represents the "DPart" entry of the page object object.
 | inherited properties...


ZZ Elements PageObjectElement Constructor Function

PageObjectElement Function

Create a new PageObjectElement.

Syntax

[C#]
PageObjectElement()
PageObjectElement(Atom atom, IndirectObject host)
PageObjectElement(IndirectObject obj)
PageObjectElement(Element relation, CreationOptions options)

[Visual Basic]
PageObjectElement()
PageObjectElement(atom As Atom, host As IndirectObject)
PageObjectElement(obj As IndirectObject)
PageObjectElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new PageObjectElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 191 in the Annotations example project.

[C#]

if (Form.Doc.Page == 0)
  throw new ArgumentException("No page available");
var page = new PageObjectElement(Form.Doc.ObjectSoup[Form.Doc.Page]);
AnnotationElement.EntryP = page;
if (page.EntryAnnots == null)
  page.EntryAnnots = new ArrayElement<AnnotationElement>(AnnotationElement);
page.EntryAnnots.Add(AnnotationElement);

[VB]

If Form.Doc.Page = 0 Then
  Throw New ArgumentException("No page available")
End If
Dim page = New PageObjectElement(Form.Doc.ObjectSoup(Form.Doc.Page))
AnnotationElement.EntryP = page
If page.EntryAnnots Is Nothing Then
  page.EntryAnnots = New ArrayElement(Of AnnotationElement)(AnnotationElement)
End If
page.EntryAnnots.Add(AnnotationElement)


ZZ Elements PageObjectElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the page object object.

Notes

Represents the "Type" entry of the page object object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "Page" or "Template".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 77.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 103.


ZZ Elements PageObjectElement EntryParent Property

EntryParent Property

Type | Default Value | Read Only | Description
[C#] PageTreeNodeElement [Visual Basic] PageTreeNodeElement | null | No | Represents the "Parent" entry of the page object object.

Notes

Represents the "Parent" entry of the page object object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a PageTreeNodeElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 77.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 103.


ZZ Elements PageObjectElement EntryLastModified Property

EntryLastModified Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "LastModified" entry of the page object object.

Notes

Represents the "LastModified" entry of the page object object.

It is defined as part of the PDF 1.3 specification.

It contains a string representing a PDF string object.

This is encoded as a date string. For details see the StringAtom.DateToString and StringAtom.StringToDate functions.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 77.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 103.


ZZ Elements PageObjectElement EntryResources Property

EntryResources Property

Type | Default Value | Read Only | Description
[C#] ResourceElement [Visual Basic] ResourceElement | null | No | Represents the "Resources" entry of the page object object.

Notes

Represents the "Resources" entry of the page object object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a ResourceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 77.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 103.


ZZ Elements PageObjectElement EntryMediaBox Property

EntryMediaBox Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "MediaBox" entry of the page object object.

Notes

Represents the "MediaBox" entry of the page object object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 77.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 103.


ZZ Elements PageObjectElement EntryCropBox Property

EntryCropBox Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "CropBox" entry of the page object object.

Notes

Represents the "CropBox" entry of the page object object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 77.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 103.


ZZ Elements PageObjectElement EntryBleedBox Property

EntryBleedBox Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "BleedBox" entry of the page object object.

Notes

Represents the "BleedBox" entry of the page object object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 77.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 104.


ZZ Elements PageObjectElement EntryTrimBox Property

EntryTrimBox Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "TrimBox" entry of the page object object.

Notes

Represents the "TrimBox" entry of the page object object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 77.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 104.


ZZ Elements PageObjectElement EntryArtBox Property

EntryArtBox Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "ArtBox" entry of the page object object.

Notes

Represents the "ArtBox" entry of the page object object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 77.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 104.


ZZ Elements PageObjectElement EntryBoxColorInfo Property

EntryBoxColorInfo Property

Type | Default Value | Read Only | Description
[C#] BoxColorInformationElement [Visual Basic] BoxColorInformationElement | null | No | Represents the "BoxColorInfo" entry of the page object object.

Notes

Represents the "BoxColorInfo" entry of the page object object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a BoxColorInformationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 77.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 104.


ZZ Elements PageObjectElement EntryContents Property

EntryContents Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<StreamElement> [Visual Basic] ArrayElement<StreamElement> | null | No | Represents the "Contents" entry of the page object object.

Notes

Represents the "Contents" entry of the page object object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains StreamElements.

If you read the specification you will see that an array of one StreamElement may be represented as a single StreamElement rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 78.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 104.


ZZ Elements PageObjectElement EntryRotate Property

EntryRotate Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Rotate" entry of the page object object.

Notes

Represents the "Rotate" entry of the page object object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 78.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 104.


ZZ Elements PageObjectElement EntryGroup Property

EntryGroup Property

Type | Default Value | Read Only | Description
[C#] GroupAttributesElement [Visual Basic] GroupAttributesElement | null | No | Represents the "Group" entry of the page object object.

Notes

Represents the "Group" entry of the page object object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a GroupAttributesElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 78.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 104.


ZZ Elements PageObjectElement EntryThumb Property

EntryThumb Property

Type | Default Value | Read Only | Description
[C#] ImageXObjectElement [Visual Basic] ImageXObjectElement | null | No | Represents the "Thumb" entry of the page object object.

Notes

Represents the "Thumb" entry of the page object object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an ImageXObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 78.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 104.


ZZ Elements PageObjectElement EntryB Property

EntryB Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<BeadElement> [Visual Basic] ArrayElement<BeadElement> | null | No | Represents the "B" entry of the page object object.

Notes

Represents the "B" entry of the page object object.

It is an optional entry defined as part of the PDF 1.1 specification.

It contains an array which contains BeadElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 78.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 105.


ZZ Elements PageObjectElement EntryDur Property

EntryDur Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Dur" entry of the page object object.

Notes

Represents the "Dur" entry of the page object object.

It is an optional entry defined as part of the PDF 1.1 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 78.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 105.


ZZ Elements PageObjectElement EntryTrans Property

EntryTrans Property

Type | Default Value | Read Only | Description
[C#] TransitionElement [Visual Basic] TransitionElement | null | No | Represents the "Trans" entry of the page object object.

Notes

Represents the "Trans" entry of the page object object.

It is an optional entry defined as part of the PDF 1.1 specification.

It contains a TransitionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 78.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 105.


ZZ Elements PageObjectElement EntryAnnots Property

EntryAnnots Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<AnnotationElement> [Visual Basic] ArrayElement<AnnotationElement> | null | No | Represents the "Annots" entry of the page object object.

Notes

Represents the "Annots" entry of the page object object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains AnnotationElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 78.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 105.


ZZ Elements PageObjectElement EntryAA Property

EntryAA Property

Type | Default Value | Read Only | Description
[C#] PageObjectAdditionalActionsElement [Visual Basic] PageObjectAdditionalActionsElement | null | No | Represents the "AA" entry of the page object object.

Notes

Represents the "AA" entry of the page object object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains a PageObjectAdditionalActionsElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 78.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 105.


ZZ Elements PageObjectElement EntryPieceInfo Property

EntryPieceInfo Property

Type | Default Value | Read Only | Description
[C#] DictElement<PagePieceDataElement> [Visual Basic] DictElement<PagePieceDataElement> | null | No | Represents the "PieceInfo" entry of the page object object.

Notes

Represents the "PieceInfo" entry of the page object object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 78.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 105.


ZZ Elements PageObjectElement EntryStructParents Property

EntryStructParents Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "StructParents" entry of the page object object.

Notes

Represents the "StructParents" entry of the page object object.

It is defined as part of the PDF 1.3 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 79.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 105.


ZZ Elements PageObjectElement EntryID Property

EntryID Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ID" entry of the page object object.

Notes

Represents the "ID" entry of the page object object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 79.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 105.


ZZ Elements PageObjectElement EntryPZ Property

EntryPZ Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "PZ" entry of the page object object.

Notes

Represents the "PZ" entry of the page object object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 79.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 105.


ZZ Elements PageObjectElement EntrySeparationInfo Property

EntrySeparationInfo Property

Type | Default Value | Read Only | Description
[C#] SeparationElement [Visual Basic] SeparationElement | null | No | Represents the "SeparationInfo" entry of the page object object.

Notes

Represents the "SeparationInfo" entry of the page object object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a SeparationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 79.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 105.


ZZ Elements PageObjectElement EntryTabs Property

EntryTabs Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Tabs" entry of the page object object.

Notes

Represents the "Tabs" entry of the page object object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • R
  • C
  • S
  • A
  • W

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 79.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 106.


ZZ Elements PageObjectElement EntryTemplateInstantiated Property

EntryTemplateInstantiated Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "TemplateInstantiated" entry of the page object object.

Notes

Represents the "TemplateInstantiated" entry of the page object object.

It is defined as part of the PDF 1.5 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 79.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 106.


ZZ Elements PageObjectElement EntryPresSteps Property

EntryPresSteps Property

Type | Default Value | Read Only | Description
[C#] NavigationNodeElement [Visual Basic] NavigationNodeElement | null | No | Represents the "PresSteps" entry of the page object object.

Notes

Represents the "PresSteps" entry of the page object object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a NavigationNodeElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 79.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 106.


ZZ Elements PageObjectElement EntryUserUnit Property

EntryUserUnit Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "UserUnit" entry of the page object object.

Notes

Represents the "UserUnit" entry of the page object object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a double representing a PDF numeric object.

It should have a positive value.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 79.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 106.


ZZ Elements PageObjectElement EntryVP Property

EntryVP Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<ViewportElement> [Visual Basic] ArrayElement<ViewportElement> | null | No | Represents the "VP" entry of the page object object.

Notes

Represents the "VP" entry of the page object object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains an array which contains ViewportElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 79.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 106.


ZZ Elements PageObjectElement EntryAF Property

EntryAF Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FileSpecificationElement> [Visual Basic] ArrayElement<FileSpecificationElement> | null | No | Represents the "AF" entry of the page object object.

Notes

Represents the "AF" entry of the page object object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains FileSpecificationElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 77.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 106.


ZZ Elements PageObjectElement EntryOutputIntents Property

EntryOutputIntents Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<OutputIntentElement> [Visual Basic] ArrayElement<OutputIntentElement> | null | No | Represents the "OutputIntents" entry of the page object object.

Notes

Represents the "OutputIntents" entry of the page object object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains OutputIntentElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 77.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 106.


ZZ Elements PageObjectElement EntryDPart Property

EntryDPart Property

Type | Default Value | Read Only | Description
[C#] DocumentPartElement [Visual Basic] DocumentPartElement | null | No | Represents the "DPart" entry of the page object object.

Notes

Represents the "DPart" entry of the page object object.

It is defined as part of the PDF 2.0 specification.

It contains a DocumentPartElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 30, page 77.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.27, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 31, page 106.


ZZ Elements NameDictionaryElement

NameDictionaryElement Class

This class represents the name dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 31, page 80.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 32, page 108.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.28, page 23.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.NameDictionaryElement

Method | Description
NameDictionaryElement | Create a new NameDictionaryElement.
 | inherited methods...

Property | Description
EntryDests | Represents the "Dests" entry of the name dictionary object.
EntryAP | Represents the "AP" entry of the name dictionary object.
EntryJavaScript | Represents the "JavaScript" entry of the name dictionary object.
EntryPages | Represents the "Pages" entry of the name dictionary object.
EntryTemplates | Represents the "Templates" entry of the name dictionary object.
EntryIDS | Represents the "IDS" entry of the name dictionary object.
EntryURLS | Represents the "URLS" entry of the name dictionary object.
EntryEmbeddedFiles | Represents the "EmbeddedFiles" entry of the name dictionary object.
EntryAlternatePresentations | Represents the "AlternatePresentations" entry of the name dictionary object.
EntryRenditions | Represents the "Renditions" entry of the name dictionary object.
EntryXFAResources | Represents the "XFAResources" entry of the name dictionary object.
 | inherited properties...


ZZ Elements NameDictionaryElement Constructor Function

NameDictionaryElement Function

Create a new NameDictionaryElement.

Syntax

[C#]
NameDictionaryElement()
NameDictionaryElement(Atom atom, IndirectObject host)
NameDictionaryElement(IndirectObject obj)
NameDictionaryElement(Element relation, CreationOptions options)

[Visual Basic]
NameDictionaryElement()
NameDictionaryElement(atom As Atom, host As IndirectObject)
NameDictionaryElement(obj As IndirectObject)
NameDictionaryElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new NameDictionaryElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from NameTree.cs line 90 in the Annotations example project.

[C#]

CatalogElement cat = new CatalogElement(doc.ObjectSoup.Catalog);
if (cat.EntryNames == null)
  cat.EntryNames = new NameDictionaryElement(cat);
if (cat.EntryNames.EntryEmbeddedFiles == null) {
  cat.EntryNames.EntryEmbeddedFiles = new NameTreeNodeElement<FileSpecificationElement>(cat);
  cat.EntryNames.EntryEmbeddedFiles.EntryNames = new ArrayElement<Element>(cat);
}
Root = cat.EntryNames.EntryEmbeddedFiles;

[VB]

Dim cat As New CatalogElement(doc.ObjectSoup.Catalog)
If cat.EntryNames Is Nothing Then
  cat.EntryNames = New NameDictionaryElement(cat)
End If
If cat.EntryNames.EntryEmbeddedFiles Is Nothing Then
  cat.EntryNames.EntryEmbeddedFiles = New NameTreeNodeElement(Of FileSpecificationElement)(cat)
  cat.EntryNames.EntryEmbeddedFiles.EntryNames = New ArrayElement(Of Element)(cat)
End If
Root = cat.EntryNames.EntryEmbeddedFiles


ZZ Elements NameDictionaryElement EntryDests Property

EntryDests Property

Type | Default Value | Read Only | Description
[C#] NameTreeNodeElement<Element> [Visual Basic] NameTreeNodeElement<Element> | null | No | Represents the "Dests" entry of the name dictionary object.

Notes

Represents the "Dests" entry of the name dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains a NameTreeNodeElement containing Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 31, page 80.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.28, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 32, page 108.


ZZ Elements NameDictionaryElement EntryAP Property

EntryAP Property

Type | Default Value | Read Only | Description
[C#] NameTreeNodeElement<FormXObjectElement> [Visual Basic] NameTreeNodeElement<FormXObjectElement> | null | No | Represents the "AP" entry of the name dictionary object.

Notes

Represents the "AP" entry of the name dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a NameTreeNodeElement containing FormXObjectElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 31, page 80.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.28, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 32, page 108.


ZZ Elements NameDictionaryElement EntryJavaScript Property

EntryJavaScript Property

Type | Default Value | Read Only | Description
[C#] NameTreeNodeElement<JavaScriptActionElement> [Visual Basic] NameTreeNodeElement<JavaScriptActionElement> | null | No | Represents the "JavaScript" entry of the name dictionary object.

Notes

Represents the "JavaScript" entry of the name dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a NameTreeNodeElement containing JavaScriptActionElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 31, page 81.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.28, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 32, page 108.


ZZ Elements NameDictionaryElement EntryPages Property

EntryPages Property

Type | Default Value | Read Only | Description
[C#] NameTreeNodeElement<PageObjectElement> [Visual Basic] NameTreeNodeElement<PageObjectElement> | null | No | Represents the "Pages" entry of the name dictionary object.

Notes

Represents the "Pages" entry of the name dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a NameTreeNodeElement containing PageObjectElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 31, page 81.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.28, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 32, page 108.


ZZ Elements NameDictionaryElement EntryTemplates Property

EntryTemplates Property

Type | Default Value | Read Only | Description
[C#] NameTreeNodeElement<PageObjectElement> [Visual Basic] NameTreeNodeElement<PageObjectElement> | null | No | Represents the "Templates" entry of the name dictionary object.

Notes

Represents the "Templates" entry of the name dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a NameTreeNodeElement containing PageObjectElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 31, page 81.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.28, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 32, page 108.


ZZ Elements NameDictionaryElement EntryIDS Property

EntryIDS Property

Type | Default Value | Read Only | Description
[C#] NameTreeNodeElement<WebCaptureContentSetElement> [Visual Basic] NameTreeNodeElement<WebCaptureContentSetElement> | null | No | Represents the "IDS" entry of the name dictionary object.

Notes

Represents the "IDS" entry of the name dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a NameTreeNodeElement containing WebCaptureContentSetElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 31, page 81.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.28, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 32, page 108.


ZZ Elements NameDictionaryElement EntryURLS Property

EntryURLS Property

Type | Default Value | Read Only | Description
[C#] NameTreeNodeElement<WebCaptureContentSetElement> [Visual Basic] NameTreeNodeElement<WebCaptureContentSetElement> | null | No | Represents the "URLS" entry of the name dictionary object.

Notes

Represents the "URLS" entry of the name dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a NameTreeNodeElement containing WebCaptureContentSetElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 31, page 81.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.28, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 32, page 108.


ZZ Elements NameDictionaryElement EntryEmbeddedFiles Property

EntryEmbeddedFiles Property

Type | Default Value | Read Only | Description
[C#] NameTreeNodeElement<FileSpecificationElement> [Visual Basic] NameTreeNodeElement<FileSpecificationElement> | null | No | Represents the "EmbeddedFiles" entry of the name dictionary object.

Notes

Represents the "EmbeddedFiles" entry of the name dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a NameTreeNodeElement containing FileSpecificationElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 31, page 81.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.28, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 32, page 109.


ZZ Elements NameDictionaryElement EntryAlternatePresentations Property

EntryAlternatePresentations Property

Type | Default Value | Read Only | Description
[C#] NameTreeNodeElement<SlideshowElement> [Visual Basic] NameTreeNodeElement<SlideshowElement> | null | No | Represents the "AlternatePresentations" entry of the name dictionary object.

Notes

Represents the "AlternatePresentations" entry of the name dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification. It was deprecated in PDF 2.0.

It contains a NameTreeNodeElement containing SlideshowElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 31, page 81.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.28, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 32, page 109.


ZZ Elements NameDictionaryElement EntryRenditions Property

EntryRenditions Property

Type | Default Value | Read Only | Description
[C#] NameTreeNodeElement<RenditionElement> [Visual Basic] NameTreeNodeElement<RenditionElement> | null | No | Represents the "Renditions" entry of the name dictionary object.

Notes

Represents the "Renditions" entry of the name dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a NameTreeNodeElement containing RenditionElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 31, page 81.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.28, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 32, page 109.


ZZ Elements NameDictionaryElement EntryXFAResources Property

EntryXFAResources Property

Type | Default Value | Read Only | Description
[C#] NameTreeNodeElement<StreamElement> [Visual Basic] NameTreeNodeElement<StreamElement> | null | No | Represents the "XFAResources" entry of the name dictionary object.

Notes

Represents the "XFAResources" entry of the name dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a NameTreeNodeElement containing StreamElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 31, page 80.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.28, page 23.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 32, page 108.


ZZ Elements ResourceElement

ResourceElement Class

This class represents the resource dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 33, page 83.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 34, page 112.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ResourceElement

Method | Description
ResourceElement | Create a new ResourceElement.
 | inherited methods...

Property | Description
EntryExtGState | Represents the "ExtGState" entry of the resource dictionary object.
EntryColorSpace | Represents the "ColorSpace" entry of the resource dictionary object.
EntryPattern | Represents the "Pattern" entry of the resource dictionary object.
EntryShading | Represents the "Shading" entry of the resource dictionary object.
EntryXObject | Represents the "XObject" entry of the resource dictionary object.
EntryFont | Represents the "Font" entry of the resource dictionary object.
EntryProcSet | Represents the "ProcSet" entry of the resource dictionary object.
EntryProperties | Represents the "Properties" entry of the resource dictionary object.
 | inherited properties...


ZZ Elements ResourceElement Constructor Function

ResourceElement Function

Create a new ResourceElement.

Syntax

[C#]
ResourceElement()
ResourceElement(Atom atom, IndirectObject host)
ResourceElement(IndirectObject obj)
ResourceElement(Element relation, CreationOptions options)

[Visual Basic]
ResourceElement()
ResourceElement(atom As Atom, host As IndirectObject)
ResourceElement(obj As IndirectObject)
ResourceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ResourceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 373 in the Annotations example project.

[C#]

Doc = inDoc;
CatalogElement cat = new CatalogElement(Doc.ObjectSoup.Catalog);
if (cat.EntryAcroForm == null) {
  cat.EntryAcroForm = new InteractiveFormElement(cat, CreationOptions.Indirect);
  cat.EntryAcroForm.EntryFields = new ArrayElement<FieldElement>(cat);
}
else { // convert indirect reference to direct one
  if (cat.EntryAcroForm.EntryFields.Ref != null)
    cat.EntryAcroForm.EntryFields = cat.EntryAcroForm.EntryFields;
}
// add font for text fields
IndirectObject times = Doc.ObjectSoup[Doc.AddFont("Times-Roman")];
if (cat.EntryAcroForm.EntryDR == null)
  cat.EntryAcroForm.EntryDR = new ResourceElement(cat);
if (cat.EntryAcroForm.EntryDR.EntryFont == null)
  cat.EntryAcroForm.EntryDR.EntryFont = new DictElement<FontElement>(cat);
cat.EntryAcroForm.EntryDR.EntryFont["TimesRoman"] = new FontElement(times);
FormElement = cat.EntryAcroForm;

[VB]

Doc = inDoc
Dim cat As New CatalogElement(Doc.ObjectSoup.Catalog)
If cat.EntryAcroForm Is Nothing Then
  cat.EntryAcroForm = New InteractiveFormElement(cat, CreationOptions.Indirect)
  cat.EntryAcroForm.EntryFields = New ArrayElement(Of FieldElement)(cat)
Else ' convert indirect reference to direct one
  If cat.EntryAcroForm.EntryFields.Ref IsNot Nothing Then
    cat.EntryAcroForm.EntryFields = cat.EntryAcroForm.EntryFields
  End If
End If
' add font for text fields
Dim times As IndirectObject = Doc.ObjectSoup(Doc.AddFont("Times-Roman"))
If cat.EntryAcroForm.EntryDR Is Nothing Then
  cat.EntryAcroForm.EntryDR = New ResourceElement(cat)
End If
If cat.EntryAcroForm.EntryDR.EntryFont Is Nothing Then
  cat.EntryAcroForm.EntryDR.EntryFont = New DictElement(Of FontElement)(cat)
End If
cat.EntryAcroForm.EntryDR.EntryFont("TimesRoman") = New FontElement(times)
FormElement = cat.EntryAcroForm


ZZ Elements ResourceElement EntryExtGState Property

EntryExtGState Property

Type | Default Value | Read Only | Description
[C#] DictElement<GraphicsStateParameterElement> [Visual Basic] DictElement<GraphicsStateParameterElement> | null | No | Represents the "ExtGState" entry of the resource dictionary object.

Notes

Represents the "ExtGState" entry of the resource dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 33, page 83.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 34, page 112.


ZZ Elements ResourceElement EntryColorSpace Property

EntryColorSpace Property

Type | Default Value | Read Only | Description
[C#] DictElement<ColorSpaceElement> [Visual Basic] DictElement<ColorSpaceElement> | null | No | Represents the "ColorSpace" entry of the resource dictionary object.

Notes

Represents the "ColorSpace" entry of the resource dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 33, page 83.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 34, page 112.


ZZ Elements ResourceElement EntryPattern Property

EntryPattern Property

Type | Default Value | Read Only | Description
[C#] DictElement<PatternElement> [Visual Basic] DictElement<PatternElement> | null | No | Represents the "Pattern" entry of the resource dictionary object.

Notes

Represents the "Pattern" entry of the resource dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 33, page 83.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 34, page 112.


ZZ Elements ResourceElement EntryShading Property

EntryShading Property

Type | Default Value | Read Only | Description
[C#] DictElement<ShadingElement> [Visual Basic] DictElement<ShadingElement> | null | No | Represents the "Shading" entry of the resource dictionary object.

Notes

Represents the "Shading" entry of the resource dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 33, page 83.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 34, page 112.


ZZ Elements ResourceElement EntryXObject Property

EntryXObject Property

Type | Default Value | Read Only | Description
[C#] DictElement<XObjectElement> [Visual Basic] DictElement<XObjectElement> | null | No | Represents the "XObject" entry of the resource dictionary object.

Notes

Represents the "XObject" entry of the resource dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 33, page 83.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 34, page 112.


ZZ Elements ResourceElement EntryFont Property

EntryFont Property

Type | Default Value | Read Only | Description
[C#] DictElement<FontElement> [Visual Basic] DictElement<FontElement> | null | No | Represents the "Font" entry of the resource dictionary object.

Notes

Represents the "Font" entry of the resource dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 33, page 83.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 34, page 112.


ZZ Elements ResourceElement EntryProcSet Property

EntryProcSet Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "ProcSet" entry of the resource dictionary object.

Notes

Represents the "ProcSet" entry of the resource dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

It contains an array which contains strings, representing PDF name objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 33, page 83.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 34, page 112.


ZZ Elements ResourceElement EntryProperties Property

EntryProperties Property

Type | Default Value | Read Only | Description
[C#] DictElement<Element> [Visual Basic] DictElement<Element> | null | No | Represents the "Properties" entry of the resource dictionary object.

Notes

Represents the "Properties" entry of the resource dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 33, page 84.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 34, page 112.


ZZ Elements NameTreeNodeElement<T>

NameTreeNodeElement<T> Class

This class represents a name tree node.

A name tree is a way of representing a mapping from strings to other Elements.

The standard PDF dictionary object does something similar, but it works natively in terms of shorter, non-Unicode strings and the PDF specification implies that it might not have been well optimized for large numbers of items.

As such the PDF specification uses this type of tree structure, in areas where there may be large numbers of keys and values.

This class is always an indirect object because CollectionElement.EntryResources, EntryKids, NavigatorElement.EntryResources and NavigatorElement.EntryStrings require it to be so.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 36, page 89.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.TreeNodeElement
         WebSupergoo.ABCpdf12.Elements.NameTreeNodeElement<T>

Method | Description
NameTreeNodeElement<T> | Create a new NameTreeNodeElement.
 | inherited methods...

Property | Description
EntryKids | This property represents the "Kids" entry of the name tree node dictionary object.
EntryNames | This property represents the "Names" entry of the name tree node dictionary object.
EntryLimits | This property represents the "Limits" entry of the name tree node dictionary object.
 | inherited properties...


ZZ Elements NameTreeNodeElement<T> Constructor Function

NameTreeNodeElement<T> Function

Create a new NameTreeNodeElement.

Syntax

[C#]
NameTreeNodeElement<T>()
NameTreeNodeElement<T>(Atom atom, IndirectObject host)
NameTreeNodeElement<T>(IndirectObject obj)
NameTreeNodeElement<T>(Element relation, CreationOptions options)

[Visual Basic]
NameTreeNodeElement<T>()
NameTreeNodeElement<T>(atom As Atom, host As IndirectObject)
NameTreeNodeElement<T>(obj As IndirectObject)
NameTreeNodeElement<T>(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new NameTreeNodeElement .

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1803 in the Annotations example project.

[C#]

if (mediaType != "Flash" && mediaType != "Video" && mediaType != "Sound" && mediaType != "3D")
  throw new ArgumentException("Invalid media type.", "mediaType");

RichMediaAnnotationElement annot = new RichMediaAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "RichMedia";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);

string fileName;
FullFileSpecificationElement fileSpec = new FullFileSpecificationElement(annot);
fileSpec.EntryType = "Filespec";
if (filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase)) {
  fileSpec.EntryFS = "URL";
  fileName = FixUrl(filePathOrUrl);
}
else {
  FileInfo fileInfo = new FileInfo(filePathOrUrl);
  fileSpec.EntryEF = new EmbeddedFileSetElement(annot);
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo);
  fileName = EncodeName(fileInfo.Name);
}
fileSpec.EntryF = fileName;
fileSpec.EntryUF = fileName;

annot.Object.AdbeExtLevel = new int[] { 7, 3 };
RichMediaContentElement content = new RichMediaContentElement(annot, CreationOptions.Indirect);
content.EntryType = "RichMediaContent";
content.EntryAssets = new NameTreeNodeElement<FileSpecificationElement>(annot, CreationOptions.Indirect);
content.EntryAssets.EntryNames = new ArrayElement<Element>(annot);
content.EntryAssets.EntryNames.Add(new Element(new StringAtom(fileName), annot.Host));
content.EntryAssets.EntryNames.Add(fileSpec);

RichMediaConfigElement configuration = new RichMediaConfigElement(annot, CreationOptions.Indirect);
configuration.EntryType = "RichMediaConfiguration";
configuration.EntrySubtype = mediaType;
RichMediaInstanceElement instance = new RichMediaInstanceElement(annot, CreationOptions.Indirect);
instance.EntryType = "RichMediaInstance";
instance.EntrySubtype = mediaType;
instance.EntryParams = new RichMediaParamsElement(annot);
instance.EntryParams.EntryType = "RichMediaParams";
instance.EntryParams.EntryBinding = "Foreground";
instance.EntryAsset = fileSpec;
configuration.EntryInstances = new ArrayElement<RichMediaInstanceElement>(annot);
configuration.EntryInstances.Add(instance);

content.EntryConfigurations = new ArrayElement<RichMediaConfigElement>(annot);
content.EntryConfigurations.Add(configuration);
annot.EntryRichMediaContent = content;

RichMediaSettingsElement settings = new RichMediaSettingsElement(annot, CreationOptions.Indirect);
settings.EntryType = "RichMediaSettings";
settings.EntryActivation = new RichMediaActivationElement(annot);
settings.EntryActivation.EntryType = "RichMediaActivation";
settings.EntryActivation.EntryConfiguration = configuration;
annot.EntryRichMediaSettings = settings;
AnnotationElement = annot;

[VB]

If mediaType <> "Flash" AndAlso mediaType <> "Video" AndAlso mediaType <> "Sound" AndAlso mediaType <> "3D" Then
  Throw New ArgumentException("Invalid media type.", "mediaType")
End If

Dim annot As New RichMediaAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "RichMedia"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)

Dim fileName As String
Dim fileSpec As New FullFileSpecificationElement(annot)
fileSpec.EntryType = "Filespec"
If filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase) Then
  fileSpec.EntryFS = "URL"
  fileName = FixUrl(filePathOrUrl)
Else
  Dim fileInfo As New FileInfo(filePathOrUrl)
  fileSpec.EntryEF = New EmbeddedFileSetElement(annot)
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo)
  fileName = EncodeName(fileInfo.Name)
End If
fileSpec.EntryF = fileName
fileSpec.EntryUF = fileName

annot.Object.AdbeExtLevel = New Integer() { 7, 3 }
Dim content As New RichMediaContentElement(annot, CreationOptions.Indirect)
content.EntryType = "RichMediaContent"
content.EntryAssets = New NameTreeNodeElement(Of FileSpecificationElement)(annot, CreationOptions.Indirect)
content.EntryAssets.EntryNames = New ArrayElement(Of Element)(annot)
content.EntryAssets.EntryNames.Add(New Element(New StringAtom(fileName), annot.Host))
content.EntryAssets.EntryNames.Add(fileSpec)

Dim configuration As New RichMediaConfigElement(annot, CreationOptions.Indirect)
configuration.EntryType = "RichMediaConfiguration"
configuration.EntrySubtype = mediaType
Dim instance As New RichMediaInstanceElement(annot, CreationOptions.Indirect)
instance.EntryType = "RichMediaInstance"
instance.EntrySubtype = mediaType
instance.EntryParams = New RichMediaParamsElement(annot)
instance.EntryParams.EntryType = "RichMediaParams"
instance.EntryParams.EntryBinding = "Foreground"
instance.EntryAsset = fileSpec
configuration.EntryInstances = New ArrayElement(Of RichMediaInstanceElement)(annot)
configuration.EntryInstances.Add(instance)

content.EntryConfigurations = New ArrayElement(Of RichMediaConfigElement)(annot)
content.EntryConfigurations.Add(configuration)
annot.EntryRichMediaContent = content

Dim settings As New RichMediaSettingsElement(annot, CreationOptions.Indirect)
settings.EntryType = "RichMediaSettings"
settings.EntryActivation = New RichMediaActivationElement(annot)
settings.EntryActivation.EntryType = "RichMediaActivation"
settings.EntryActivation.EntryConfiguration = configuration
annot.EntryRichMediaSettings = settings
AnnotationElement = annot


ZZ Elements NameTreeNodeElement<T> EntryKids Property

EntryKids Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<NameTreeNodeElement<T>> [Visual Basic] ArrayElement<NameTreeNodeElement<T>> | null | No | This property represents the "Kids" entry of the name tree node dictionary object.

Notes

This property represents the "Kids" entry of the name tree node dictionary object.

It is defined as part of the PDF 1.0 specification.

An Array containing child NameTreeNodeElements which may be intermediate or leaf nodes.

This entry is always null in leaf nodes. In intermediate nodes it must always be non-null.

In the root node either this entry or the EntryNames entry should be non-null. But not both.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 36, page 89.


ZZ Elements NameTreeNodeElement<T> EntryNames Property

EntryNames Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | This property represents the "Names" entry of the name tree node dictionary object.

Notes

This property represents the "Names" entry of the name tree node dictionary object.

It is defined as part of the PDF 1.0 specification.

An Array containing alternate keys and values. For this reason the number of items in they array is always a multiple of two.

So to find the 10th key and value you would use a zero based index of 20 and 21 respectively.

The pairs in this array should be sorted in ascending order by key value.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 36, page 89.


ZZ Elements NameTreeNodeElement<T> EntryLimits Property

EntryLimits Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | This property represents the "Limits" entry of the name tree node dictionary object.

Notes

This property represents the "Limits" entry of the name tree node dictionary object.

It is defined as part of the PDF 1.0 specification.

It is an Array containing two strings representing the lower and upper bounds of the tree.

The first string represents the lowest key in the EntryNames entry of this or any child nodes.

The second string represents the highest key in the EntryNames entry of this or any child nodes.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 36, page 89.


ZZ Elements NumberTreeNodeElement<T>

NumberTreeNodeElement<T> Class

This class represents a number tree node.

A number tree is a way of representing a mapping from integers to other Elements.

The standard PDF dictionary object does something similar, but it works natively in terms of strings rather than numbers and the PDF specification implies that it might not have been optimized for large numbers of items.

As such the PDF specification uses this type of tree structure, in areas where there may be large numbers of keys and values.

This class is always an indirect object because EntryKids requires it to be so.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 37, page 91.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.TreeNodeElement
         WebSupergoo.ABCpdf12.Elements.NumberTreeNodeElement<T>

Method | Description
NumberTreeNodeElement<T> | Create a new NumberTreeNodeElement.
 | inherited methods...

Property | Description
EntryKids | This property represents the "Kids" entry of the number tree node dictionary object.
EntryNums | This property represents the "Nums" entry of the number tree node dictionary object.
EntryLimits | This property represents the "Limits" entry of the number tree node dictionary object.
 | inherited properties...


ZZ Elements NumberTreeNodeElement<T> Constructor Function

NumberTreeNodeElement<T> Function

Create a new NumberTreeNodeElement.

Syntax

[C#]
NumberTreeNodeElement<T>()
NumberTreeNodeElement<T>(Atom atom, IndirectObject host)
NumberTreeNodeElement<T>(IndirectObject obj)
NumberTreeNodeElement<T>(Element relation, CreationOptions options)

[Visual Basic]
NumberTreeNodeElement<T>()
NumberTreeNodeElement<T>(atom As Atom, host As IndirectObject)
NumberTreeNodeElement<T>(obj As IndirectObject)
NumberTreeNodeElement<T>(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new NumberTreeNodeElement .

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements NumberTreeNodeElement<T> EntryKids Property

EntryKids Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<NumberTreeNodeElement<T>> [Visual Basic] ArrayElement<NumberTreeNodeElement<T>> | null | No | This property represents the "Kids" entry of the number tree node dictionary object.

Notes

This property represents the "Kids" entry of the number tree node dictionary object.

It is defined as part of the PDF 1.0 specification.

An Array containing child NumberTreeNodeElements which may be intermediate or leaf nodes.

This entry is always null in leaf nodes. In intermediate nodes it must always be non-null.

In the root node either this entry or the EntryNums entry should be non-null. But not both.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 37, page 91.


ZZ Elements NumberTreeNodeElement<T> EntryNums Property

EntryNums Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | This property represents the "Nums" entry of the number tree node dictionary object.

Notes

This property represents the "Nums" entry of the number tree node dictionary object.

It is defined as part of the PDF 1.0 specification.

An Array containing alternate keys and values. For this reason the number of items in they array is always a multiple of two.

So to find the 10th key and value you would use a zero based index of 20 and 21 respectively.

The pairs in this array should be sorted in ascending order by key value.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 37, page 91.


ZZ Elements NumberTreeNodeElement<T> EntryLimits Property

EntryLimits Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | This property represents the "Limits" entry of the number tree node dictionary object.

Notes

This property represents the "Limits" entry of the number tree node dictionary object.

It is defined as part of the PDF 1.0 specification.

It is an Array containing two integer representing the lower and upper bounds of the tree.

The first int represents the lowest key in the EntryNums entry of this or any child nodes.

The second int represents the highest key in the EntryNums entry of this or any child nodes.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 37, page 91.


ZZ Elements FunctionElement

FunctionElement Class

This class represents the function dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 38, page 93.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 38, page 122.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FunctionElement
         WebSupergoo.ABCpdf12.Elements.Type0FunctionElement
         WebSupergoo.ABCpdf12.Elements.Type2FunctionElement
         WebSupergoo.ABCpdf12.Elements.Type3FunctionElement
         WebSupergoo.ABCpdf12.Elements.Type4FunctionElement

Method | Description
FunctionElement | Create a new FunctionElement.
 | inherited methods...

Property | Description
EntryFunctionType | Represents the "FunctionType" entry of the function dictionary object.
EntryDomain | Represents the "Domain" entry of the function dictionary object.
EntryRange | Represents the "Range" entry of the function dictionary object.
 | inherited properties...


ZZ Elements FunctionElement Constructor Function

FunctionElement Function

Create a new FunctionElement.

Syntax

[C#]
FunctionElement()
FunctionElement(Atom atom, IndirectObject host)
FunctionElement(IndirectObject obj)
FunctionElement(Element relation, CreationOptions options)

[Visual Basic]
FunctionElement()
FunctionElement(atom As Atom, host As IndirectObject)
FunctionElement(obj As IndirectObject)
FunctionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FunctionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FunctionElement EntryFunctionType Property

EntryFunctionType Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "FunctionType" entry of the function dictionary object.

Notes

Represents the "FunctionType" entry of the function dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 38, page 93.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 38, page 122.


ZZ Elements FunctionElement EntryDomain Property

EntryDomain Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Domain" entry of the function dictionary object.

Notes

Represents the "Domain" entry of the function dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 38, page 93.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 38, page 123.


ZZ Elements FunctionElement EntryRange Property

EntryRange Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Range" entry of the function dictionary object.

Notes

Represents the "Range" entry of the function dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 38, page 93.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 38, page 123.


ZZ Elements Type0FunctionElement

Type0FunctionElement Class

This class represents the type 0 function dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 39, page 94.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 39, page 124.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FunctionElement
         WebSupergoo.ABCpdf12.Elements.Type0FunctionElement

Method | Description
Type0FunctionElement | Create a new Type0FunctionElement.
 | inherited methods...

Property | Description
StreamElement | The StreamElement associated with this class.
EntrySize | Represents the "Size" entry of the type 0 function dictionary object.
EntryBitsPerSample | Represents the "BitsPerSample" entry of the type 0 function dictionary object.
EntryOrder | Represents the "Order" entry of the type 0 function dictionary object.
EntryEncode | Represents the "Encode" entry of the type 0 function dictionary object.
EntryDecode | Represents the "Decode" entry of the type 0 function dictionary object.
 | inherited properties...


ZZ Elements Type0FunctionElement Constructor Function

Type0FunctionElement Function

Create a new Type0FunctionElement.

Syntax

[C#]
Type0FunctionElement()
Type0FunctionElement(Atom atom, IndirectObject host)
Type0FunctionElement(IndirectObject obj)
Type0FunctionElement(Element relation, CreationOptions options)

[Visual Basic]
Type0FunctionElement()
Type0FunctionElement(atom As Atom, host As IndirectObject)
Type0FunctionElement(obj As IndirectObject)
Type0FunctionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type0FunctionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type0FunctionElement StreamElement Property

StreamElement Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | Yes | The StreamElement associated with this class.

Notes

The StreamElement associated with this class.


ZZ Elements Type0FunctionElement EntrySize Property

EntrySize Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "Size" entry of the type 0 function dictionary object.

Notes

Represents the "Size" entry of the type 0 function dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains integers, representing PDF numeric objects.

Items in this array should have a minimum value of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 39, page 94.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 39, page 124.


ZZ Elements Type0FunctionElement EntryBitsPerSample Property

EntryBitsPerSample Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "BitsPerSample" entry of the type 0 function dictionary object.

Notes

Represents the "BitsPerSample" entry of the type 0 function dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 39, page 94.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 39, page 124.


ZZ Elements Type0FunctionElement EntryOrder Property

EntryOrder Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Order" entry of the type 0 function dictionary object.

Notes

Represents the "Order" entry of the type 0 function dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

It should have a minimum value of 1 and a maximum of 3.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 39, page 94.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 39, page 124.


ZZ Elements Type0FunctionElement EntryEncode Property

EntryEncode Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Encode" entry of the type 0 function dictionary object.

Notes

Represents the "Encode" entry of the type 0 function dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 39, page 94.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 39, page 124.


ZZ Elements Type0FunctionElement EntryDecode Property

EntryDecode Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Decode" entry of the type 0 function dictionary object.

Notes

Represents the "Decode" entry of the type 0 function dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 39, page 94.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 39, page 124.


ZZ Elements Type2FunctionElement

Type2FunctionElement Class

This class represents the type 2 function dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 40, page 96.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 40, page 126.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FunctionElement
         WebSupergoo.ABCpdf12.Elements.Type2FunctionElement

Method | Description
Type2FunctionElement | Create a new Type2FunctionElement.
 | inherited methods...

Property | Description
EntryC0 | Represents the "C0" entry of the type 2 function dictionary object.
EntryC1 | Represents the "C1" entry of the type 2 function dictionary object.
EntryN | Represents the "N" entry of the type 2 function dictionary object.
 | inherited properties...


ZZ Elements Type2FunctionElement Constructor Function

Type2FunctionElement Function

Create a new Type2FunctionElement.

Syntax

[C#]
Type2FunctionElement()
Type2FunctionElement(Atom atom, IndirectObject host)
Type2FunctionElement(IndirectObject obj)
Type2FunctionElement(Element relation, CreationOptions options)

[Visual Basic]
Type2FunctionElement()
Type2FunctionElement(atom As Atom, host As IndirectObject)
Type2FunctionElement(obj As IndirectObject)
Type2FunctionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type2FunctionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type2FunctionElement EntryC0 Property

EntryC0 Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "C0" entry of the type 2 function dictionary object.

Notes

Represents the "C0" entry of the type 2 function dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 40, page 96.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 40, page 126.


ZZ Elements Type2FunctionElement EntryC1 Property

EntryC1 Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "C1" entry of the type 2 function dictionary object.

Notes

Represents the "C1" entry of the type 2 function dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 40, page 96.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 40, page 126.


ZZ Elements Type2FunctionElement EntryN Property

EntryN Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "N" entry of the type 2 function dictionary object.

Notes

Represents the "N" entry of the type 2 function dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 40, page 96.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 40, page 126.


ZZ Elements Type3FunctionElement

Type3FunctionElement Class

This class represents the type 3 function dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 41, page 97.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 41, page 127.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FunctionElement
         WebSupergoo.ABCpdf12.Elements.Type3FunctionElement

Method | Description
Type3FunctionElement | Create a new Type3FunctionElement.
 | inherited methods...

Property | Description
EntryFunctions | Represents the "Functions" entry of the type 3 function dictionary object.
EntryBounds | Represents the "Bounds" entry of the type 3 function dictionary object.
EntryEncode | Represents the "Encode" entry of the type 3 function dictionary object.
 | inherited properties...


ZZ Elements Type3FunctionElement Constructor Function

Type3FunctionElement Function

Create a new Type3FunctionElement.

Syntax

[C#]
Type3FunctionElement()
Type3FunctionElement(Atom atom, IndirectObject host)
Type3FunctionElement(IndirectObject obj)
Type3FunctionElement(Element relation, CreationOptions options)

[Visual Basic]
Type3FunctionElement()
Type3FunctionElement(atom As Atom, host As IndirectObject)
Type3FunctionElement(obj As IndirectObject)
Type3FunctionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type3FunctionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type3FunctionElement EntryFunctions Property

EntryFunctions Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FunctionElement> [Visual Basic] ArrayElement<FunctionElement> | null | No | Represents the "Functions" entry of the type 3 function dictionary object.

Notes

Represents the "Functions" entry of the type 3 function dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains FunctionElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 41, page 97.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 41, page 127.


ZZ Elements Type3FunctionElement EntryBounds Property

EntryBounds Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Bounds" entry of the type 3 function dictionary object.

Notes

Represents the "Bounds" entry of the type 3 function dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 41, page 97.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 41, page 127.


ZZ Elements Type3FunctionElement EntryEncode Property

EntryEncode Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Encode" entry of the type 3 function dictionary object.

Notes

Represents the "Encode" entry of the type 3 function dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 41, page 97.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 41, page 127.


ZZ Elements StringFileSpecificationElement

StringFileSpecificationElement Class

This class represents the string file specification.

File specifications can be provided as a simple string or as a full dictionary containing cross platform path information.

This class represents the former.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 100.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FileSpecificationElement
         WebSupergoo.ABCpdf12.Elements.StringFileSpecificationElement

Method | Description
StringFileSpecificationElement | Create a new StringFileSpecificationElement.
 | inherited methods...

Property | Description
EntryString | This property represents the path to the file.
 | inherited properties...


ZZ Elements StringFileSpecificationElement Constructor Function

StringFileSpecificationElement Function

Create a new StringFileSpecificationElement.

Syntax

[C#]
StringFileSpecificationElement()
StringFileSpecificationElement(Atom atom, IndirectObject host)
StringFileSpecificationElement(IndirectObject obj)
StringFileSpecificationElement(Element relation, CreationOptions options)

[Visual Basic]
StringFileSpecificationElement()
StringFileSpecificationElement(atom As Atom, host As IndirectObject)
StringFileSpecificationElement(obj As IndirectObject)
StringFileSpecificationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new StringFileSpecificationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements StringFileSpecificationElement EntryString Property

EntryString Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | This property represents the path to the file.

Notes

This property represents the path to the file.

It is an required entry and defined as part of the PDF 1.0 specification.

This type of file specification always uses the forward slash character for directory separation.

Because different platforms use different directory separator characters, it is necessary to translate this string for use on different platforms.

If a file name or directory actually contains a forward slash, this needs to be indicated by using a backslash to escape it.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 100.


ZZ Elements FullFileSpecificationElement

FullFileSpecificationElement Class

This class represents the full file specification dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 44, page 102.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 43, page 132.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.41, page 26.

This class is always an indirect object because it inherits from FileSpecificationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FileSpecificationElement
         WebSupergoo.ABCpdf12.Elements.FullFileSpecificationElement

Method | Description
FullFileSpecificationElement | Create a new FullFileSpecificationElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the full file specification dictionary object.
EntryFS | Represents the "FS" entry of the full file specification dictionary object.
EntryF | Represents the "F" entry of the full file specification dictionary object.
EntryUF | Represents the "UF" entry of the full file specification dictionary object.
EntryDOS | Represents the "DOS" entry of the full file specification dictionary object.
EntryMac | Represents the "Mac" entry of the full file specification dictionary object.
EntryUnix | Represents the "Unix" entry of the full file specification dictionary object.
EntryID | Represents the "ID" entry of the full file specification dictionary object.
EntryV | Represents the "V" entry of the full file specification dictionary object.
EntryEF | Represents the "EF" entry of the full file specification dictionary object.
EntryRF | Represents the "RF" entry of the full file specification dictionary object.
EntryDesc | Represents the "Desc" entry of the full file specification dictionary object.
EntryCI | Represents the "CI" entry of the full file specification dictionary object.
EntryThumb | Represents the "Thumb" entry of the full file specification dictionary object.
EntryEP | Represents the "EP" entry of the full file specification dictionary object.
EntryAFRelationship | Represents the "AFRelationship" entry of the full file specification dictionary object.
 | inherited properties...


ZZ Elements FullFileSpecificationElement Constructor Function

FullFileSpecificationElement Function

Create a new FullFileSpecificationElement.

Syntax

[C#]
FullFileSpecificationElement()
FullFileSpecificationElement(Atom atom, IndirectObject host)
FullFileSpecificationElement(IndirectObject obj)
FullFileSpecificationElement(Element relation, CreationOptions options)

[Visual Basic]
FullFileSpecificationElement()
FullFileSpecificationElement(atom As Atom, host As IndirectObject)
FullFileSpecificationElement(obj As IndirectObject)
FullFileSpecificationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FullFileSpecificationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1584 in the Annotations example project.

[C#]

bool isUrl = filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase);
if (contentType == null) {
  int end = -1;
  if (isUrl)
    end = filePathOrUrl.IndexOfAny(new char[] { '?', '#' });
  if (end < 0)
    end = filePathOrUrl.Length;
  contentType = GetContentType(filePathOrUrl, end);
  if (contentType == null)
    throw new NotSupportedException("Movie content type is not supported.");
}

ScreenAnnotationElement annot = new ScreenAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "Screen";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);

FullFileSpecificationElement fileSpec = new FullFileSpecificationElement(annot);
fileSpec.EntryType = "Filespec";
if (isUrl) {
  fileSpec.EntryFS = "URL";
  fileSpec.EntryF = filePathOrUrl;
}
else {
  FileInfo fileInfo = new FileInfo(filePathOrUrl);
  fileSpec.EntryF = fileInfo.Name;
  fileSpec.EntryUF = fileInfo.Name;
  fileSpec.EntryEF = new EmbeddedFileSetElement(annot);
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo);
}

MediaClipDataElement mediaClip = new MediaClipDataElement(annot, CreationOptions.Indirect);
mediaClip.EntryS = "MCD";
mediaClip.EntryP = new MediaPermissionsElement(annot);
mediaClip.EntryP.EntryTF = "TEMPACCESS";
mediaClip.EntryCT = contentType;
mediaClip.EntryD = fileSpec;

MediaRenditionElement rendition = new MediaRenditionElement(annot, CreationOptions.Indirect);
rendition.EntryS = "MR";
rendition.EntryC = mediaClip;

RenditionActionElement pageVisibleAction = new RenditionActionElement(annot, CreationOptions.Indirect);
pageVisibleAction.EntryS = "Rendition";
pageVisibleAction.EntryOP = 4;
pageVisibleAction.EntryAN = annot;
pageVisibleAction.EntryR = rendition;

annot.EntryAA = new AnnotationAdditionalActionsElement(annot);
annot.EntryAA.EntryPV = pageVisibleAction;
AnnotationElement = annot;

[VB]

Dim isUrl As Boolean = filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase)
If contentType Is Nothing Then
  Dim [end] As Integer = -1
  If isUrl Then
    [end] = filePathOrUrl.IndexOfAny(New Char() { "?"c, "#"c })
  End If
  If [end] < 0 Then
    [end] = filePathOrUrl.Length
  End If
  contentType = GetContentType(filePathOrUrl, [end])
  If contentType Is Nothing Then
    Throw New NotSupportedException("Movie content type is not supported.")
  End If
End If

Dim annot As New ScreenAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "Screen"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)

Dim fileSpec As New FullFileSpecificationElement(annot)
fileSpec.EntryType = "Filespec"
If isUrl Then
  fileSpec.EntryFS = "URL"
  fileSpec.EntryF = filePathOrUrl
Else
  Dim fileInfo As New FileInfo(filePathOrUrl)
  fileSpec.EntryF = fileInfo.Name
  fileSpec.EntryUF = fileInfo.Name
  fileSpec.EntryEF = New EmbeddedFileSetElement(annot)
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo)
End If

Dim mediaClip As New MediaClipDataElement(annot, CreationOptions.Indirect)
mediaClip.EntryS = "MCD"
mediaClip.EntryP = New MediaPermissionsElement(annot)
mediaClip.EntryP.EntryTF = "TEMPACCESS"
mediaClip.EntryCT = contentType
mediaClip.EntryD = fileSpec

Dim rendition As New MediaRenditionElement(annot, CreationOptions.Indirect)
rendition.EntryS = "MR"
rendition.EntryC = mediaClip

Dim pageVisibleAction As New RenditionActionElement(annot, CreationOptions.Indirect)
pageVisibleAction.EntryS = "Rendition"
pageVisibleAction.EntryOP = 4
pageVisibleAction.EntryAN = annot
pageVisibleAction.EntryR = rendition

annot.EntryAA = New AnnotationAdditionalActionsElement(annot)
annot.EntryAA.EntryPV = pageVisibleAction
AnnotationElement = annot


ZZ Elements FullFileSpecificationElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the full file specification dictionary object.

Notes

Represents the "Type" entry of the full file specification dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Filespec".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 44, page 102.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.41, page 26.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 43, page 132.


ZZ Elements FullFileSpecificationElement EntryFS Property

EntryFS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "FS" entry of the full file specification dictionary object.

Notes

Represents the "FS" entry of the full file specification dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The specification defines this as exensible which means that it may contain entries in addition to those defined in the specification.

In fact almost all objects are extensible but the fact that it is explicitly mentioned, implies that extra entries should be regarded as normal rather than exceptional.

For further details see The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: Annex E, page 673..

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 44, page 102.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.41, page 26.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 43, page 132.


ZZ Elements FullFileSpecificationElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "F" entry of the full file specification dictionary object.

Notes

Represents the "F" entry of the full file specification dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 44, page 102.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.41, page 26.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 43, page 133.


ZZ Elements FullFileSpecificationElement EntryUF Property

EntryUF Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "UF" entry of the full file specification dictionary object.

Notes

Represents the "UF" entry of the full file specification dictionary object.

It is defined as part of the PDF 1.7 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 44, page 102.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.41, page 26.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 43, page 133.


ZZ Elements FullFileSpecificationElement EntryDOS Property

EntryDOS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "DOS" entry of the full file specification dictionary object.

Notes

Represents the "DOS" entry of the full file specification dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification. It was marked obsolescent in PDF 1.7 and deprecated in PDF 2.0.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 44, page 102.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.41, page 26.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 43, page 133.


ZZ Elements FullFileSpecificationElement EntryMac Property

EntryMac Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Mac" entry of the full file specification dictionary object.

Notes

Represents the "Mac" entry of the full file specification dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification. It was marked obsolescent in PDF 1.7 and deprecated in PDF 2.0.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 44, page 102.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.41, page 26.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 43, page 133.


ZZ Elements FullFileSpecificationElement EntryUnix Property

EntryUnix Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Unix" entry of the full file specification dictionary object.

Notes

Represents the "Unix" entry of the full file specification dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification. It was marked obsolescent in PDF 1.7 and deprecated in PDF 2.0.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 44, page 102.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.41, page 26.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 43, page 133.


ZZ Elements FullFileSpecificationElement EntryID Property

EntryID Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "ID" entry of the full file specification dictionary object.

Notes

Represents the "ID" entry of the full file specification dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 44, page 103.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.41, page 26.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 43, page 133.


ZZ Elements FullFileSpecificationElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "V" entry of the full file specification dictionary object.

Notes

Represents the "V" entry of the full file specification dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 44, page 103.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.41, page 26.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 43, page 133.


ZZ Elements FullFileSpecificationElement EntryEF Property

EntryEF Property

Type | Default Value | Read Only | Description
[C#] EmbeddedFileSetElement [Visual Basic] EmbeddedFileSetElement | null | No | Represents the "EF" entry of the full file specification dictionary object.

Notes

Represents the "EF" entry of the full file specification dictionary object.

It is defined as part of the PDF 1.3 specification.

It contains an EmbeddedFileSetElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 44, page 103.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.41, page 26.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 43, page 134.


ZZ Elements FullFileSpecificationElement EntryRF Property

EntryRF Property

Type | Default Value | Read Only | Description
[C#] RelatedFileSetElement [Visual Basic] RelatedFileSetElement | null | No | Represents the "RF" entry of the full file specification dictionary object.

Notes

Represents the "RF" entry of the full file specification dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a RelatedFileSetElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 44, page 103.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.41, page 26.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 43, page 134.


ZZ Elements FullFileSpecificationElement EntryDesc Property

EntryDesc Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Desc" entry of the full file specification dictionary object.

Notes

Represents the "Desc" entry of the full file specification dictionary object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 44, page 103.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.41, page 26.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 43, page 134.


ZZ Elements FullFileSpecificationElement EntryCI Property

EntryCI Property

Type | Default Value | Read Only | Description
[C#] CollectionItemElement [Visual Basic] CollectionItemElement | null | No | Represents the "CI" entry of the full file specification dictionary object.

Notes

Represents the "CI" entry of the full file specification dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a CollectionItemElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 44, page 103.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.41, page 26.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 43, page 134.


ZZ Elements FullFileSpecificationElement EntryThumb Property

EntryThumb Property

Type | Default Value | Read Only | Description
[C#] ImageXObjectElement [Visual Basic] ImageXObjectElement | null | No | Represents the "Thumb" entry of the full file specification dictionary object.

Notes

Represents the "Thumb" entry of the full file specification dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an ImageXObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 44, page 102.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.41, page 26.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 43, page 134.


ZZ Elements FullFileSpecificationElement EntryEP Property

EntryEP Property

Type | Default Value | Read Only | Description
[C#] EncryptedPayloadElement [Visual Basic] EncryptedPayloadElement | null | No | Represents the "EP" entry of the full file specification dictionary object.

Notes

Represents the "EP" entry of the full file specification dictionary object.

It is defined as part of the PDF 2.0 specification.

It contains an EncryptedPayloadElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 44, page 102.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.41, page 26.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 43, page 134.


ZZ Elements FullFileSpecificationElement EntryAFRelationship Property

EntryAFRelationship Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "AFRelationship" entry of the full file specification dictionary object.

Notes

Represents the "AFRelationship" entry of the full file specification dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Unspecified" if no value has been provided.

This item may take one of the following valid values:.

  • Data
  • Alternative
  • Supplement
  • EncryptedPayload
  • FormData
  • Schema
  • Unspecified

The specification defines this as exensible which means that it may contain entries in addition to those defined in the specification.

In fact almost all objects are extensible but the fact that it is explicitly mentioned, implies that extra entries should be regarded as normal rather than exceptional.

For further details see The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: Annex E, page 673..

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 44, page 102.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.41, page 26.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 43, page 135.


ZZ Elements EmbeddedFileSetElement

EmbeddedFileSetElement Class

This class represents the embedded file set dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 103.

This is a structure described in the EF entry of the PDF Specification table referenced above. In the specification this structure does not have a name.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.EmbeddedFileSetElement

Method | Description
EmbeddedFileSetElement | Create a new EmbeddedFileSetElement.
 | inherited methods...

Property | Description
EntryF | Represents the "F" entry of the embedded file set dictionary object.
EntryUF | Represents the "UF" entry of the embedded file set dictionary object.
EntryDOS | Represents the "DOS" entry of the embedded file set dictionary object.
EntryMac | Represents the "Mac" entry of the embedded file set dictionary object.
EntryUnix | Represents the "Unix" entry of the embedded file set dictionary object.
 | inherited properties...


ZZ Elements EmbeddedFileSetElement Constructor Function

EmbeddedFileSetElement Function

Create a new EmbeddedFileSetElement.

Syntax

[C#]
EmbeddedFileSetElement()
EmbeddedFileSetElement(Atom atom, IndirectObject host)
EmbeddedFileSetElement(IndirectObject obj)
EmbeddedFileSetElement(Element relation, CreationOptions options)

[Visual Basic]
EmbeddedFileSetElement()
EmbeddedFileSetElement(atom As Atom, host As IndirectObject)
EmbeddedFileSetElement(obj As IndirectObject)
EmbeddedFileSetElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new EmbeddedFileSetElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from NameTree.cs line 36 in the Annotations example project.

[C#]

FileInfo info = new FileInfo(filePath);
EmbeddedFileStreamElement stream = EmbedFileStream(info, soup);
CatalogElement cat = new CatalogElement(soup.Catalog);
FullFileSpecificationElement file = new FullFileSpecificationElement(cat);
file.EntryType = "Filespec";
file.EntryF = info.Name;
file.EntryUF = info.Name;
file.EntryEF = new EmbeddedFileSetElement(file);
file.EntryEF.EntryF = stream;
file.EntryDesc = description;
return file;

[VB]

Dim info As New FileInfo(filePath)
Dim stream As EmbeddedFileStreamElement = EmbedFileStream(info, soup)
Dim cat As New CatalogElement(soup.Catalog)
Dim file As New FullFileSpecificationElement(cat)
file.EntryType = "Filespec"
file.EntryF = info.Name
file.EntryUF = info.Name
file.EntryEF = New EmbeddedFileSetElement(file)
file.EntryEF.EntryF = stream
file.EntryDesc = description
Return file


ZZ Elements EmbeddedFileSetElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] EmbeddedFileStreamElement [Visual Basic] EmbeddedFileStreamElement | null | No | Represents the "F" entry of the embedded file set dictionary object.

Notes

Represents the "F" entry of the embedded file set dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains an EmbeddedFileStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 103.


ZZ Elements EmbeddedFileSetElement EntryUF Property

EntryUF Property

Type | Default Value | Read Only | Description
[C#] EmbeddedFileStreamElement [Visual Basic] EmbeddedFileStreamElement | null | No | Represents the "UF" entry of the embedded file set dictionary object.

Notes

Represents the "UF" entry of the embedded file set dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains an EmbeddedFileStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 103.


ZZ Elements EmbeddedFileSetElement EntryDOS Property

EntryDOS Property

Type | Default Value | Read Only | Description
[C#] EmbeddedFileStreamElement [Visual Basic] EmbeddedFileStreamElement | null | No | Represents the "DOS" entry of the embedded file set dictionary object.

Notes

Represents the "DOS" entry of the embedded file set dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification. It was marked obsolescent in PDF 1.7 and deprecated in PDF 2.0.

It contains an EmbeddedFileStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 103.


ZZ Elements EmbeddedFileSetElement EntryMac Property

EntryMac Property

Type | Default Value | Read Only | Description
[C#] EmbeddedFileStreamElement [Visual Basic] EmbeddedFileStreamElement | null | No | Represents the "Mac" entry of the embedded file set dictionary object.

Notes

Represents the "Mac" entry of the embedded file set dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification. It was marked obsolescent in PDF 1.7 and deprecated in PDF 2.0.

It contains an EmbeddedFileStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 103.


ZZ Elements EmbeddedFileSetElement EntryUnix Property

EntryUnix Property

Type | Default Value | Read Only | Description
[C#] EmbeddedFileStreamElement [Visual Basic] EmbeddedFileStreamElement | null | No | Represents the "Unix" entry of the embedded file set dictionary object.

Notes

Represents the "Unix" entry of the embedded file set dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification. It was marked obsolescent in PDF 1.7 and deprecated in PDF 2.0.

It contains an EmbeddedFileStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 103.


ZZ Elements RelatedFileSetElement

RelatedFileSetElement Class

This class represents the related file set dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 103.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RelatedFileSetElement

Method | Description
RelatedFileSetElement | Create a new RelatedFileSetElement.
 | inherited methods...

Property | Description
EntryF | Represents the "F" entry of the related file set dictionary object.
EntryUF | Represents the "UF" entry of the related file set dictionary object.
EntryDOS | Represents the "DOS" entry of the related file set dictionary object.
EntryMac | Represents the "Mac" entry of the related file set dictionary object.
EntryUnix | Represents the "Unix" entry of the related file set dictionary object.
 | inherited properties...


ZZ Elements RelatedFileSetElement Constructor Function

RelatedFileSetElement Function

Create a new RelatedFileSetElement.

Syntax

[C#]
RelatedFileSetElement()
RelatedFileSetElement(Atom atom, IndirectObject host)
RelatedFileSetElement(IndirectObject obj)
RelatedFileSetElement(Element relation, CreationOptions options)

[Visual Basic]
RelatedFileSetElement()
RelatedFileSetElement(atom As Atom, host As IndirectObject)
RelatedFileSetElement(obj As IndirectObject)
RelatedFileSetElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RelatedFileSetElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements RelatedFileSetElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "F" entry of the related file set dictionary object.

Notes

Represents the "F" entry of the related file set dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 103.


ZZ Elements RelatedFileSetElement EntryUF Property

EntryUF Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "UF" entry of the related file set dictionary object.

Notes

Represents the "UF" entry of the related file set dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 103.


ZZ Elements RelatedFileSetElement EntryDOS Property

EntryDOS Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "DOS" entry of the related file set dictionary object.

Notes

Represents the "DOS" entry of the related file set dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification. It was marked obsolescent in PDF 1.7 and deprecated in PDF 2.0.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 103.


ZZ Elements RelatedFileSetElement EntryMac Property

EntryMac Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "Mac" entry of the related file set dictionary object.

Notes

Represents the "Mac" entry of the related file set dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification. It was marked obsolescent in PDF 1.7 and deprecated in PDF 2.0.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 103.


ZZ Elements RelatedFileSetElement EntryUnix Property

EntryUnix Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "Unix" entry of the related file set dictionary object.

Notes

Represents the "Unix" entry of the related file set dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification. It was marked obsolescent in PDF 1.7 and deprecated in PDF 2.0.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 103.


ZZ Elements EmbeddedFileParameterElement

EmbeddedFileParameterElement Class

This class represents the embedded file parameter dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 46, page 104.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 45, page 137.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.EmbeddedFileParameterElement

Method | Description
EmbeddedFileParameterElement | Create a new EmbeddedFileParameterElement.
 | inherited methods...

Property | Description
EntrySize | Represents the "Size" entry of the embedded file parameter dictionary object.
EntryCreationDate | Represents the "CreationDate" entry of the embedded file parameter dictionary object.
EntryModDate | Represents the "ModDate" entry of the embedded file parameter dictionary object.
EntryMac | Represents the "Mac" entry of the embedded file parameter dictionary object.
EntryCheckSum | Represents the "CheckSum" entry of the embedded file parameter dictionary object.
 | inherited properties...


ZZ Elements EmbeddedFileParameterElement Constructor Function

EmbeddedFileParameterElement Function

Create a new EmbeddedFileParameterElement.

Syntax

[C#]
EmbeddedFileParameterElement()
EmbeddedFileParameterElement(Atom atom, IndirectObject host)
EmbeddedFileParameterElement(IndirectObject obj)
EmbeddedFileParameterElement(Element relation, CreationOptions options)

[Visual Basic]
EmbeddedFileParameterElement()
EmbeddedFileParameterElement(atom As Atom, host As IndirectObject)
EmbeddedFileParameterElement(obj As IndirectObject)
EmbeddedFileParameterElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new EmbeddedFileParameterElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from NameTree.cs line 53 in the Annotations example project.

[C#]

string filePath = info.FullName;
StreamObject obj = new StreamObject(soup, filePath);
if (obj.Length > 64)
  obj.CompressFlate();
EmbeddedFileStreamElement fs = new EmbeddedFileStreamElement(obj);
fs.EntryType = "EmbeddedFile";
fs.EntrySubtype = GetContentType(filePath);
fs.EntryParams = new EmbeddedFileParameterElement(fs);
fs.EntryParams.EntrySize = (int)info.Length;
fs.EntryParams.EntryModDate = StringAtom.DateToString(info.LastWriteTimeUtc);
fs.EntryParams.EntryCreationDate = StringAtom.DateToString(info.CreationTimeUtc);
return fs;

[VB]

Dim filePath As String = info.FullName
Dim obj As New StreamObject(soup, filePath)
If obj.Length > 64 Then
  obj.CompressFlate()
End If
Dim fs As New EmbeddedFileStreamElement(obj)
fs.EntryType = "EmbeddedFile"
fs.EntrySubtype = GetContentType(filePath)
fs.EntryParams = New EmbeddedFileParameterElement(fs)
fs.EntryParams.EntrySize = CInt(info.Length)
fs.EntryParams.EntryModDate = StringAtom.DateToString(info.LastWriteTimeUtc)
fs.EntryParams.EntryCreationDate = StringAtom.DateToString(info.CreationTimeUtc)
Return fs


ZZ Elements EmbeddedFileParameterElement EntrySize Property

EntrySize Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Size" entry of the embedded file parameter dictionary object.

Notes

Represents the "Size" entry of the embedded file parameter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 46, page 104.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 45, page 137.


ZZ Elements EmbeddedFileParameterElement EntryCreationDate Property

EntryCreationDate Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "CreationDate" entry of the embedded file parameter dictionary object.

Notes

Represents the "CreationDate" entry of the embedded file parameter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a date string. For details see the StringAtom.DateToString and StringAtom.StringToDate functions.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 46, page 104.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 45, page 137.


ZZ Elements EmbeddedFileParameterElement EntryModDate Property

EntryModDate Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ModDate" entry of the embedded file parameter dictionary object.

Notes

Represents the "ModDate" entry of the embedded file parameter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a date string. For details see the StringAtom.DateToString and StringAtom.StringToDate functions.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 46, page 104.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 45, page 137.


ZZ Elements EmbeddedFileParameterElement EntryMac Property

EntryMac Property

Type | Default Value | Read Only | Description
[C#] MacOSFileInformationElement [Visual Basic] MacOSFileInformationElement | null | No | Represents the "Mac" entry of the embedded file parameter dictionary object.

Notes

Represents the "Mac" entry of the embedded file parameter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

It contains a MacOSFileInformationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 46, page 104.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 45, page 137.


ZZ Elements EmbeddedFileParameterElement EntryCheckSum Property

EntryCheckSum Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "CheckSum" entry of the embedded file parameter dictionary object.

Notes

Represents the "CheckSum" entry of the embedded file parameter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 46, page 104.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 45, page 137.


ZZ Elements EmbeddedFileStreamElement

EmbeddedFileStreamElement Class

This class represents the embedded file stream dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 45, page 104.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 44, page 136.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 244, page 460.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 247, page 558.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.EmbeddedFileStreamElement

Method | Description
EmbeddedFileStreamElement | Create a new EmbeddedFileStreamElement.
 | inherited methods...

Property | Description
StreamElement | The StreamElement associated with this class.
EntryType | Represents the "Type" entry of the embedded file stream dictionary object.
EntrySubtype | Represents the "Subtype" entry of the embedded file stream dictionary object.
EntryParams | Represents the "Params" entry of the embedded file stream dictionary object.
EntryEncryptionRevision | Represents the "EncryptionRevision" entry of the embedded file stream dictionary object.
 | inherited properties...


ZZ Elements EmbeddedFileStreamElement Constructor Function

EmbeddedFileStreamElement Function

Create a new EmbeddedFileStreamElement.

Syntax

[C#]
EmbeddedFileStreamElement()
EmbeddedFileStreamElement(Atom atom, IndirectObject host)
EmbeddedFileStreamElement(IndirectObject obj)
EmbeddedFileStreamElement(Element relation, CreationOptions options)

[Visual Basic]
EmbeddedFileStreamElement()
EmbeddedFileStreamElement(atom As Atom, host As IndirectObject)
EmbeddedFileStreamElement(obj As IndirectObject)
EmbeddedFileStreamElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new EmbeddedFileStreamElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 128 in the Annotations example project.

[C#]

string filePath = info.FullName;
StreamObject obj = new StreamObject(Form.Doc.ObjectSoup, filePath);
if (obj.Length > 64)
  obj.CompressFlate();
EmbeddedFileStreamElement fs = new EmbeddedFileStreamElement(obj);
fs.EntryType = "EmbeddedFile";
fs.EntrySubtype = GetContentType(filePath);
fs.EntryParams = new EmbeddedFileParameterElement(fs);
fs.EntryParams.EntrySize = (int)info.Length;
fs.EntryParams.EntryModDate = StringAtom.DateToString(info.LastWriteTimeUtc);
fs.EntryParams.EntryCreationDate = StringAtom.DateToString(info.CreationTimeUtc);
return fs;

[VB]

Dim filePath As String = info.FullName
Dim obj As New StreamObject(Form.Doc.ObjectSoup, filePath)
If obj.Length > 64 Then
  obj.CompressFlate()
End If
Dim fs As New EmbeddedFileStreamElement(obj)
fs.EntryType = "EmbeddedFile"
fs.EntrySubtype = GetContentType(filePath)
fs.EntryParams = New EmbeddedFileParameterElement(fs)
fs.EntryParams.EntrySize = CInt(info.Length)
fs.EntryParams.EntryModDate = StringAtom.DateToString(info.LastWriteTimeUtc)
fs.EntryParams.EntryCreationDate = StringAtom.DateToString(info.CreationTimeUtc)
Return fs


ZZ Elements EmbeddedFileStreamElement StreamElement Property

StreamElement Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | Yes | The StreamElement associated with this class.

Notes

The StreamElement associated with this class.


ZZ Elements EmbeddedFileStreamElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the embedded file stream dictionary object.

Notes

Represents the "Type" entry of the embedded file stream dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "EmbeddedFile".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 45, page 104.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 44, page 136.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 244, page 460.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 247, page 558.


ZZ Elements EmbeddedFileStreamElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the embedded file stream dictionary object.

Notes

Represents the "Subtype" entry of the embedded file stream dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The specification defines this as exensible which means that it may contain entries in addition to those defined in the specification.

In fact almost all objects are extensible but the fact that it is explicitly mentioned, implies that extra entries should be regarded as normal rather than exceptional.

For further details see The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: Annex E, page 673..

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 45, page 104.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 44, page 136.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 244, page 460.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 247, page 558.


ZZ Elements EmbeddedFileStreamElement EntryParams Property

EntryParams Property

Type | Default Value | Read Only | Description
[C#] EmbeddedFileParameterElement [Visual Basic] EmbeddedFileParameterElement | null | No | Represents the "Params" entry of the embedded file stream dictionary object.

Notes

Represents the "Params" entry of the embedded file stream dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an EmbeddedFileParameterElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 45, page 104.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 44, page 136.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 244, page 460.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 247, page 558.


ZZ Elements EmbeddedFileStreamElement EntryEncryptionRevision Property

EntryEncryptionRevision Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "EncryptionRevision" entry of the embedded file stream dictionary object.

Notes

Represents the "EncryptionRevision" entry of the embedded file stream dictionary object.

It is defined as part of the PDF 1.4 specification. It was deprecated in PDF 2.0.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 45, page 104.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 44, page 136.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 244, page 460.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 247, page 558.


ZZ Elements MacOSFileInformationElement

MacOSFileInformationElement Class

This class represents the mac os file information dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 47, page 105.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MacOSFileInformationElement

Method | Description
MacOSFileInformationElement | Create a new MacOSFileInformationElement.
 | inherited methods...

Property | Description
EntrySubtype | Represents the "Subtype" entry of the mac os file information dictionary object.
EntryCreator | Represents the "Creator" entry of the mac os file information dictionary object.
EntryResFork | Represents the "ResFork" entry of the mac os file information dictionary object.
 | inherited properties...


ZZ Elements MacOSFileInformationElement Constructor Function

MacOSFileInformationElement Function

Create a new MacOSFileInformationElement.

Syntax

[C#]
MacOSFileInformationElement()
MacOSFileInformationElement(Atom atom, IndirectObject host)
MacOSFileInformationElement(IndirectObject obj)
MacOSFileInformationElement(Element relation, CreationOptions options)

[Visual Basic]
MacOSFileInformationElement()
MacOSFileInformationElement(atom As Atom, host As IndirectObject)
MacOSFileInformationElement(obj As IndirectObject)
MacOSFileInformationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MacOSFileInformationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MacOSFileInformationElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Subtype" entry of the mac os file information dictionary object.

Notes

Represents the "Subtype" entry of the mac os file information dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 47, page 105.


ZZ Elements MacOSFileInformationElement EntryCreator Property

EntryCreator Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Creator" entry of the mac os file information dictionary object.

Notes

Represents the "Creator" entry of the mac os file information dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 47, page 105.


ZZ Elements MacOSFileInformationElement EntryResFork Property

EntryResFork Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | No | Represents the "ResFork" entry of the mac os file information dictionary object.

Notes

Represents the "ResFork" entry of the mac os file information dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 47, page 105.


ZZ Elements CollectionItemElement

CollectionItemElement Class

This class represents the collection item dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 48, page 106.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 46, page 138.

This class is always an indirect object because FullFileSpecificationElement.EntryCI requires it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CollectionItemElement

Method | Description
CollectionItemElement | Create a new CollectionItemElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the collection item dictionary object.
 | inherited properties...


ZZ Elements CollectionItemElement Constructor Function

CollectionItemElement Function

Create a new CollectionItemElement.

Syntax

[C#]
CollectionItemElement()
CollectionItemElement(Atom atom, IndirectObject host)
CollectionItemElement(IndirectObject obj)
CollectionItemElement(Element relation, CreationOptions options)

[Visual Basic]
CollectionItemElement()
CollectionItemElement(atom As Atom, host As IndirectObject)
CollectionItemElement(obj As IndirectObject)
CollectionItemElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CollectionItemElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CollectionItemElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the collection item dictionary object.

Notes

Represents the "Type" entry of the collection item dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "CollectionItem".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 48, page 106.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 46, page 138.


ZZ Elements CollectionSubItemElement

CollectionSubItemElement Class

This class represents the collection subitem dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 49, page 107.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 47, page 139.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CollectionSubItemElement

Method | Description
CollectionSubItemElement | Create a new CollectionSubItemElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the collection subitem dictionary object.
EntryD | Represents the "D" entry of the collection subitem dictionary object.
EntryP | Represents the "P" entry of the collection subitem dictionary object.
 | inherited properties...


ZZ Elements CollectionSubItemElement Constructor Function

CollectionSubItemElement Function

Create a new CollectionSubItemElement.

Syntax

[C#]
CollectionSubItemElement()
CollectionSubItemElement(Atom atom, IndirectObject host)
CollectionSubItemElement(IndirectObject obj)
CollectionSubItemElement(Element relation, CreationOptions options)

[Visual Basic]
CollectionSubItemElement()
CollectionSubItemElement(atom As Atom, host As IndirectObject)
CollectionSubItemElement(obj As IndirectObject)
CollectionSubItemElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CollectionSubItemElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CollectionSubItemElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the collection subitem dictionary object.

Notes

Represents the "Type" entry of the collection subitem dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "CollectionSubitem".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 49, page 107.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 47, page 139.


ZZ Elements CollectionSubItemElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "D" entry of the collection subitem dictionary object.

Notes

Represents the "D" entry of the collection subitem dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A double representing a PDF numeric object.

2) A string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 49, page 107.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 47, page 139.


ZZ Elements CollectionSubItemElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "P" entry of the collection subitem dictionary object.

Notes

Represents the "P" entry of the collection subitem dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 49, page 107.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 47, page 139.


ZZ Elements DeveloperExtensionsElement

DeveloperExtensionsElement Class

This class represents the developer extensions dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 50, page 108.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 49, page 140.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25b, page 25.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.DeveloperExtensionsElement

Method | Description
DeveloperExtensionsElement | Create a new DeveloperExtensionsElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the developer extensions dictionary object.
EntryBaseVersion | Represents the "BaseVersion" entry of the developer extensions dictionary object.
EntryExtensionLevel | Represents the "ExtensionLevel" entry of the developer extensions dictionary object.
EntryURL | Represents the "URL" entry of the developer extensions dictionary object.
 | inherited properties...


ZZ Elements DeveloperExtensionsElement Constructor Function

DeveloperExtensionsElement Function

Create a new DeveloperExtensionsElement.

Syntax

[C#]
DeveloperExtensionsElement()
DeveloperExtensionsElement(Atom atom, IndirectObject host)
DeveloperExtensionsElement(IndirectObject obj)
DeveloperExtensionsElement(Element relation, CreationOptions options)

[Visual Basic]
DeveloperExtensionsElement()
DeveloperExtensionsElement(atom As Atom, host As IndirectObject)
DeveloperExtensionsElement(obj As IndirectObject)
DeveloperExtensionsElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new DeveloperExtensionsElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements DeveloperExtensionsElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the developer extensions dictionary object.

Notes

Represents the "Type" entry of the developer extensions dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "DeveloperExtensions".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 50, page 108.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25b, page 25.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 49, page 140.


ZZ Elements DeveloperExtensionsElement EntryBaseVersion Property

EntryBaseVersion Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "BaseVersion" entry of the developer extensions dictionary object.

Notes

Represents the "BaseVersion" entry of the developer extensions dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 50, page 108.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25b, page 25.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 49, page 140.


ZZ Elements DeveloperExtensionsElement EntryExtensionLevel Property

EntryExtensionLevel Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "ExtensionLevel" entry of the developer extensions dictionary object.

Notes

Represents the "ExtensionLevel" entry of the developer extensions dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 50, page 108.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25b, page 25.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 49, page 140.


ZZ Elements DeveloperExtensionsElement EntryURL Property

EntryURL Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "URL" entry of the developer extensions dictionary object.

Notes

Represents the "URL" entry of the developer extensions dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF string object.

The specification defines this as exensible which means that it may contain entries in addition to those defined in the specification.

In fact almost all objects are extensible but the fact that it is explicitly mentioned, implies that extra entries should be regarded as normal rather than exceptional.

For further details see The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: Annex E, page 673..

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 50, page 108.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25b, page 25.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 49, page 140.


ZZ Elements DestinationElement

DestinationElement Class

This class represents a destination.

A destination is a location within this document or sometimes in a different document.

Along with the location, a destination carries extra information to state how the destination should be viewed.

For example it may specify a page size, or zoom level or pinned point.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 151, page 366.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.DestinationElement

Method | Description
DestinationElement | Create a new DestinationElement.
SetTarget | Sets the page and type for the destination.
 | inherited methods...

Property | Description
EntryTarget | This property represents the destination target.
EntryType | This property represents the type of destination.
EntryParameter1 | This property represents the first parameter associated with the destination.
EntryParameter2 | This property represents the first parameter associated with the destination.
EntryParameter3 | This property represents the first parameter associated with the destination.
EntryParameter4 | This property represents the first parameter associated with the destination.
 | inherited properties...


ZZ Elements DestinationElement Constructor Function

DestinationElement Function

Create a new DestinationElement.

Syntax

[C#]
DestinationElement()
DestinationElement(Atom atom, IndirectObject host)
DestinationElement(IndirectObject obj)
DestinationElement(Element relation, CreationOptions options)

[Visual Basic]
DestinationElement()
DestinationElement(atom As Atom, host As IndirectObject)
DestinationElement(obj As IndirectObject)
DestinationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new DestinationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Validation SetTarget Function

SetTarget Function

Sets the page and type for the destination.

Syntax

[C#]
virtual void SetTarget(PageObjectElement page, DestinationType type)

[Visual Basic]
Overridable Function SetTarget(page As PageObjectElement, type As DestinationType) As void

Params
Name | Description
page | The destination page.
type | The type of destination.

Notes

Sets the page and type for the destination.

As part of this process other destination parameters are set to defaults.

See EntryType for details of the types that can be provided.


ZZ Elements DestinationElement EntryTarget Property

EntryTarget Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | This property represents the destination target.

Notes

This property represents the destination target.

It is a required entry and defined as part of the PDF 1.0 specification.

The Target may be a PageObjectElement or, in the case of a remote destination, an Element containing a NumAtom indicating a page number. In this case page numbers use a zero rather than one based index.

In a PDF 2.0 document this property may be a StructureElementElement indicating the part of the document to which the destination refers.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 151, page 366.


ZZ Elements DestinationElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | This property represents the type of destination.

Notes

This property represents the type of destination.

It is a required entry and defined as part of the PDF 1.0 specification.

It is a Name and may take one of the following valid values:.

  • XYZ
  • Fit
  • FitH
  • FitV
  • FitR
  • FitB
  • FitBH
  • FitBV
.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 151, page 366.


ZZ Elements DestinationElement EntryParameter1 Property

EntryParameter1 Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | This property represents the first parameter associated with the destination.

Notes

This property represents the first parameter associated with the destination.

The number of parameters and purpose of each varies depending on the EntryType of the Destination.

However in general they represent coordinates on the page which need be visible or aligned in some way.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 151, page 366.


ZZ Elements DestinationElement EntryParameter2 Property

EntryParameter2 Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | This property represents the first parameter associated with the destination.

Notes

This property represents the first parameter associated with the destination.

The number of parameters and purpose of each varies depending on the EntryType of the Destination.

However in general they represent coordinates on the page which need be visible or aligned in some way.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 151, page 366.


ZZ Elements DestinationElement EntryParameter3 Property

EntryParameter3 Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | This property represents the first parameter associated with the destination.

Notes

This property represents the first parameter associated with the destination.

The number of parameters and purpose of each varies depending on the EntryType of the Destination.

However in general they represent coordinates on the page which need be visible or aligned in some way.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 151, page 366.


ZZ Elements DestinationElement EntryParameter4 Property

EntryParameter4 Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | This property represents the first parameter associated with the destination.

Notes

This property represents the first parameter associated with the destination.

The number of parameters and purpose of each varies depending on the EntryType of the Destination.

However in general they represent coordinates on the page which need be visible or aligned in some way.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 151, page 366.


ZZ Elements DestinationActionElement

DestinationActionElement Class

This class represents a hybrid destination and action dictionary.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; 12.3.2.3 Named Destinations, page 367.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.DestinationActionElement

Method | Description
DestinationActionElement | Create a new DestinationActionElement.
 | inherited methods...

Property | Description
EntryD | This property represents the "D" entry of the object.
 | inherited properties...


ZZ Elements DestinationActionElement Constructor Function

DestinationActionElement Function

Create a new DestinationActionElement.

Syntax

[C#]
DestinationActionElement()
DestinationActionElement(Atom atom, IndirectObject host)
DestinationActionElement(IndirectObject obj)
DestinationActionElement(Element relation, CreationOptions options)

[Visual Basic]
DestinationActionElement()
DestinationActionElement(atom As Atom, host As IndirectObject)
DestinationActionElement(obj As IndirectObject)
DestinationActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new DestinationActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements DestinationActionElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] DestinationElement [Visual Basic] DestinationElement | null | No | This property represents the "D" entry of the object.

Notes

This property represents the "D" entry of the object.

It is a required entry and defined as part of the PDF 1.0 specification.

This property contains a DestinationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; 12.3.2.3 Named Destinations, page 367.


ZZ Elements ExtensionsElement

ExtensionsElement Class

This class represents the extensions dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 48, page 140.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25a, page 24.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ExtensionsElement

Method | Description
ExtensionsElement | Create a new ExtensionsElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the extensions dictionary object.
EntryADBE | Represents the "ADBE" entry of the extensions dictionary object.
 | inherited properties...


ZZ Elements ExtensionsElement Constructor Function

ExtensionsElement Function

Create a new ExtensionsElement.

Syntax

[C#]
ExtensionsElement()
ExtensionsElement(Atom atom, IndirectObject host)
ExtensionsElement(IndirectObject obj)
ExtensionsElement(Element relation, CreationOptions options)

[Visual Basic]
ExtensionsElement()
ExtensionsElement(atom As Atom, host As IndirectObject)
ExtensionsElement(obj As IndirectObject)
ExtensionsElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ExtensionsElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ExtensionsElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the extensions dictionary object.

Notes

Represents the "Type" entry of the extensions dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Extensions".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25a, page 24.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 48, page 140.


ZZ Elements ExtensionsElement EntryADBE Property

EntryADBE Property

Type | Default Value | Read Only | Description
[C#] DeveloperExtensionsElement [Visual Basic] DeveloperExtensionsElement | null | No | Represents the "ADBE" entry of the extensions dictionary object.

Notes

Represents the "ADBE" entry of the extensions dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a DeveloperExtensionsElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 3.25a, page 24.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 48, page 140.


ZZ Elements ColorSpaceElement

ColorSpaceElement Class

This class represents a color space.

Sub-classes represent different types of color spaces.

Internally within a PDF document color spaces are represented as an array of values with the first element being the type of color space.

However as a shorthand, if there is only one element in the array, the name can be used without an enclosing array.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 62, page 139.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ColorSpaceElement
         WebSupergoo.ABCpdf12.Elements.CalGrayColorSpaceElement
         WebSupergoo.ABCpdf12.Elements.CalRGBColorSpaceElement
         WebSupergoo.ABCpdf12.Elements.DeviceColorSpaceElement
         WebSupergoo.ABCpdf12.Elements.DeviceNColorSpaceElement
         WebSupergoo.ABCpdf12.Elements.ICCBasedColorSpaceElement
         WebSupergoo.ABCpdf12.Elements.IndexedColorSpaceElement
         WebSupergoo.ABCpdf12.Elements.LabColorSpaceElement
         WebSupergoo.ABCpdf12.Elements.PatternColorSpaceElement
         WebSupergoo.ABCpdf12.Elements.SeparationColorSpaceElement

Method | Description
ColorSpaceElement | Create a new ColorSpaceElement.
 | inherited methods...

Property | Description
ColorSpace | This property represents the type of color space.
 | inherited properties...


ZZ Elements ColorSpaceElement Constructor Function

ColorSpaceElement Function

Create a new ColorSpaceElement.

Syntax

[C#]
ColorSpaceElement()
ColorSpaceElement(Atom atom, IndirectObject host)
ColorSpaceElement(IndirectObject obj)
ColorSpaceElement(Element relation, CreationOptions options)

[Visual Basic]
ColorSpaceElement()
ColorSpaceElement(atom As Atom, host As IndirectObject)
ColorSpaceElement(obj As IndirectObject)
ColorSpaceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ColorSpaceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ColorSpaceElement ColorSpace Property

ColorSpace Property

Type | Default Value | Read Only | Description
[C#] ColorSpaceType [Visual Basic] ColorSpaceType | null | Yes | This property represents the type of color space.

Notes

This property represents the type of color space.

It is a property of type ColorSpaceType.


ZZ Elements DeviceColorSpaceElement

DeviceColorSpaceElement Class

This class represents a device color space.

Device color spaces represent generic grayscale, RGB or CMYK outputs.

These types of color spaces represent physical quanties. So a grayscale value represents a literal amount of black ink on paper.

Because no color profile information is contained, device colors may vary between different outputs.

For example 50% copverage of one type of black ink on gloss paper may look different to 50% of another black ink on matte.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Section 8.6.4: 62, page 124.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ColorSpaceElement
         WebSupergoo.ABCpdf12.Elements.DeviceColorSpaceElement

Method | Description
DeviceColorSpaceElement | Create a new DeviceColorSpaceElement.
 | inherited methods...

Property | Description
 | inherited properties...


ZZ Elements DeviceColorSpaceElement Constructor Function

DeviceColorSpaceElement Function

Create a new DeviceColorSpaceElement.

Syntax

[C#]
DeviceColorSpaceElement()
DeviceColorSpaceElement(Atom atom, IndirectObject host)
DeviceColorSpaceElement(IndirectObject obj)
DeviceColorSpaceElement(Element relation, CreationOptions options)

[Visual Basic]
DeviceColorSpaceElement()
DeviceColorSpaceElement(atom As Atom, host As IndirectObject)
DeviceColorSpaceElement(obj As IndirectObject)
DeviceColorSpaceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new DeviceColorSpaceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements GraphicsStateParameterElement

GraphicsStateParameterElement Class

This class represents the graphics state parameter dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 128.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 162.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.GraphicsStateParameterElement

Method | Description
GraphicsStateParameterElement | Create a new GraphicsStateParameterElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the graphics state parameter dictionary object.
EntryLW | Represents the "LW" entry of the graphics state parameter dictionary object.
EntryLC | Represents the "LC" entry of the graphics state parameter dictionary object.
EntryLJ | Represents the "LJ" entry of the graphics state parameter dictionary object.
EntryML | Represents the "ML" entry of the graphics state parameter dictionary object.
EntryD | Represents the "D" entry of the graphics state parameter dictionary object.
EntryRI | Represents the "RI" entry of the graphics state parameter dictionary object.
EntryOP | Represents the "OP" entry of the graphics state parameter dictionary object.
Entry_op | Represents the "op" entry of the graphics state parameter dictionary object.
EntryOPM | Represents the "OPM" entry of the graphics state parameter dictionary object.
EntryFont | Represents the "Font" entry of the graphics state parameter dictionary object.
EntryBG | Represents the "BG" entry of the graphics state parameter dictionary object.
EntryBG2 | Represents the "BG2" entry of the graphics state parameter dictionary object.
EntryUCR | Represents the "UCR" entry of the graphics state parameter dictionary object.
EntryUCR2 | Represents the "UCR2" entry of the graphics state parameter dictionary object.
EntryTR | Represents the "TR" entry of the graphics state parameter dictionary object.
EntryTR2 | Represents the "TR2" entry of the graphics state parameter dictionary object.
EntryHT | Represents the "HT" entry of the graphics state parameter dictionary object.
EntryFL | Represents the "FL" entry of the graphics state parameter dictionary object.
EntrySM | Represents the "SM" entry of the graphics state parameter dictionary object.
EntrySA | Represents the "SA" entry of the graphics state parameter dictionary object.
EntryBM | Represents the "BM" entry of the graphics state parameter dictionary object.
EntrySMask | Represents the "SMask" entry of the graphics state parameter dictionary object.
EntryCA | Represents the "CA" entry of the graphics state parameter dictionary object.
Entry_ca | Represents the "ca" entry of the graphics state parameter dictionary object.
EntryAIS | Represents the "AIS" entry of the graphics state parameter dictionary object.
EntryTK | Represents the "TK" entry of the graphics state parameter dictionary object.
EntryUseBlackPtComp | Represents the "UseBlackPtComp" entry of the graphics state parameter dictionary object.
EntryHTO | Represents the "HTO" entry of the graphics state parameter dictionary object.
 | inherited properties...


ZZ Elements GraphicsStateParameterElement Constructor Function

GraphicsStateParameterElement Function

Create a new GraphicsStateParameterElement.

Syntax

[C#]
GraphicsStateParameterElement()
GraphicsStateParameterElement(Atom atom, IndirectObject host)
GraphicsStateParameterElement(IndirectObject obj)
GraphicsStateParameterElement(Element relation, CreationOptions options)

[Visual Basic]
GraphicsStateParameterElement()
GraphicsStateParameterElement(atom As Atom, host As IndirectObject)
GraphicsStateParameterElement(obj As IndirectObject)
GraphicsStateParameterElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new GraphicsStateParameterElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements GraphicsStateParameterElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the graphics state parameter dictionary object.

Notes

Represents the "Type" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "ExtGState".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 128.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 162.


ZZ Elements GraphicsStateParameterElement EntryLW Property

EntryLW Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "LW" entry of the graphics state parameter dictionary object.

Notes

Represents the "LW" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 128.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 162.


ZZ Elements GraphicsStateParameterElement EntryLC Property

EntryLC Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "LC" entry of the graphics state parameter dictionary object.

Notes

Represents the "LC" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 128.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 162.


ZZ Elements GraphicsStateParameterElement EntryLJ Property

EntryLJ Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "LJ" entry of the graphics state parameter dictionary object.

Notes

Represents the "LJ" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 128.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 162.


ZZ Elements GraphicsStateParameterElement EntryML Property

EntryML Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "ML" entry of the graphics state parameter dictionary object.

Notes

Represents the "ML" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 128.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 162.


ZZ Elements GraphicsStateParameterElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "D" entry of the graphics state parameter dictionary object.

Notes

Represents the "D" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 128.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 162.


ZZ Elements GraphicsStateParameterElement EntryRI Property

EntryRI Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "RI" entry of the graphics state parameter dictionary object.

Notes

Represents the "RI" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • AbsoluteColorimetric
  • RelativeColorimetric
  • Saturation
  • Perceptual

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 128.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 162.


ZZ Elements GraphicsStateParameterElement EntryOP Property

EntryOP Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "OP" entry of the graphics state parameter dictionary object.

Notes

Represents the "OP" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 129.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 162.


ZZ Elements GraphicsStateParameterElement Entry_op Property

Entry_op Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "op" entry of the graphics state parameter dictionary object.

Notes

Represents the "op" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 129.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 162.


ZZ Elements GraphicsStateParameterElement EntryOPM Property

EntryOPM Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "OPM" entry of the graphics state parameter dictionary object.

Notes

Represents the "OPM" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 129.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 162.


ZZ Elements GraphicsStateParameterElement EntryFont Property

EntryFont Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "Font" entry of the graphics state parameter dictionary object.

Notes

Represents the "Font" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 129.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 163.


ZZ Elements GraphicsStateParameterElement EntryBG Property

EntryBG Property

Type | Default Value | Read Only | Description
[C#] FunctionElement [Visual Basic] FunctionElement | null | No | Represents the "BG" entry of the graphics state parameter dictionary object.

Notes

Represents the "BG" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a FunctionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 129.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 163.


ZZ Elements GraphicsStateParameterElement EntryBG2 Property

EntryBG2 Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "BG2" entry of the graphics state parameter dictionary object.

Notes

Represents the "BG2" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

If provided, this item must always take the value "Default".

2) A FunctionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 129.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 163.


ZZ Elements GraphicsStateParameterElement EntryUCR Property

EntryUCR Property

Type | Default Value | Read Only | Description
[C#] FunctionElement [Visual Basic] FunctionElement | null | No | Represents the "UCR" entry of the graphics state parameter dictionary object.

Notes

Represents the "UCR" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a FunctionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 129.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 163.


ZZ Elements GraphicsStateParameterElement EntryUCR2 Property

EntryUCR2 Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "UCR2" entry of the graphics state parameter dictionary object.

Notes

Represents the "UCR2" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

If provided, this item must always take the value "Default".

2) A FunctionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 129.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 163.


ZZ Elements GraphicsStateParameterElement EntryTR Property

EntryTR Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "TR" entry of the graphics state parameter dictionary object.

Notes

Represents the "TR" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

This property may contain one of two different types:.

1) A string representing a PDF name object.

If provided, this item must always take the value "Identity".

2) An array which contains FunctionElements.

If you read the specification you will see that an array of one FunctionElement may be represented as a single FunctionElement rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 129.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 163.


ZZ Elements GraphicsStateParameterElement EntryTR2 Property

EntryTR2 Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "TR2" entry of the graphics state parameter dictionary object.

Notes

Represents the "TR2" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification. It was deprecated in PDF 2.0.

This property may contain one of two different types:.

1) A string representing a PDF name object.

This item may take one of the following valid values:.

  • Identity
  • Default
.

2) An array which contains FunctionElements.

If you read the specification you will see that an array of one FunctionElement may be represented as a single FunctionElement rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 129.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 163.


ZZ Elements GraphicsStateParameterElement EntryHT Property

EntryHT Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "HT" entry of the graphics state parameter dictionary object.

Notes

Represents the "HT" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

If provided, this item must always take the value "Default".

2) An HalftoneElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 129.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 163.


ZZ Elements GraphicsStateParameterElement EntryFL Property

EntryFL Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "FL" entry of the graphics state parameter dictionary object.

Notes

Represents the "FL" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 129.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 163.


ZZ Elements GraphicsStateParameterElement EntrySM Property

EntrySM Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "SM" entry of the graphics state parameter dictionary object.

Notes

Represents the "SM" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 129.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 163.


ZZ Elements GraphicsStateParameterElement EntrySA Property

EntrySA Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "SA" entry of the graphics state parameter dictionary object.

Notes

Represents the "SA" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 130.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 163.


ZZ Elements GraphicsStateParameterElement EntryBM Property

EntryBM Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "BM" entry of the graphics state parameter dictionary object.

Notes

Represents the "BM" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains an array which contains strings, representing PDF name objects.

Items in this array may take one of the following valid values:.

  • Normal
  • Compatible
  • Multiply
  • Screen
  • Overlay
  • Darken
  • Lighten
  • ColorDodge
  • ColorBurn
  • HardLight
  • SoftLight
  • Difference
  • Exclusion
  • Hue
  • Saturation
  • Color
  • Luminosity
.

If you read the specification you will see that an array of one string may be represented as a single string rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 130.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 163.


ZZ Elements GraphicsStateParameterElement EntrySMask Property

EntrySMask Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "SMask" entry of the graphics state parameter dictionary object.

Notes

Represents the "SMask" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

2) A SoftMaskElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 130.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 164.


ZZ Elements GraphicsStateParameterElement EntryCA Property

EntryCA Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "CA" entry of the graphics state parameter dictionary object.

Notes

Represents the "CA" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 130.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 164.


ZZ Elements GraphicsStateParameterElement Entry_ca Property

Entry_ca Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "ca" entry of the graphics state parameter dictionary object.

Notes

Represents the "ca" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 130.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 164.


ZZ Elements GraphicsStateParameterElement EntryAIS Property

EntryAIS Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "AIS" entry of the graphics state parameter dictionary object.

Notes

Represents the "AIS" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 130.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 164.


ZZ Elements GraphicsStateParameterElement EntryTK Property

EntryTK Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "TK" entry of the graphics state parameter dictionary object.

Notes

Represents the "TK" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 130.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 164.


ZZ Elements GraphicsStateParameterElement EntryUseBlackPtComp Property

EntryUseBlackPtComp Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "UseBlackPtComp" entry of the graphics state parameter dictionary object.

Notes

Represents the "UseBlackPtComp" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Default" if no value has been provided.

This item may take one of the following valid values:.

  • ON
  • OFF
  • Default

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 128.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 164.


ZZ Elements GraphicsStateParameterElement EntryHTO Property

EntryHTO Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "HTO" entry of the graphics state parameter dictionary object.

Notes

Represents the "HTO" entry of the graphics state parameter dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 58, page 128.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 57, page 164.


ZZ Elements CalGrayColorSpaceAttributesElement

CalGrayColorSpaceAttributesElement Class

This class represents the calgray colour space dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 63, page 145.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 62, page 183.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CalGrayColorSpaceAttributesElement

Method | Description
CalGrayColorSpaceAttributesElement | Create a new CalGrayColorSpaceAttributesElement.
 | inherited methods...

Property | Description
EntryWhitePoint | Represents the "WhitePoint" entry of the calgray colour space dictionary object.
EntryBlackPoint | Represents the "BlackPoint" entry of the calgray colour space dictionary object.
EntryGamma | Represents the "Gamma" entry of the calgray colour space dictionary object.
 | inherited properties...


ZZ Elements CalGrayColorSpaceAttributesElement Constructor Function

CalGrayColorSpaceAttributesElement Function

Create a new CalGrayColorSpaceAttributesElement.

Syntax

[C#]
CalGrayColorSpaceAttributesElement()
CalGrayColorSpaceAttributesElement(Atom atom, IndirectObject host)
CalGrayColorSpaceAttributesElement(IndirectObject obj)
CalGrayColorSpaceAttributesElement(Element relation, CreationOptions options)

[Visual Basic]
CalGrayColorSpaceAttributesElement()
CalGrayColorSpaceAttributesElement(atom As Atom, host As IndirectObject)
CalGrayColorSpaceAttributesElement(obj As IndirectObject)
CalGrayColorSpaceAttributesElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CalGrayColorSpaceAttributesElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CalGrayColorSpaceAttributesElement EntryWhitePoint Property

EntryWhitePoint Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "WhitePoint" entry of the calgray colour space dictionary object.

Notes

Represents the "WhitePoint" entry of the calgray colour space dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a positive value.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 63, page 145.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 62, page 183.


ZZ Elements CalGrayColorSpaceAttributesElement EntryBlackPoint Property

EntryBlackPoint Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "BlackPoint" entry of the calgray colour space dictionary object.

Notes

Represents the "BlackPoint" entry of the calgray colour space dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 63, page 145.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 62, page 183.


ZZ Elements CalGrayColorSpaceAttributesElement EntryGamma Property

EntryGamma Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Gamma" entry of the calgray colour space dictionary object.

Notes

Represents the "Gamma" entry of the calgray colour space dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

It should have a positive value.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 63, page 145.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 62, page 183.


ZZ Elements CalGrayColorSpaceElement

CalGrayColorSpaceElement Class

This class represents the calibrated gray color space.

Calibrated color spaces specify values which are device independent and more akin to the way we perceive colors.

The result is that, within the limits of an output device, calibrated colors will appear the same even when displayed on different devices.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 63, page 145.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ColorSpaceElement
         WebSupergoo.ABCpdf12.Elements.CalGrayColorSpaceElement

Method | Description
CalGrayColorSpaceElement | Create a new CalGrayColorSpaceElement.
 | inherited methods...

Property | Description
EntryAttributes | This property represents the parameters that characterize this device independent color space.
 | inherited properties...


ZZ Elements CalGrayColorSpaceElement Constructor Function

CalGrayColorSpaceElement Function

Create a new CalGrayColorSpaceElement.

Syntax

[C#]
CalGrayColorSpaceElement()
CalGrayColorSpaceElement(Atom atom, IndirectObject host)
CalGrayColorSpaceElement(IndirectObject obj)
CalGrayColorSpaceElement(Element relation, CreationOptions options)

[Visual Basic]
CalGrayColorSpaceElement()
CalGrayColorSpaceElement(atom As Atom, host As IndirectObject)
CalGrayColorSpaceElement(obj As IndirectObject)
CalGrayColorSpaceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CalGrayColorSpaceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CalGrayColorSpaceElement EntryAttributes Property

EntryAttributes Property

Type | Default Value | Read Only | Description
[C#] CalGrayColorSpaceAttributesElement [Visual Basic] CalGrayColorSpaceAttributesElement | null | No | This property represents the parameters that characterize this device independent color space.

Notes

This property represents the parameters that characterize this device independent color space.

It is defined as part of the PDF 1.1 specification.

A CalGrayColorSpaceAttributesElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 145.


ZZ Elements CalRGBColorSpaceAttributesElement

CalRGBColorSpaceAttributesElement Class

This class represents the calrgb colour space dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 64, page 146.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 63, page 184.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CalRGBColorSpaceAttributesElement

Method | Description
CalRGBColorSpaceAttributesElement | Create a new CalRGBColorSpaceAttributesElement.
 | inherited methods...

Property | Description
EntryWhitePoint | Represents the "WhitePoint" entry of the calrgb colour space dictionary object.
EntryBlackPoint | Represents the "BlackPoint" entry of the calrgb colour space dictionary object.
EntryGamma | Represents the "Gamma" entry of the calrgb colour space dictionary object.
EntryMatrix | Represents the "Matrix" entry of the calrgb colour space dictionary object.
 | inherited properties...


ZZ Elements CalRGBColorSpaceAttributesElement Constructor Function

CalRGBColorSpaceAttributesElement Function

Create a new CalRGBColorSpaceAttributesElement.

Syntax

[C#]
CalRGBColorSpaceAttributesElement()
CalRGBColorSpaceAttributesElement(Atom atom, IndirectObject host)
CalRGBColorSpaceAttributesElement(IndirectObject obj)
CalRGBColorSpaceAttributesElement(Element relation, CreationOptions options)

[Visual Basic]
CalRGBColorSpaceAttributesElement()
CalRGBColorSpaceAttributesElement(atom As Atom, host As IndirectObject)
CalRGBColorSpaceAttributesElement(obj As IndirectObject)
CalRGBColorSpaceAttributesElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CalRGBColorSpaceAttributesElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CalRGBColorSpaceAttributesElement EntryWhitePoint Property

EntryWhitePoint Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "WhitePoint" entry of the calrgb colour space dictionary object.

Notes

Represents the "WhitePoint" entry of the calrgb colour space dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a positive value.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 64, page 146.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 63, page 184.


ZZ Elements CalRGBColorSpaceAttributesElement EntryBlackPoint Property

EntryBlackPoint Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "BlackPoint" entry of the calrgb colour space dictionary object.

Notes

Represents the "BlackPoint" entry of the calrgb colour space dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 64, page 146.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 63, page 184.


ZZ Elements CalRGBColorSpaceAttributesElement EntryGamma Property

EntryGamma Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Gamma" entry of the calrgb colour space dictionary object.

Notes

Represents the "Gamma" entry of the calrgb colour space dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 64, page 146.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 63, page 184.


ZZ Elements CalRGBColorSpaceAttributesElement EntryMatrix Property

EntryMatrix Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Matrix" entry of the calrgb colour space dictionary object.

Notes

Represents the "Matrix" entry of the calrgb colour space dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 64, page 146.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 63, page 184.


ZZ Elements CalRGBColorSpaceElement

CalRGBColorSpaceElement Class

This class represents the calibrated RGB color space.

Calibrated color spaces specify values which are device independent and more akin to the way we perceive colors.

The result is that, within the limits of an ouput device, calibrated colors will appear the same even when displayed on different devices.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 64, page 146.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ColorSpaceElement
         WebSupergoo.ABCpdf12.Elements.CalRGBColorSpaceElement

Method | Description
CalRGBColorSpaceElement | Create a new CalRGBColorSpaceElement.
 | inherited methods...

Property | Description
EntryAttributes | This property represents the parameters that characterize this device independent color space.
 | inherited properties...


ZZ Elements CalRGBColorSpaceElement Constructor Function

CalRGBColorSpaceElement Function

Create a new CalRGBColorSpaceElement.

Syntax

[C#]
CalRGBColorSpaceElement()
CalRGBColorSpaceElement(Atom atom, IndirectObject host)
CalRGBColorSpaceElement(IndirectObject obj)
CalRGBColorSpaceElement(Element relation, CreationOptions options)

[Visual Basic]
CalRGBColorSpaceElement()
CalRGBColorSpaceElement(atom As Atom, host As IndirectObject)
CalRGBColorSpaceElement(obj As IndirectObject)
CalRGBColorSpaceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CalRGBColorSpaceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CalRGBColorSpaceElement EntryAttributes Property

EntryAttributes Property

Type | Default Value | Read Only | Description
[C#] CalRGBColorSpaceAttributesElement [Visual Basic] CalRGBColorSpaceAttributesElement | null | No | This property represents the parameters that characterize this device independent color space.

Notes

This property represents the parameters that characterize this device independent color space.

It is defined as part of the PDF 1.0 specification.

A CalRGBColorSpaceAttributesElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 146.


ZZ Elements ICCBasedColorSpaceElement

ICCBasedColorSpaceElement Class

This class represents an ICC calibrated color space.

Calibrated color spaces specify values which are device independent and more akin to the way we perceive colors.

The result is that, within the limits of an output device, calibrated colors will appear the same even when displayed on different devices.

The International Color Consortium (ICC) defines standards for cross-platform, standardized, calibrated color spaces.

ICC color spaces encompass a wide range of color spaces with characteristics contained in a color profile data package.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 66, page 149.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ColorSpaceElement
         WebSupergoo.ABCpdf12.Elements.ICCBasedColorSpaceElement

Method | Description
ICCBasedColorSpaceElement | Create a new ICCBasedColorSpaceElement.
 | inherited methods...

Property | Description
EntryAttributes | This property represents the parameters that characterize this device independent color space.
 | inherited properties...


ZZ Elements ICCBasedColorSpaceElement Constructor Function

ICCBasedColorSpaceElement Function

Create a new ICCBasedColorSpaceElement.

Syntax

[C#]
ICCBasedColorSpaceElement()
ICCBasedColorSpaceElement(Atom atom, IndirectObject host)
ICCBasedColorSpaceElement(IndirectObject obj)
ICCBasedColorSpaceElement(Element relation, CreationOptions options)

[Visual Basic]
ICCBasedColorSpaceElement()
ICCBasedColorSpaceElement(atom As Atom, host As IndirectObject)
ICCBasedColorSpaceElement(obj As IndirectObject)
ICCBasedColorSpaceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ICCBasedColorSpaceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ICCBasedColorSpaceElement EntryAttributes Property

EntryAttributes Property

Type | Default Value | Read Only | Description
[C#] ICCProfileStreamElement [Visual Basic] ICCProfileStreamElement | null | No | This property represents the parameters that characterize this device independent color space.

Notes

This property represents the parameters that characterize this device independent color space.

It is defined as part of the PDF 1.3 specification.

A ICCBasedColorSpaceAttributesElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 148.


ZZ Elements LabColorSpaceAttributesElement

LabColorSpaceAttributesElement Class

This class represents the lab colour space dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 65, page 148.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 64, page 186.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.LabColorSpaceAttributesElement

Method | Description
LabColorSpaceAttributesElement | Create a new LabColorSpaceAttributesElement.
 | inherited methods...

Property | Description
EntryWhitePoint | Represents the "WhitePoint" entry of the lab colour space dictionary object.
EntryBlackPoint | Represents the "BlackPoint" entry of the lab colour space dictionary object.
EntryRange | Represents the "Range" entry of the lab colour space dictionary object.
 | inherited properties...


ZZ Elements LabColorSpaceAttributesElement Constructor Function

LabColorSpaceAttributesElement Function

Create a new LabColorSpaceAttributesElement.

Syntax

[C#]
LabColorSpaceAttributesElement()
LabColorSpaceAttributesElement(Atom atom, IndirectObject host)
LabColorSpaceAttributesElement(IndirectObject obj)
LabColorSpaceAttributesElement(Element relation, CreationOptions options)

[Visual Basic]
LabColorSpaceAttributesElement()
LabColorSpaceAttributesElement(atom As Atom, host As IndirectObject)
LabColorSpaceAttributesElement(obj As IndirectObject)
LabColorSpaceAttributesElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new LabColorSpaceAttributesElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements LabColorSpaceAttributesElement EntryWhitePoint Property

EntryWhitePoint Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "WhitePoint" entry of the lab colour space dictionary object.

Notes

Represents the "WhitePoint" entry of the lab colour space dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a positive value.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 65, page 148.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 64, page 186.


ZZ Elements LabColorSpaceAttributesElement EntryBlackPoint Property

EntryBlackPoint Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "BlackPoint" entry of the lab colour space dictionary object.

Notes

Represents the "BlackPoint" entry of the lab colour space dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 65, page 148.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 64, page 186.


ZZ Elements LabColorSpaceAttributesElement EntryRange Property

EntryRange Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Range" entry of the lab colour space dictionary object.

Notes

Represents the "Range" entry of the lab colour space dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 65, page 148.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 64, page 186.


ZZ Elements LabColorSpaceElement

LabColorSpaceElement Class

This class represents the Lab color space - a CIE based calibrated space.

Calibrated color spaces specify values which are device independent and more akin to the way we perceive colors.

The result is that, within the limits of an output device, calibrated colors will appear the same even when displayed on different devices.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 65, page 148.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ColorSpaceElement
         WebSupergoo.ABCpdf12.Elements.LabColorSpaceElement

Method | Description
LabColorSpaceElement | Create a new LabColorSpaceElement.
 | inherited methods...

Property | Description
EntryAttributes | This property represents the parameters that characterize this device independent color space.
 | inherited properties...


ZZ Elements LabColorSpaceElement Constructor Function

LabColorSpaceElement Function

Create a new LabColorSpaceElement.

Syntax

[C#]
LabColorSpaceElement()
LabColorSpaceElement(Atom atom, IndirectObject host)
LabColorSpaceElement(IndirectObject obj)
LabColorSpaceElement(Element relation, CreationOptions options)

[Visual Basic]
LabColorSpaceElement()
LabColorSpaceElement(atom As Atom, host As IndirectObject)
LabColorSpaceElement(obj As IndirectObject)
LabColorSpaceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new LabColorSpaceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements LabColorSpaceElement EntryAttributes Property

EntryAttributes Property

Type | Default Value | Read Only | Description
[C#] LabColorSpaceAttributesElement [Visual Basic] LabColorSpaceAttributesElement | null | No | This property represents the parameters that characterize this device independent color space.

Notes

This property represents the parameters that characterize this device independent color space.

It is defined as part of the PDF 1.0 specification.

A LabColorSpaceAttributesElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 148.


ZZ Elements ICCProfileStreamElement

ICCProfileStreamElement Class

This class represents the icc profile stream dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 66, page 149.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 65, page 188.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ICCProfileStreamElement

Method | Description
ICCProfileStreamElement | Create a new ICCProfileStreamElement.
 | inherited methods...

Property | Description
StreamElement | The StreamElement associated with this class.
EntryN | Represents the "N" entry of the icc profile stream dictionary object.
EntryAlternate | Represents the "Alternate" entry of the icc profile stream dictionary object.
EntryRange | Represents the "Range" entry of the icc profile stream dictionary object.
 | inherited properties...


ZZ Elements ICCProfileStreamElement Constructor Function

ICCProfileStreamElement Function

Create a new ICCProfileStreamElement.

Syntax

[C#]
ICCProfileStreamElement()
ICCProfileStreamElement(Atom atom, IndirectObject host)
ICCProfileStreamElement(IndirectObject obj)
ICCProfileStreamElement(Element relation, CreationOptions options)

[Visual Basic]
ICCProfileStreamElement()
ICCProfileStreamElement(atom As Atom, host As IndirectObject)
ICCProfileStreamElement(obj As IndirectObject)
ICCProfileStreamElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ICCProfileStreamElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ICCProfileStreamElement StreamElement Property

StreamElement Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | Yes | The StreamElement associated with this class.

Notes

The StreamElement associated with this class.


ZZ Elements ICCProfileStreamElement EntryN Property

EntryN Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "N" entry of the icc profile stream dictionary object.

Notes

Represents the "N" entry of the icc profile stream dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 66, page 149.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 65, page 188.


ZZ Elements ICCProfileStreamElement EntryAlternate Property

EntryAlternate Property

Type | Default Value | Read Only | Description
[C#] ColorSpaceElement [Visual Basic] ColorSpaceElement | null | No | Represents the "Alternate" entry of the icc profile stream dictionary object.

Notes

Represents the "Alternate" entry of the icc profile stream dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a ColorSpaceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 66, page 150.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 65, page 188.


ZZ Elements ICCProfileStreamElement EntryRange Property

EntryRange Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Range" entry of the icc profile stream dictionary object.

Notes

Represents the "Range" entry of the icc profile stream dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 66, page 150.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 65, page 188.


ZZ Elements IndexedColorSpaceElement

IndexedColorSpaceElement Class

This class represents an indexed color space.

Indexed color spaces represent a set of colors from a palette. Each color is identified using an index into the palette.

The palette itself needs to be defined in terms of another color space such as DeviceRGB or DeviceCMYK. So in many ways an indexed color space is a meta color space.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Section: 8.6.6.3, page 156.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ColorSpaceElement
         WebSupergoo.ABCpdf12.Elements.IndexedColorSpaceElement

Method | Description
IndexedColorSpaceElement | Create a new IndexedColorSpaceElement.
 | inherited methods...

Property | Description
EntryBaseColorSpace | This property represents the underlying color space for this Indexed color space.
EntryHiVal | This property represents the highest number used to index into the palette.
EntryLookup | This property represents the lookup table for the palette.
 | inherited properties...


ZZ Elements IndexedColorSpaceElement Constructor Function

IndexedColorSpaceElement Function

Create a new IndexedColorSpaceElement.

Syntax

[C#]
IndexedColorSpaceElement()
IndexedColorSpaceElement(Atom atom, IndirectObject host)
IndexedColorSpaceElement(IndirectObject obj)
IndexedColorSpaceElement(Element relation, CreationOptions options)

[Visual Basic]
IndexedColorSpaceElement()
IndexedColorSpaceElement(atom As Atom, host As IndirectObject)
IndexedColorSpaceElement(obj As IndirectObject)
IndexedColorSpaceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new IndexedColorSpaceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements IndexedColorSpaceElement EntryBaseColorSpace Property

EntryBaseColorSpace Property

Type | Default Value | Read Only | Description
[C#] ColorSpaceElement [Visual Basic] ColorSpaceElement | null | No | This property represents the underlying color space for this Indexed color space.

Notes

This property represents the underlying color space for this Indexed color space.

It is defined as part of the PDF 1.0 specification.

A ColorSpaceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 156.


ZZ Elements IndexedColorSpaceElement EntryHiVal Property

EntryHiVal Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | This property represents the highest number used to index into the palette.

Notes

This property represents the highest number used to index into the palette.

It is defined as part of the PDF 1.0 specification.

An positive integer no higher than 255.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 156.


ZZ Elements IndexedColorSpaceElement EntryLookup Property

EntryLookup Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | This property represents the lookup table for the palette.

Notes

This property represents the lookup table for the palette.

The lookup may be represented as a StreamElement or (in PDF 1.2) a byte string.

The table shall contain a number of colors one higher than the EntryHiVal.

Each color shall contain a number of byes equal to the number of components in the EntryBaseColorSpace.

Each byte represents an intensity of color from 0 to 255 - 0% to 100% respectively.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 156.


ZZ Elements SeparationColorSpaceElement

SeparationColorSpaceElement Class

This class represents a separation color space.

A separation color space represents a single custom color. Most typically these are spot colors used in printing.

For example the conventional color space for printing is CMYK and for that you can use the DeviceCMYK color space.

However you might wish to add support for a custom ink like gold or silver which will print correctly when passed to a printer which supports this ink.

The separation color space includes a conversion function so that it will also provide a good representation on screen and on normal CMYK printers.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Section: 8.6.6.4, page 157.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ColorSpaceElement
         WebSupergoo.ABCpdf12.Elements.SeparationColorSpaceElement

Method | Description
SeparationColorSpaceElement | Create a new SeparationColorSpaceElement.
 | inherited methods...

Property | Description
EntryName | This property represents the name of the separation color space.
EntryAlternateColorSpace | This property represents the alternate color space for this Separation color space.
EntryTintTransform | This property represents the tint transform function.
 | inherited properties...


ZZ Elements SeparationColorSpaceElement Constructor Function

SeparationColorSpaceElement Function

Create a new SeparationColorSpaceElement.

Syntax

[C#]
SeparationColorSpaceElement()
SeparationColorSpaceElement(Atom atom, IndirectObject host)
SeparationColorSpaceElement(IndirectObject obj)
SeparationColorSpaceElement(Element relation, CreationOptions options)

[Visual Basic]
SeparationColorSpaceElement()
SeparationColorSpaceElement(atom As Atom, host As IndirectObject)
SeparationColorSpaceElement(obj As IndirectObject)
SeparationColorSpaceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SeparationColorSpaceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements SeparationColorSpaceElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | This property represents the name of the separation color space.

Notes

This property represents the name of the separation color space.

The name is an arbitrary value such as "Flame" which intended for human readability.

It may also take the special values "All" or "None".

The former means all available colorants on an output device while the latter means none of them.

As such the value "All" will typically output rich black and the latter will output nothing.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 157.


ZZ Elements SeparationColorSpaceElement EntryAlternateColorSpace Property

EntryAlternateColorSpace Property

Type | Default Value | Read Only | Description
[C#] ColorSpaceElement [Visual Basic] ColorSpaceElement | null | No | This property represents the alternate color space for this Separation color space.

Notes

This property represents the alternate color space for this Separation color space.

A ColorSpaceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 156.


ZZ Elements SeparationColorSpaceElement EntryTintTransform Property

EntryTintTransform Property

Type | Default Value | Read Only | Description
[C#] FunctionElement [Visual Basic] FunctionElement | null | No | This property represents the tint transform function.

Notes

This property represents the tint transform function.

The function is used to map color values in the Separation color space into color values in the EntryAlternateColorSpace color space.

The function should be called with the tint value and should return a number of components in the alternate color space.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 156.


ZZ Elements DeviceNColorSpaceElement

DeviceNColorSpaceElement Class

This class represents a DeviceN or multi-separation color space.

A DeviceN color space represents a set of custom colors. Most typically these are spot colors used in printing.

For example the conventional color space for printing is CMYK and for that you can use the DeviceCMYK color space.

However processes like Hexachrome added orange and green inks to better represent a wider range of colors.

Using a DeviceN color space you can specify a CMYKOG color space which will print correctly on a Hexachrome printer.

The DeviceN color space includes a conversion function so that it will also provide a good representation on screen and on normal CMYK printers.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Section: 8.6.6.5, page 159.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ColorSpaceElement
         WebSupergoo.ABCpdf12.Elements.DeviceNColorSpaceElement

Method | Description
DeviceNColorSpaceElement | Create a new DeviceNColorSpaceElement.
 | inherited methods...

Property | Description
EntryNames | This property represents the names of the colors within the DeviceN color space.
EntryAlternateColorSpace | This property represents the alternate color space for this DeviceN color space.
EntryTintTransform | This property represents the tint transform function.
EntryAttributes | This property represents addition attributes specific to this color space.
 | inherited properties...


ZZ Elements DeviceNColorSpaceElement Constructor Function

DeviceNColorSpaceElement Function

Create a new DeviceNColorSpaceElement.

Syntax

[C#]
DeviceNColorSpaceElement()
DeviceNColorSpaceElement(Atom atom, IndirectObject host)
DeviceNColorSpaceElement(IndirectObject obj)
DeviceNColorSpaceElement(Element relation, CreationOptions options)

[Visual Basic]
DeviceNColorSpaceElement()
DeviceNColorSpaceElement(atom As Atom, host As IndirectObject)
DeviceNColorSpaceElement(obj As IndirectObject)
DeviceNColorSpaceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new DeviceNColorSpaceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements DeviceNColorSpaceElement EntryNames Property

EntryNames Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | This property represents the names of the colors within the DeviceN color space.

Notes

This property represents the names of the colors within the DeviceN color space.

The names are arbitrary values such as "Seabreeze" which are intended for human readability.

These may include the special value "None" which indicates no color, but may not include the special value "All".

Each name should be unique, with the exception of the special value "None" which may be repeated.

For definitive details see:.

  • The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 160.


ZZ Elements DeviceNColorSpaceElement EntryAlternateColorSpace Property

EntryAlternateColorSpace Property

Type | Default Value | Read Only | Description
[C#] ColorSpaceElement [Visual Basic] ColorSpaceElement | null | No | This property represents the alternate color space for this DeviceN color space.

Notes

This property represents the alternate color space for this DeviceN color space.

A ColorSpaceElement.

For definitive details see:.

  • The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 160.


ZZ Elements DeviceNColorSpaceElement EntryTintTransform Property

EntryTintTransform Property

Type | Default Value | Read Only | Description
[C#] FunctionElement [Visual Basic] FunctionElement | null | No | This property represents the tint transform function.

Notes

This property represents the tint transform function.

The function is used to map color values in the DeviceN color space into color values in the EntryAlternateColorSpace color space.

The function should be called with the tint value and should return a number of components in the alternate color space.

For definitive details see:.

  • The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 160.


ZZ Elements DeviceNColorSpaceElement EntryAttributes Property

EntryAttributes Property

Type | Default Value | Read Only | Description
[C#] DeviceNColorSpaceAttributesElement [Visual Basic] DeviceNColorSpaceAttributesElement | null | No | This property represents addition attributes specific to this color space.

Notes

This property represents addition attributes specific to this color space.

For definitive details see:.

  • The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 160.


ZZ Elements DeviceNColorSpaceAttributesElement

DeviceNColorSpaceAttributesElement Class

This class represents the devicen colour space attributes dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 71, page 161.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 70, page 203.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.DeviceNColorSpaceAttributesElement

Method | Description
DeviceNColorSpaceAttributesElement | Create a new DeviceNColorSpaceAttributesElement.
 | inherited methods...

Property | Description
EntrySubtype | Represents the "Subtype" entry of the devicen colour space attributes dictionary object.
EntryColorants | Represents the "Colorants" entry of the devicen colour space attributes dictionary object.
EntryProcess | Represents the "Process" entry of the devicen colour space attributes dictionary object.
EntryMixingHints | Represents the "MixingHints" entry of the devicen colour space attributes dictionary object.
 | inherited properties...


ZZ Elements DeviceNColorSpaceAttributesElement Constructor Function

DeviceNColorSpaceAttributesElement Function

Create a new DeviceNColorSpaceAttributesElement.

Syntax

[C#]
DeviceNColorSpaceAttributesElement()
DeviceNColorSpaceAttributesElement(Atom atom, IndirectObject host)
DeviceNColorSpaceAttributesElement(IndirectObject obj)
DeviceNColorSpaceAttributesElement(Element relation, CreationOptions options)

[Visual Basic]
DeviceNColorSpaceAttributesElement()
DeviceNColorSpaceAttributesElement(atom As Atom, host As IndirectObject)
DeviceNColorSpaceAttributesElement(obj As IndirectObject)
DeviceNColorSpaceAttributesElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new DeviceNColorSpaceAttributesElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements DeviceNColorSpaceAttributesElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the devicen colour space attributes dictionary object.

Notes

Represents the "Subtype" entry of the devicen colour space attributes dictionary object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "DeviceN" if no value has been provided.

This item may take one of the following valid values:.

  • DeviceN
  • NChannel

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 71, page 161.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 70, page 203.


ZZ Elements DeviceNColorSpaceAttributesElement EntryColorants Property

EntryColorants Property

Type | Default Value | Read Only | Description
[C#] DictElement<ColorSpaceElement> [Visual Basic] DictElement<ColorSpaceElement> | null | No | Represents the "Colorants" entry of the devicen colour space attributes dictionary object.

Notes

Represents the "Colorants" entry of the devicen colour space attributes dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 71, page 162.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 70, page 204.


ZZ Elements DeviceNColorSpaceAttributesElement EntryProcess Property

EntryProcess Property

Type | Default Value | Read Only | Description
[C#] DeviceNProcessElement [Visual Basic] DeviceNProcessElement | null | No | Represents the "Process" entry of the devicen colour space attributes dictionary object.

Notes

Represents the "Process" entry of the devicen colour space attributes dictionary object.

It is defined as part of the PDF 1.6 specification.

It contains a DeviceNProcessElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 71, page 162.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 70, page 204.


ZZ Elements DeviceNColorSpaceAttributesElement EntryMixingHints Property

EntryMixingHints Property

Type | Default Value | Read Only | Description
[C#] DeviceNMixingHintsElement [Visual Basic] DeviceNMixingHintsElement | null | No | Represents the "MixingHints" entry of the devicen colour space attributes dictionary object.

Notes

Represents the "MixingHints" entry of the devicen colour space attributes dictionary object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a DeviceNMixingHintsElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 71, page 162.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 70, page 204.


ZZ Elements DeviceNMixingHintsElement

DeviceNMixingHintsElement Class

This class represents the devicen mixing hints dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 73, page 163.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 72, page 206.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.DeviceNMixingHintsElement

Method | Description
DeviceNMixingHintsElement | Create a new DeviceNMixingHintsElement.
 | inherited methods...

Property | Description
EntrySolidities | Represents the "Solidities" entry of the devicen mixing hints dictionary object.
EntryPrintingOrder | Represents the "PrintingOrder" entry of the devicen mixing hints dictionary object.
EntryDotGain | Represents the "DotGain" entry of the devicen mixing hints dictionary object.
 | inherited properties...


ZZ Elements DeviceNMixingHintsElement Constructor Function

DeviceNMixingHintsElement Function

Create a new DeviceNMixingHintsElement.

Syntax

[C#]
DeviceNMixingHintsElement()
DeviceNMixingHintsElement(Atom atom, IndirectObject host)
DeviceNMixingHintsElement(IndirectObject obj)
DeviceNMixingHintsElement(Element relation, CreationOptions options)

[Visual Basic]
DeviceNMixingHintsElement()
DeviceNMixingHintsElement(atom As Atom, host As IndirectObject)
DeviceNMixingHintsElement(obj As IndirectObject)
DeviceNMixingHintsElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new DeviceNMixingHintsElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements DeviceNMixingHintsElement EntrySolidities Property

EntrySolidities Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Solidities" entry of the devicen mixing hints dictionary object.

Notes

Represents the "Solidities" entry of the devicen mixing hints dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 73, page 163.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 72, page 206.


ZZ Elements DeviceNMixingHintsElement EntryPrintingOrder Property

EntryPrintingOrder Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "PrintingOrder" entry of the devicen mixing hints dictionary object.

Notes

Represents the "PrintingOrder" entry of the devicen mixing hints dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF name objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 73, page 163.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 72, page 206.


ZZ Elements DeviceNMixingHintsElement EntryDotGain Property

EntryDotGain Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "DotGain" entry of the devicen mixing hints dictionary object.

Notes

Represents the "DotGain" entry of the devicen mixing hints dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 73, page 164.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 72, page 206.


ZZ Elements DeviceNProcessElement

DeviceNProcessElement Class

This class represents the devicen process dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 72, page 163.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 71, page 205.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.DeviceNProcessElement

Method | Description
DeviceNProcessElement | Create a new DeviceNProcessElement.
 | inherited methods...

Property | Description
EntryColorSpace | Represents the "ColorSpace" entry of the devicen process dictionary object.
EntryComponents | Represents the "Components" entry of the devicen process dictionary object.
 | inherited properties...


ZZ Elements DeviceNProcessElement Constructor Function

DeviceNProcessElement Function

Create a new DeviceNProcessElement.

Syntax

[C#]
DeviceNProcessElement()
DeviceNProcessElement(Atom atom, IndirectObject host)
DeviceNProcessElement(IndirectObject obj)
DeviceNProcessElement(Element relation, CreationOptions options)

[Visual Basic]
DeviceNProcessElement()
DeviceNProcessElement(atom As Atom, host As IndirectObject)
DeviceNProcessElement(obj As IndirectObject)
DeviceNProcessElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new DeviceNProcessElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements DeviceNProcessElement EntryColorSpace Property

EntryColorSpace Property

Type | Default Value | Read Only | Description
[C#] ColorSpaceElement [Visual Basic] ColorSpaceElement | null | No | Represents the "ColorSpace" entry of the devicen process dictionary object.

Notes

Represents the "ColorSpace" entry of the devicen process dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a ColorSpaceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 72, page 163.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 71, page 205.


ZZ Elements DeviceNProcessElement EntryComponents Property

EntryComponents Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Components" entry of the devicen process dictionary object.

Notes

Represents the "Components" entry of the devicen process dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF name objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 72, page 163.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 71, page 205.


ZZ Elements PatternElement

PatternElement Class

This class represents the pattern dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 173.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.PatternElement
         WebSupergoo.ABCpdf12.Elements.Type1PatternElement
         WebSupergoo.ABCpdf12.Elements.Type2PatternElement

Method | Description
PatternElement | Create a new PatternElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the pattern dictionary object.
 | inherited properties...


ZZ Elements PatternElement Constructor Function

PatternElement Function

Create a new PatternElement.

Syntax

[C#]
PatternElement()
PatternElement(Atom atom, IndirectObject host)
PatternElement(IndirectObject obj)
PatternElement(Element relation, CreationOptions options)

[Visual Basic]
PatternElement()
PatternElement(atom As Atom, host As IndirectObject)
PatternElement(obj As IndirectObject)
PatternElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new PatternElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements PatternElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the pattern dictionary object.

Notes

Represents the "Type" entry of the pattern dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Pattern".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 173.


ZZ Elements Type1PatternElement

Type1PatternElement Class

This class represents the type 1 pattern dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 75, page 174.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 74, page 218.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.PatternElement
         WebSupergoo.ABCpdf12.Elements.Type1PatternElement

Method | Description
Type1PatternElement | Create a new Type1PatternElement.
 | inherited methods...

Property | Description
StreamElement | The StreamElement associated with this class.
EntryPatternType | Represents the "PatternType" entry of the type 1 pattern dictionary object.
EntryPaintType | Represents the "PaintType" entry of the type 1 pattern dictionary object.
EntryTilingType | Represents the "TilingType" entry of the type 1 pattern dictionary object.
EntryBBox | Represents the "BBox" entry of the type 1 pattern dictionary object.
EntryXStep | Represents the "XStep" entry of the type 1 pattern dictionary object.
EntryYStep | Represents the "YStep" entry of the type 1 pattern dictionary object.
EntryResources | Represents the "Resources" entry of the type 1 pattern dictionary object.
EntryMatrix | Represents the "Matrix" entry of the type 1 pattern dictionary object.
 | inherited properties...


ZZ Elements Type1PatternElement Constructor Function

Type1PatternElement Function

Create a new Type1PatternElement.

Syntax

[C#]
Type1PatternElement()
Type1PatternElement(Atom atom, IndirectObject host)
Type1PatternElement(IndirectObject obj)
Type1PatternElement(Element relation, CreationOptions options)

[Visual Basic]
Type1PatternElement()
Type1PatternElement(atom As Atom, host As IndirectObject)
Type1PatternElement(obj As IndirectObject)
Type1PatternElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type1PatternElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type1PatternElement StreamElement Property

StreamElement Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | Yes | The StreamElement associated with this class.

Notes

The StreamElement associated with this class.


ZZ Elements Type1PatternElement EntryPatternType Property

EntryPatternType Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "PatternType" entry of the type 1 pattern dictionary object.

Notes

Represents the "PatternType" entry of the type 1 pattern dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

This item must always be provided and must always take the value "1".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 75, page 174.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 74, page 218.


ZZ Elements Type1PatternElement EntryPaintType Property

EntryPaintType Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "PaintType" entry of the type 1 pattern dictionary object.

Notes

Represents the "PaintType" entry of the type 1 pattern dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 75, page 175.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 74, page 218.


ZZ Elements Type1PatternElement EntryTilingType Property

EntryTilingType Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "TilingType" entry of the type 1 pattern dictionary object.

Notes

Represents the "TilingType" entry of the type 1 pattern dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 75, page 175.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 74, page 218.


ZZ Elements Type1PatternElement EntryBBox Property

EntryBBox Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "BBox" entry of the type 1 pattern dictionary object.

Notes

Represents the "BBox" entry of the type 1 pattern dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 75, page 175.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 74, page 218.


ZZ Elements Type1PatternElement EntryXStep Property

EntryXStep Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "XStep" entry of the type 1 pattern dictionary object.

Notes

Represents the "XStep" entry of the type 1 pattern dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 75, page 175.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 74, page 218.


ZZ Elements Type1PatternElement EntryYStep Property

EntryYStep Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "YStep" entry of the type 1 pattern dictionary object.

Notes

Represents the "YStep" entry of the type 1 pattern dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

It should have a positive value.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 75, page 175.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 74, page 218.


ZZ Elements Type1PatternElement EntryResources Property

EntryResources Property

Type | Default Value | Read Only | Description
[C#] ResourceElement [Visual Basic] ResourceElement | null | No | Represents the "Resources" entry of the type 1 pattern dictionary object.

Notes

Represents the "Resources" entry of the type 1 pattern dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a ResourceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 75, page 175.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 74, page 219.


ZZ Elements Type1PatternElement EntryMatrix Property

EntryMatrix Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Matrix" entry of the type 1 pattern dictionary object.

Notes

Represents the "Matrix" entry of the type 1 pattern dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 75, page 175.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 74, page 219.


ZZ Elements PatternColorSpaceElement

PatternColorSpaceElement Class

This class represents a pattern color space.

A pattern color space allows an area to be painted using a pattern of multiple colors rather than one single color.

Tiling patterns allow one image to be tiled across the area that needs painting.

Shading patterns allow a gradient to be painted across the area.

This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Section: 8.6.6.2, page 156.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ColorSpaceElement
         WebSupergoo.ABCpdf12.Elements.PatternColorSpaceElement

Method | Description
PatternColorSpaceElement | Create a new PatternColorSpaceElement.
 | inherited methods...

Property | Description
EntryUnderlyingColorSpace | This property represents the underlying color space for this pattern.
 | inherited properties...


ZZ Elements PatternColorSpaceElement Constructor Function

PatternColorSpaceElement Function

Create a new PatternColorSpaceElement.

Syntax

[C#]
PatternColorSpaceElement()
PatternColorSpaceElement(Atom atom, IndirectObject host)
PatternColorSpaceElement(IndirectObject obj)
PatternColorSpaceElement(Element relation, CreationOptions options)

[Visual Basic]
PatternColorSpaceElement()
PatternColorSpaceElement(atom As Atom, host As IndirectObject)
PatternColorSpaceElement(obj As IndirectObject)
PatternColorSpaceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new PatternColorSpaceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements PatternColorSpaceElement EntryUnderlyingColorSpace Property

EntryUnderlyingColorSpace Property

Type | Default Value | Read Only | Description
[C#] ColorSpaceElement [Visual Basic] ColorSpaceElement | null | No | This property represents the underlying color space for this pattern.

Notes

This property represents the underlying color space for this pattern.

It is defined as part of the PDF 1.2 specification.

A ColorSpaceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 178.


ZZ Elements Type2PatternElement

Type2PatternElement Class

This class represents the type 2 pattern dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 76, page 181.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 75, page 225.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.PatternElement
         WebSupergoo.ABCpdf12.Elements.Type2PatternElement

Method | Description
Type2PatternElement | Create a new Type2PatternElement.
 | inherited methods...

Property | Description
EntryPatternType | Represents the "PatternType" entry of the type 2 pattern dictionary object.
EntryShading | Represents the "Shading" entry of the type 2 pattern dictionary object.
EntryMatrix | Represents the "Matrix" entry of the type 2 pattern dictionary object.
EntryExtGState | Represents the "ExtGState" entry of the type 2 pattern dictionary object.
 | inherited properties...


ZZ Elements Type2PatternElement Constructor Function

Type2PatternElement Function

Create a new Type2PatternElement.

Syntax

[C#]
Type2PatternElement()
Type2PatternElement(Atom atom, IndirectObject host)
Type2PatternElement(IndirectObject obj)
Type2PatternElement(Element relation, CreationOptions options)

[Visual Basic]
Type2PatternElement()
Type2PatternElement(atom As Atom, host As IndirectObject)
Type2PatternElement(obj As IndirectObject)
Type2PatternElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type2PatternElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type2PatternElement EntryPatternType Property

EntryPatternType Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "PatternType" entry of the type 2 pattern dictionary object.

Notes

Represents the "PatternType" entry of the type 2 pattern dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

This item must always be provided and must always take the value "2".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 76, page 181.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 75, page 225.


ZZ Elements Type2PatternElement EntryShading Property

EntryShading Property

Type | Default Value | Read Only | Description
[C#] ShadingElement [Visual Basic] ShadingElement | null | No | Represents the "Shading" entry of the type 2 pattern dictionary object.

Notes

Represents the "Shading" entry of the type 2 pattern dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a ShadingElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 76, page 181.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 75, page 225.


ZZ Elements Type2PatternElement EntryMatrix Property

EntryMatrix Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Matrix" entry of the type 2 pattern dictionary object.

Notes

Represents the "Matrix" entry of the type 2 pattern dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 76, page 181.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 75, page 225.


ZZ Elements Type2PatternElement EntryExtGState Property

EntryExtGState Property

Type | Default Value | Read Only | Description
[C#] GraphicsStateParameterElement [Visual Basic] GraphicsStateParameterElement | null | No | Represents the "ExtGState" entry of the type 2 pattern dictionary object.

Notes

Represents the "ExtGState" entry of the type 2 pattern dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a GraphicsStateParameterElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 76, page 181.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 75, page 225.


ZZ Elements ShadingElement

ShadingElement Class

This class represents the shading dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 78, page 183.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 77, page 227.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ShadingElement
         WebSupergoo.ABCpdf12.Elements.Type1ShadingElement
         WebSupergoo.ABCpdf12.Elements.Type2ShadingElement
         WebSupergoo.ABCpdf12.Elements.Type3ShadingElement
         WebSupergoo.ABCpdf12.Elements.Type4ShadingElement
         WebSupergoo.ABCpdf12.Elements.Type5ShadingElement
         WebSupergoo.ABCpdf12.Elements.Type6ShadingElement
         WebSupergoo.ABCpdf12.Elements.Type7ShadingElement

Method | Description
ShadingElement | Create a new ShadingElement.
 | inherited methods...

Property | Description
EntryShadingType | Represents the "ShadingType" entry of the shading dictionary object.
EntryColorSpace | Represents the "ColorSpace" entry of the shading dictionary object.
EntryBackground | Represents the "Background" entry of the shading dictionary object.
EntryBBox | Represents the "BBox" entry of the shading dictionary object.
EntryAntiAlias | Represents the "AntiAlias" entry of the shading dictionary object.
 | inherited properties...


ZZ Elements ShadingElement Constructor Function

ShadingElement Function

Create a new ShadingElement.

Syntax

[C#]
ShadingElement()
ShadingElement(Atom atom, IndirectObject host)
ShadingElement(IndirectObject obj)
ShadingElement(Element relation, CreationOptions options)

[Visual Basic]
ShadingElement()
ShadingElement(atom As Atom, host As IndirectObject)
ShadingElement(obj As IndirectObject)
ShadingElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ShadingElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ShadingElement EntryShadingType Property

EntryShadingType Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "ShadingType" entry of the shading dictionary object.

Notes

Represents the "ShadingType" entry of the shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

This item may take one of the following valid values:.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 78, page 183.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 77, page 227.


ZZ Elements ShadingElement EntryColorSpace Property

EntryColorSpace Property

Type | Default Value | Read Only | Description
[C#] ColorSpaceElement [Visual Basic] ColorSpaceElement | null | No | Represents the "ColorSpace" entry of the shading dictionary object.

Notes

Represents the "ColorSpace" entry of the shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a ColorSpaceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 78, page 183.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 77, page 227.


ZZ Elements ShadingElement EntryBackground Property

EntryBackground Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Background" entry of the shading dictionary object.

Notes

Represents the "Background" entry of the shading dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 78, page 183.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 77, page 228.


ZZ Elements ShadingElement EntryBBox Property

EntryBBox Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "BBox" entry of the shading dictionary object.

Notes

Represents the "BBox" entry of the shading dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 78, page 183.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 77, page 228.


ZZ Elements ShadingElement EntryAntiAlias Property

EntryAntiAlias Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "AntiAlias" entry of the shading dictionary object.

Notes

Represents the "AntiAlias" entry of the shading dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 78, page 183.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 77, page 228.


ZZ Elements Type1ShadingElement

Type1ShadingElement Class

This class represents the type 1 shading dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 79, page 185.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 78, page 230.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ShadingElement
         WebSupergoo.ABCpdf12.Elements.Type1ShadingElement

Method | Description
Type1ShadingElement | Create a new Type1ShadingElement.
 | inherited methods...

Property | Description
EntryDomain | Represents the "Domain" entry of the type 1 shading dictionary object.
EntryMatrix | Represents the "Matrix" entry of the type 1 shading dictionary object.
EntryFunction | Represents the "Function" entry of the type 1 shading dictionary object.
 | inherited properties...


ZZ Elements Type1ShadingElement Constructor Function

Type1ShadingElement Function

Create a new Type1ShadingElement.

Syntax

[C#]
Type1ShadingElement()
Type1ShadingElement(Atom atom, IndirectObject host)
Type1ShadingElement(IndirectObject obj)
Type1ShadingElement(Element relation, CreationOptions options)

[Visual Basic]
Type1ShadingElement()
Type1ShadingElement(atom As Atom, host As IndirectObject)
Type1ShadingElement(obj As IndirectObject)
Type1ShadingElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type1ShadingElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type1ShadingElement EntryDomain Property

EntryDomain Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Domain" entry of the type 1 shading dictionary object.

Notes

Represents the "Domain" entry of the type 1 shading dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 79, page 185.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 78, page 230.


ZZ Elements Type1ShadingElement EntryMatrix Property

EntryMatrix Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Matrix" entry of the type 1 shading dictionary object.

Notes

Represents the "Matrix" entry of the type 1 shading dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 79, page 185.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 78, page 230.


ZZ Elements Type1ShadingElement EntryFunction Property

EntryFunction Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FunctionElement> [Visual Basic] ArrayElement<FunctionElement> | null | No | Represents the "Function" entry of the type 1 shading dictionary object.

Notes

Represents the "Function" entry of the type 1 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains FunctionElements.

If you read the specification you will see that an array of one FunctionElement may be represented as a single FunctionElement rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 79, page 185.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 78, page 230.


ZZ Elements Type2ShadingElement

Type2ShadingElement Class

This class represents the type 2 shading dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 80, page 186.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 79, page 231.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ShadingElement
         WebSupergoo.ABCpdf12.Elements.Type2ShadingElement

Method | Description
Type2ShadingElement | Create a new Type2ShadingElement.
 | inherited methods...

Property | Description
EntryCoords | Represents the "Coords" entry of the type 2 shading dictionary object.
EntryDomain | Represents the "Domain" entry of the type 2 shading dictionary object.
EntryFunction | Represents the "Function" entry of the type 2 shading dictionary object.
EntryExtend | Represents the "Extend" entry of the type 2 shading dictionary object.
 | inherited properties...


ZZ Elements Type2ShadingElement Constructor Function

Type2ShadingElement Function

Create a new Type2ShadingElement.

Syntax

[C#]
Type2ShadingElement()
Type2ShadingElement(Atom atom, IndirectObject host)
Type2ShadingElement(IndirectObject obj)
Type2ShadingElement(Element relation, CreationOptions options)

[Visual Basic]
Type2ShadingElement()
Type2ShadingElement(atom As Atom, host As IndirectObject)
Type2ShadingElement(obj As IndirectObject)
Type2ShadingElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type2ShadingElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type2ShadingElement EntryCoords Property

EntryCoords Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Coords" entry of the type 2 shading dictionary object.

Notes

Represents the "Coords" entry of the type 2 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 80, page 186.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 79, page 231.


ZZ Elements Type2ShadingElement EntryDomain Property

EntryDomain Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Domain" entry of the type 2 shading dictionary object.

Notes

Represents the "Domain" entry of the type 2 shading dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 80, page 186.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 79, page 231.


ZZ Elements Type2ShadingElement EntryFunction Property

EntryFunction Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FunctionElement> [Visual Basic] ArrayElement<FunctionElement> | null | No | Represents the "Function" entry of the type 2 shading dictionary object.

Notes

Represents the "Function" entry of the type 2 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains FunctionElements.

If you read the specification you will see that an array of one FunctionElement may be represented as a single FunctionElement rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 80, page 186.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 79, page 231.


ZZ Elements Type2ShadingElement EntryExtend Property

EntryExtend Property

Type | Default Value | Read Only | Description
[C#] IList<bool> [Visual Basic] IList<Boolean> | null | No | Represents the "Extend" entry of the type 2 shading dictionary object.

Notes

Represents the "Extend" entry of the type 2 shading dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains bool representing a PDF boolean objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 80, page 186.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 79, page 231.


ZZ Elements Type3ShadingElement

Type3ShadingElement Class

This class represents the type 3 shading dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 81, page 187.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 80, page 233.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ShadingElement
         WebSupergoo.ABCpdf12.Elements.Type3ShadingElement

Method | Description
Type3ShadingElement | Create a new Type3ShadingElement.
 | inherited methods...

Property | Description
EntryCoords | Represents the "Coords" entry of the type 3 shading dictionary object.
EntryDomain | Represents the "Domain" entry of the type 3 shading dictionary object.
EntryFunction | Represents the "Function" entry of the type 3 shading dictionary object.
EntryExtend | Represents the "Extend" entry of the type 3 shading dictionary object.
 | inherited properties...


ZZ Elements Type3ShadingElement Constructor Function

Type3ShadingElement Function

Create a new Type3ShadingElement.

Syntax

[C#]
Type3ShadingElement()
Type3ShadingElement(Atom atom, IndirectObject host)
Type3ShadingElement(IndirectObject obj)
Type3ShadingElement(Element relation, CreationOptions options)

[Visual Basic]
Type3ShadingElement()
Type3ShadingElement(atom As Atom, host As IndirectObject)
Type3ShadingElement(obj As IndirectObject)
Type3ShadingElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type3ShadingElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type3ShadingElement EntryCoords Property

EntryCoords Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Coords" entry of the type 3 shading dictionary object.

Notes

Represents the "Coords" entry of the type 3 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 81, page 187.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 80, page 233.


ZZ Elements Type3ShadingElement EntryDomain Property

EntryDomain Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Domain" entry of the type 3 shading dictionary object.

Notes

Represents the "Domain" entry of the type 3 shading dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 81, page 187.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 80, page 233.


ZZ Elements Type3ShadingElement EntryFunction Property

EntryFunction Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FunctionElement> [Visual Basic] ArrayElement<FunctionElement> | null | No | Represents the "Function" entry of the type 3 shading dictionary object.

Notes

Represents the "Function" entry of the type 3 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains FunctionElements.

If you read the specification you will see that an array of one FunctionElement may be represented as a single FunctionElement rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 81, page 187.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 80, page 233.


ZZ Elements Type3ShadingElement EntryExtend Property

EntryExtend Property

Type | Default Value | Read Only | Description
[C#] IList<bool> [Visual Basic] IList<Boolean> | null | No | Represents the "Extend" entry of the type 3 shading dictionary object.

Notes

Represents the "Extend" entry of the type 3 shading dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains bool representing a PDF boolean objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 81, page 187.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 80, page 233.


ZZ Elements Type4ShadingElement

Type4ShadingElement Class

This class represents the type 4 shading dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 82, page 189.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 81, page 236.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ShadingElement
         WebSupergoo.ABCpdf12.Elements.Type4ShadingElement

Method | Description
Type4ShadingElement | Create a new Type4ShadingElement.
 | inherited methods...

Property | Description
StreamElement | The StreamElement associated with this class.
EntryBitsPerCoordinate | Represents the "BitsPerCoordinate" entry of the type 4 shading dictionary object.
EntryBitsPerComponent | Represents the "BitsPerComponent" entry of the type 4 shading dictionary object.
EntryDecode | Represents the "Decode" entry of the type 4 shading dictionary object.
EntryFunction | Represents the "Function" entry of the type 4 shading dictionary object.
EntryBitsPerFlag | Represents the "BitsPerFlag" entry of the type 4 shading dictionary object.
 | inherited properties...


ZZ Elements Type4ShadingElement Constructor Function

Type4ShadingElement Function

Create a new Type4ShadingElement.

Syntax

[C#]
Type4ShadingElement()
Type4ShadingElement(Atom atom, IndirectObject host)
Type4ShadingElement(IndirectObject obj)
Type4ShadingElement(Element relation, CreationOptions options)

[Visual Basic]
Type4ShadingElement()
Type4ShadingElement(atom As Atom, host As IndirectObject)
Type4ShadingElement(obj As IndirectObject)
Type4ShadingElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type4ShadingElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type4ShadingElement StreamElement Property

StreamElement Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | Yes | The StreamElement associated with this class.

Notes

The StreamElement associated with this class.


ZZ Elements Type4ShadingElement EntryBitsPerCoordinate Property

EntryBitsPerCoordinate Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "BitsPerCoordinate" entry of the type 4 shading dictionary object.

Notes

Represents the "BitsPerCoordinate" entry of the type 4 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 82, page 189.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 81, page 236.


ZZ Elements Type4ShadingElement EntryBitsPerComponent Property

EntryBitsPerComponent Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "BitsPerComponent" entry of the type 4 shading dictionary object.

Notes

Represents the "BitsPerComponent" entry of the type 4 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 82, page 189.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 81, page 236.


ZZ Elements Type4ShadingElement EntryDecode Property

EntryDecode Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Decode" entry of the type 4 shading dictionary object.

Notes

Represents the "Decode" entry of the type 4 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 82, page 189.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 81, page 237.


ZZ Elements Type4ShadingElement EntryFunction Property

EntryFunction Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FunctionElement> [Visual Basic] ArrayElement<FunctionElement> | null | No | Represents the "Function" entry of the type 4 shading dictionary object.

Notes

Represents the "Function" entry of the type 4 shading dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains FunctionElements.

If you read the specification you will see that an array of one FunctionElement may be represented as a single FunctionElement rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 82, page 190.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 81, page 237.


ZZ Elements Type4ShadingElement EntryBitsPerFlag Property

EntryBitsPerFlag Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "BitsPerFlag" entry of the type 4 shading dictionary object.

Notes

Represents the "BitsPerFlag" entry of the type 4 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 82, page 189.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 81, page 237.


ZZ Elements Type5ShadingElement

Type5ShadingElement Class

This class represents the type 5 shading dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 83, page 193.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 82, page 240.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ShadingElement
         WebSupergoo.ABCpdf12.Elements.Type5ShadingElement

Method | Description
Type5ShadingElement | Create a new Type5ShadingElement.
 | inherited methods...

Property | Description
StreamElement | The StreamElement associated with this class.
EntryBitsPerCoordinate | Represents the "BitsPerCoordinate" entry of the type 5 shading dictionary object.
EntryBitsPerComponent | Represents the "BitsPerComponent" entry of the type 5 shading dictionary object.
EntryDecode | Represents the "Decode" entry of the type 5 shading dictionary object.
EntryFunction | Represents the "Function" entry of the type 5 shading dictionary object.
EntryVerticesPerRow | Represents the "VerticesPerRow" entry of the type 5 shading dictionary object.
 | inherited properties...


ZZ Elements Type5ShadingElement Constructor Function

Type5ShadingElement Function

Create a new Type5ShadingElement.

Syntax

[C#]
Type5ShadingElement()
Type5ShadingElement(Atom atom, IndirectObject host)
Type5ShadingElement(IndirectObject obj)
Type5ShadingElement(Element relation, CreationOptions options)

[Visual Basic]
Type5ShadingElement()
Type5ShadingElement(atom As Atom, host As IndirectObject)
Type5ShadingElement(obj As IndirectObject)
Type5ShadingElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type5ShadingElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type5ShadingElement StreamElement Property

StreamElement Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | Yes | The StreamElement associated with this class.

Notes

The StreamElement associated with this class.


ZZ Elements Type5ShadingElement EntryBitsPerCoordinate Property

EntryBitsPerCoordinate Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "BitsPerCoordinate" entry of the type 5 shading dictionary object.

Notes

Represents the "BitsPerCoordinate" entry of the type 5 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 83, page 193.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 82, page 240.


ZZ Elements Type5ShadingElement EntryBitsPerComponent Property

EntryBitsPerComponent Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "BitsPerComponent" entry of the type 5 shading dictionary object.

Notes

Represents the "BitsPerComponent" entry of the type 5 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 83, page 193.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 82, page 240.


ZZ Elements Type5ShadingElement EntryDecode Property

EntryDecode Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Decode" entry of the type 5 shading dictionary object.

Notes

Represents the "Decode" entry of the type 5 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 83, page 193.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 82, page 240.


ZZ Elements Type5ShadingElement EntryFunction Property

EntryFunction Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FunctionElement> [Visual Basic] ArrayElement<FunctionElement> | null | No | Represents the "Function" entry of the type 5 shading dictionary object.

Notes

Represents the "Function" entry of the type 5 shading dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains FunctionElements.

If you read the specification you will see that an array of one FunctionElement may be represented as a single FunctionElement rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 83, page 193.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 82, page 241.


ZZ Elements Type5ShadingElement EntryVerticesPerRow Property

EntryVerticesPerRow Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "VerticesPerRow" entry of the type 5 shading dictionary object.

Notes

Represents the "VerticesPerRow" entry of the type 5 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 83, page 193.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 82, page 240.


ZZ Elements Type6ShadingElement

Type6ShadingElement Class

This class represents the type 6 shading dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 84, page 196.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 83, page 244.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ShadingElement
         WebSupergoo.ABCpdf12.Elements.Type6ShadingElement

Method | Description
Type6ShadingElement | Create a new Type6ShadingElement.
 | inherited methods...

Property | Description
StreamElement | The StreamElement associated with this class.
EntryBitsPerCoordinate | Represents the "BitsPerCoordinate" entry of the type 6 shading dictionary object.
EntryBitsPerComponent | Represents the "BitsPerComponent" entry of the type 6 shading dictionary object.
EntryDecode | Represents the "Decode" entry of the type 6 shading dictionary object.
EntryFunction | Represents the "Function" entry of the type 6 shading dictionary object.
EntryBitsPerFlag | Represents the "BitsPerFlag" entry of the type 6 shading dictionary object.
 | inherited properties...


ZZ Elements Type6ShadingElement Constructor Function

Type6ShadingElement Function

Create a new Type6ShadingElement.

Syntax

[C#]
Type6ShadingElement()
Type6ShadingElement(Atom atom, IndirectObject host)
Type6ShadingElement(IndirectObject obj)
Type6ShadingElement(Element relation, CreationOptions options)

[Visual Basic]
Type6ShadingElement()
Type6ShadingElement(atom As Atom, host As IndirectObject)
Type6ShadingElement(obj As IndirectObject)
Type6ShadingElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type6ShadingElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type6ShadingElement StreamElement Property

StreamElement Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | Yes | The StreamElement associated with this class.

Notes

The StreamElement associated with this class.


ZZ Elements Type6ShadingElement EntryBitsPerCoordinate Property

EntryBitsPerCoordinate Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "BitsPerCoordinate" entry of the type 6 shading dictionary object.

Notes

Represents the "BitsPerCoordinate" entry of the type 6 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 84, page 196.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 83, page 244.


ZZ Elements Type6ShadingElement EntryBitsPerComponent Property

EntryBitsPerComponent Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "BitsPerComponent" entry of the type 6 shading dictionary object.

Notes

Represents the "BitsPerComponent" entry of the type 6 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 84, page 196.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 83, page 244.


ZZ Elements Type6ShadingElement EntryDecode Property

EntryDecode Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Decode" entry of the type 6 shading dictionary object.

Notes

Represents the "Decode" entry of the type 6 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 84, page 196.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 83, page 244.


ZZ Elements Type6ShadingElement EntryFunction Property

EntryFunction Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FunctionElement> [Visual Basic] ArrayElement<FunctionElement> | null | No | Represents the "Function" entry of the type 6 shading dictionary object.

Notes

Represents the "Function" entry of the type 6 shading dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains FunctionElements.

If you read the specification you will see that an array of one FunctionElement may be represented as a single FunctionElement rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 84, page 196.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 83, page 245.


ZZ Elements Type6ShadingElement EntryBitsPerFlag Property

EntryBitsPerFlag Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "BitsPerFlag" entry of the type 6 shading dictionary object.

Notes

Represents the "BitsPerFlag" entry of the type 6 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

It should have a minimum value of 0 and a maximum of 3.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 84, page 196.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 83, page 244.


ZZ Elements Type7ShadingElement

Type7ShadingElement Class

This class represents the type 7 shading dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 198.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ShadingElement
         WebSupergoo.ABCpdf12.Elements.Type7ShadingElement

Method | Description
Type7ShadingElement | Create a new Type7ShadingElement.
 | inherited methods...

Property | Description
StreamElement | The StreamElement associated with this class.
EntryBitsPerCoordinate | Represents the "BitsPerCoordinate" entry of the type 7 shading dictionary object.
EntryBitsPerComponent | Represents the "BitsPerComponent" entry of the type 7 shading dictionary object.
EntryDecode | Represents the "Decode" entry of the type 7 shading dictionary object.
EntryFunction | Represents the "Function" entry of the type 7 shading dictionary object.
EntryBitsPerFlag | Represents the "BitsPerFlag" entry of the type 7 shading dictionary object.
 | inherited properties...


ZZ Elements Type7ShadingElement Constructor Function

Type7ShadingElement Function

Create a new Type7ShadingElement.

Syntax

[C#]
Type7ShadingElement()
Type7ShadingElement(Atom atom, IndirectObject host)
Type7ShadingElement(IndirectObject obj)
Type7ShadingElement(Element relation, CreationOptions options)

[Visual Basic]
Type7ShadingElement()
Type7ShadingElement(atom As Atom, host As IndirectObject)
Type7ShadingElement(obj As IndirectObject)
Type7ShadingElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type7ShadingElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type7ShadingElement StreamElement Property

StreamElement Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | Yes | The StreamElement associated with this class.

Notes

The StreamElement associated with this class.


ZZ Elements Type7ShadingElement EntryBitsPerCoordinate Property

EntryBitsPerCoordinate Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "BitsPerCoordinate" entry of the type 7 shading dictionary object.

Notes

Represents the "BitsPerCoordinate" entry of the type 7 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 198.


ZZ Elements Type7ShadingElement EntryBitsPerComponent Property

EntryBitsPerComponent Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "BitsPerComponent" entry of the type 7 shading dictionary object.

Notes

Represents the "BitsPerComponent" entry of the type 7 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 198.


ZZ Elements Type7ShadingElement EntryDecode Property

EntryDecode Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Decode" entry of the type 7 shading dictionary object.

Notes

Represents the "Decode" entry of the type 7 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 198.


ZZ Elements Type7ShadingElement EntryFunction Property

EntryFunction Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FunctionElement> [Visual Basic] ArrayElement<FunctionElement> | null | No | Represents the "Function" entry of the type 7 shading dictionary object.

Notes

Represents the "Function" entry of the type 7 shading dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains FunctionElements.

If you read the specification you will see that an array of one FunctionElement may be represented as a single FunctionElement rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 198.


ZZ Elements Type7ShadingElement EntryBitsPerFlag Property

EntryBitsPerFlag Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "BitsPerFlag" entry of the type 7 shading dictionary object.

Notes

Represents the "BitsPerFlag" entry of the type 7 shading dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

It should have a minimum value of 0 and a maximum of 3.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 198.


ZZ Elements XObjectElement

XObjectElement Class

This class represents the xobject. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 201.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.XObjectElement
         WebSupergoo.ABCpdf12.Elements.FormXObjectElement
         WebSupergoo.ABCpdf12.Elements.ImageXObjectElement
         WebSupergoo.ABCpdf12.Elements.PostScriptXObjectElement

Method | Description
XObjectElement | Create a new XObjectElement.
 | inherited methods...

Property | Description
StreamElement | The StreamElement associated with this class.
EntryType | Represents the "Type" entry of the xobject object.
EntryAF | Represents the "AF" entry of the xobject object.
 | inherited properties...


ZZ Elements XObjectElement Constructor Function

XObjectElement Function

Create a new XObjectElement.

Syntax

[C#]
XObjectElement()
XObjectElement(Atom atom, IndirectObject host)
XObjectElement(IndirectObject obj)
XObjectElement(Element relation, CreationOptions options)

[Visual Basic]
XObjectElement()
XObjectElement(atom As Atom, host As IndirectObject)
XObjectElement(obj As IndirectObject)
XObjectElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new XObjectElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements XObjectElement StreamElement Property

StreamElement Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | Yes | The StreamElement associated with this class.

Notes

The StreamElement associated with this class.


ZZ Elements XObjectElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the xobject object.

Notes

Represents the "Type" entry of the xobject object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "XObject".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 201.


ZZ Elements XObjectElement EntryAF Property

EntryAF Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FileSpecificationElement> [Visual Basic] ArrayElement<FileSpecificationElement> | null | No | Represents the "AF" entry of the xobject object.

Notes

Represents the "AF" entry of the xobject object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains FileSpecificationElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 201.


ZZ Elements PostScriptXObjectElement

PostScriptXObjectElement Class

This class represents the postscript xobject dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 88, page 202.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.XObjectElement
         WebSupergoo.ABCpdf12.Elements.PostScriptXObjectElement

Method | Description
PostScriptXObjectElement | Create a new PostScriptXObjectElement.
 | inherited methods...

Property | Description
EntrySubtype | Represents the "Subtype" entry of the postscript xobject dictionary object.
EntryLevel1 | Represents the "Level1" entry of the postscript xobject dictionary object.
 | inherited properties...


ZZ Elements PostScriptXObjectElement Constructor Function

PostScriptXObjectElement Function

Create a new PostScriptXObjectElement.

Syntax

[C#]
PostScriptXObjectElement()
PostScriptXObjectElement(Atom atom, IndirectObject host)
PostScriptXObjectElement(IndirectObject obj)
PostScriptXObjectElement(Element relation, CreationOptions options)

[Visual Basic]
PostScriptXObjectElement()
PostScriptXObjectElement(atom As Atom, host As IndirectObject)
PostScriptXObjectElement(obj As IndirectObject)
PostScriptXObjectElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new PostScriptXObjectElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements PostScriptXObjectElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the postscript xobject dictionary object.

Notes

Represents the "Subtype" entry of the postscript xobject dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "PS".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 88, page 202.


ZZ Elements PostScriptXObjectElement EntryLevel1 Property

EntryLevel1 Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | No | Represents the "Level1" entry of the postscript xobject dictionary object.

Notes

Represents the "Level1" entry of the postscript xobject dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 88, page 202.


ZZ Elements ImageXObjectElement

ImageXObjectElement Class

This class represents the image dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 206.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 255.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.XObjectElement
         WebSupergoo.ABCpdf12.Elements.ImageXObjectElement

Method | Description
ImageXObjectElement | Create a new ImageXObjectElement.
 | inherited methods...

Property | Description
EntrySubtype | Represents the "Subtype" entry of the image dictionary object.
EntryWidth | Represents the "Width" entry of the image dictionary object.
EntryHeight | Represents the "Height" entry of the image dictionary object.
EntryColorSpace | Represents the "ColorSpace" entry of the image dictionary object.
EntryBitsPerComponent | Represents the "BitsPerComponent" entry of the image dictionary object.
EntryIntent | Represents the "Intent" entry of the image dictionary object.
EntryImageMask | Represents the "ImageMask" entry of the image dictionary object.
EntryMask | Represents the "Mask" entry of the image dictionary object.
EntryDecode | Represents the "Decode" entry of the image dictionary object.
EntryInterpolate | Represents the "Interpolate" entry of the image dictionary object.
EntryAlternates | Represents the "Alternates" entry of the image dictionary object.
EntrySMask | Represents the "SMask" entry of the image dictionary object.
EntrySMaskInData | Represents the "SMaskInData" entry of the image dictionary object.
EntryName | Represents the "Name" entry of the image dictionary object.
EntryStructParent | Represents the "StructParent" entry of the image dictionary object.
EntryID | Represents the "ID" entry of the image dictionary object.
EntryOPI | Represents the "OPI" entry of the image dictionary object.
EntryOC | Represents the "OC" entry of the image dictionary object.
EntryMeasure | Represents the "Measure" entry of the image dictionary object.
EntryPtData | Represents the "PtData" entry of the image dictionary object.
EntryMatte | Represents the "Matte" entry of the image dictionary object.
 | inherited properties...


ZZ Elements ImageXObjectElement Constructor Function

ImageXObjectElement Function

Create a new ImageXObjectElement.

Syntax

[C#]
ImageXObjectElement()
ImageXObjectElement(Atom atom, IndirectObject host)
ImageXObjectElement(IndirectObject obj)
ImageXObjectElement(Element relation, CreationOptions options)

[Visual Basic]
ImageXObjectElement()
ImageXObjectElement(atom As Atom, host As IndirectObject)
ImageXObjectElement(obj As IndirectObject)
ImageXObjectElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ImageXObjectElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ImageXObjectElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the image dictionary object.

Notes

Represents the "Subtype" entry of the image dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "Image".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 206.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 255.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntryWidth Property

EntryWidth Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Width" entry of the image dictionary object.

Notes

Represents the "Width" entry of the image dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 206.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 255.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntryHeight Property

EntryHeight Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Height" entry of the image dictionary object.

Notes

Represents the "Height" entry of the image dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 206.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 255.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntryColorSpace Property

EntryColorSpace Property

Type | Default Value | Read Only | Description
[C#] ColorSpaceElement [Visual Basic] ColorSpaceElement | null | No | Represents the "ColorSpace" entry of the image dictionary object.

Notes

Represents the "ColorSpace" entry of the image dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a ColorSpaceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 206.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 255.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntryBitsPerComponent Property

EntryBitsPerComponent Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "BitsPerComponent" entry of the image dictionary object.

Notes

Represents the "BitsPerComponent" entry of the image dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 207.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 256.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntryIntent Property

EntryIntent Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Intent" entry of the image dictionary object.

Notes

Represents the "Intent" entry of the image dictionary object.

It is an optional entry defined as part of the PDF 1.1 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • AbsoluteColorimetric
  • RelativeColorimetric
  • Saturation
  • Perceptual

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 207.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 256.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntryImageMask Property

EntryImageMask Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "ImageMask" entry of the image dictionary object.

Notes

Represents the "ImageMask" entry of the image dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 207.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 256.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntryMask Property

EntryMask Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Mask" entry of the image dictionary object.

Notes

Represents the "Mask" entry of the image dictionary object.

It is defined as part of the PDF 1.3 specification.

This property may contain one of two different types:.

1) An array which contains doubles, representing PDF numeric objects.

2) An ImageXObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 207.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 256.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntryDecode Property

EntryDecode Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Decode" entry of the image dictionary object.

Notes

Represents the "Decode" entry of the image dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 207.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 256.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntryInterpolate Property

EntryInterpolate Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "Interpolate" entry of the image dictionary object.

Notes

Represents the "Interpolate" entry of the image dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 207.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 256.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntryAlternates Property

EntryAlternates Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<AlternateImageElement> [Visual Basic] ArrayElement<AlternateImageElement> | null | No | Represents the "Alternates" entry of the image dictionary object.

Notes

Represents the "Alternates" entry of the image dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains an array which contains AlternateImageElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 207.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 256.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntrySMask Property

EntrySMask Property

Type | Default Value | Read Only | Description
[C#] ImageXObjectElement [Visual Basic] ImageXObjectElement | null | No | Represents the "SMask" entry of the image dictionary object.

Notes

Represents the "SMask" entry of the image dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains an ImageXObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 208.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 257.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntrySMaskInData Property

EntrySMaskInData Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "SMaskInData" entry of the image dictionary object.

Notes

Represents the "SMaskInData" entry of the image dictionary object.

It is defined as part of the PDF 1.5 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 208.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 257.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Name" entry of the image dictionary object.

Notes

Represents the "Name" entry of the image dictionary object.

It is defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 208.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 257.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntryStructParent Property

EntryStructParent Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "StructParent" entry of the image dictionary object.

Notes

Represents the "StructParent" entry of the image dictionary object.

It is defined as part of the PDF 1.3 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 208.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 257.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntryID Property

EntryID Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ID" entry of the image dictionary object.

Notes

Represents the "ID" entry of the image dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 208.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 257.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntryOPI Property

EntryOPI Property

Type | Default Value | Read Only | Description
[C#] OpiVersionElement [Visual Basic] OpiVersionElement | null | No | Represents the "OPI" entry of the image dictionary object.

Notes

Represents the "OPI" entry of the image dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification. It was deprecated in PDF 2.0.

It contains an OpiVersionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 208.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 257.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntryOC Property

EntryOC Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "OC" entry of the image dictionary object.

Notes

Represents the "OC" entry of the image dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

This property may contain one of two different types:.

1) An OptionalContentGroupElement.

2) An OptionalContentMembershipElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 208.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 258.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntryMeasure Property

EntryMeasure Property

Type | Default Value | Read Only | Description
[C#] MeasureElement [Visual Basic] MeasureElement | null | No | Represents the "Measure" entry of the image dictionary object.

Notes

Represents the "Measure" entry of the image dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a MeasureElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 206.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 258.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntryPtData Property

EntryPtData Property

Type | Default Value | Read Only | Description
[C#] PointDataElement [Visual Basic] PointDataElement | null | No | Represents the "PtData" entry of the image dictionary object.

Notes

Represents the "PtData" entry of the image dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a PointDataElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 206.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 258.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements ImageXObjectElement EntryMatte Property

EntryMatte Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Matte" entry of the image dictionary object.

Notes

Represents the "Matte" entry of the image dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 89, page 206.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.39, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 87, page 255.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 146, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 144, page 418.


ZZ Elements AlternateImageElement

AlternateImageElement Class

This class represents the alternate image dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 91, page 212.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 89, page 261.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AlternateImageElement

Method | Description
AlternateImageElement | Create a new AlternateImageElement.
 | inherited methods...

Property | Description
EntryImage | Represents the "Image" entry of the alternate image dictionary object.
EntryDefaultForPrinting | Represents the "DefaultForPrinting" entry of the alternate image dictionary object.
EntryOC | Represents the "OC" entry of the alternate image dictionary object.
 | inherited properties...


ZZ Elements AlternateImageElement Constructor Function

AlternateImageElement Function

Create a new AlternateImageElement.

Syntax

[C#]
AlternateImageElement()
AlternateImageElement(Atom atom, IndirectObject host)
AlternateImageElement(IndirectObject obj)
AlternateImageElement(Element relation, CreationOptions options)

[Visual Basic]
AlternateImageElement()
AlternateImageElement(atom As Atom, host As IndirectObject)
AlternateImageElement(obj As IndirectObject)
AlternateImageElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new AlternateImageElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements AlternateImageElement EntryImage Property

EntryImage Property

Type | Default Value | Read Only | Description
[C#] ImageXObjectElement [Visual Basic] ImageXObjectElement | null | No | Represents the "Image" entry of the alternate image dictionary object.

Notes

Represents the "Image" entry of the alternate image dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an ImageXObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 91, page 212.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 89, page 261.


ZZ Elements AlternateImageElement EntryDefaultForPrinting Property

EntryDefaultForPrinting Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "DefaultForPrinting" entry of the alternate image dictionary object.

Notes

Represents the "DefaultForPrinting" entry of the alternate image dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 91, page 212.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 89, page 261.


ZZ Elements AlternateImageElement EntryOC Property

EntryOC Property

Type | Default Value | Read Only | Description
[C#] OptionalContentGroupElement [Visual Basic] OptionalContentGroupElement | null | No | Represents the "OC" entry of the alternate image dictionary object.

Notes

Represents the "OC" entry of the alternate image dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an OptionalContentGroupElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 91, page 212.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 89, page 261.


ZZ Elements FormXObjectElement

FormXObjectElement Class

This class represents the type 1 form dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 218.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 269.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.XObjectElement
         WebSupergoo.ABCpdf12.Elements.FormXObjectElement
            WebSupergoo.ABCpdf12.Elements.TrapNetworkAppearanceStreamElement

Method | Description
FormXObjectElement | Create a new FormXObjectElement.
 | inherited methods...

Property | Description
EntrySubtype | Represents the "Subtype" entry of the type 1 form dictionary object.
EntryFormType | Represents the "FormType" entry of the type 1 form dictionary object.
EntryBBox | Represents the "BBox" entry of the type 1 form dictionary object.
EntryMatrix | Represents the "Matrix" entry of the type 1 form dictionary object.
EntryResources | Represents the "Resources" entry of the type 1 form dictionary object.
EntryGroup | Represents the "Group" entry of the type 1 form dictionary object.
EntryRef | Represents the "Ref" entry of the type 1 form dictionary object.
EntryPieceInfo | Represents the "PieceInfo" entry of the type 1 form dictionary object.
EntryLastModified | Represents the "LastModified" entry of the type 1 form dictionary object.
EntryStructParent | Represents the "StructParent" entry of the type 1 form dictionary object.
EntryStructParents | Represents the "StructParents" entry of the type 1 form dictionary object.
EntryOPI | Represents the "OPI" entry of the type 1 form dictionary object.
EntryOC | Represents the "OC" entry of the type 1 form dictionary object.
EntryName | Represents the "Name" entry of the type 1 form dictionary object.
EntryMeasure | Represents the "Measure" entry of the type 1 form dictionary object.
EntryPtData | Represents the "PtData" entry of the type 1 form dictionary object.
EntryMarkStyle | Represents the "MarkStyle" entry of the type 1 form dictionary object.
EntryColorants | Represents the "Colorants" entry of the type 1 form dictionary object.
 | inherited properties...


ZZ Elements FormXObjectElement Constructor Function

FormXObjectElement Function

Create a new FormXObjectElement.

Syntax

[C#]
FormXObjectElement()
FormXObjectElement(Atom atom, IndirectObject host)
FormXObjectElement(IndirectObject obj)
FormXObjectElement(Element relation, CreationOptions options)

[Visual Basic]
FormXObjectElement()
FormXObjectElement(atom As Atom, host As IndirectObject)
FormXObjectElement(obj As IndirectObject)
FormXObjectElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FormXObjectElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FormXObjectElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the type 1 form dictionary object.

Notes

Represents the "Subtype" entry of the type 1 form dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "Form".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 218.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 269.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.


ZZ Elements FormXObjectElement EntryFormType Property

EntryFormType Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "FormType" entry of the type 1 form dictionary object.

Notes

Represents the "FormType" entry of the type 1 form dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

If provided, this item must always take the value "1".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 218.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 269.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.


ZZ Elements FormXObjectElement EntryBBox Property

EntryBBox Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "BBox" entry of the type 1 form dictionary object.

Notes

Represents the "BBox" entry of the type 1 form dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 218.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 269.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.


ZZ Elements FormXObjectElement EntryMatrix Property

EntryMatrix Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Matrix" entry of the type 1 form dictionary object.

Notes

Represents the "Matrix" entry of the type 1 form dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 218.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 269.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.


ZZ Elements FormXObjectElement EntryResources Property

EntryResources Property

Type | Default Value | Read Only | Description
[C#] ResourceElement [Visual Basic] ResourceElement | null | No | Represents the "Resources" entry of the type 1 form dictionary object.

Notes

Represents the "Resources" entry of the type 1 form dictionary object.

It is defined as part of the PDF 1.2 specification.

It contains a ResourceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 218.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 269.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.


ZZ Elements FormXObjectElement EntryGroup Property

EntryGroup Property

Type | Default Value | Read Only | Description
[C#] GroupAttributesElement [Visual Basic] GroupAttributesElement | null | No | Represents the "Group" entry of the type 1 form dictionary object.

Notes

Represents the "Group" entry of the type 1 form dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a GroupAttributesElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 219.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 269.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.


ZZ Elements FormXObjectElement EntryRef Property

EntryRef Property

Type | Default Value | Read Only | Description
[C#] ReferenceElement [Visual Basic] ReferenceElement | null | No | Represents the "Ref" entry of the type 1 form dictionary object.

Notes

Represents the "Ref" entry of the type 1 form dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a ReferenceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 219.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 269.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.


ZZ Elements FormXObjectElement EntryPieceInfo Property

EntryPieceInfo Property

Type | Default Value | Read Only | Description
[C#] DictElement<PagePieceDataElement> [Visual Basic] DictElement<PagePieceDataElement> | null | No | Represents the "PieceInfo" entry of the type 1 form dictionary object.

Notes

Represents the "PieceInfo" entry of the type 1 form dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 219.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 270.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.


ZZ Elements FormXObjectElement EntryLastModified Property

EntryLastModified Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "LastModified" entry of the type 1 form dictionary object.

Notes

Represents the "LastModified" entry of the type 1 form dictionary object.

It is defined as part of the PDF 1.3 specification.

It contains a string representing a PDF string object.

This is encoded as a date string. For details see the StringAtom.DateToString and StringAtom.StringToDate functions.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 219.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 270.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.


ZZ Elements FormXObjectElement EntryStructParent Property

EntryStructParent Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "StructParent" entry of the type 1 form dictionary object.

Notes

Represents the "StructParent" entry of the type 1 form dictionary object.

It is defined as part of the PDF 1.3 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 219.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 270.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.


ZZ Elements FormXObjectElement EntryStructParents Property

EntryStructParents Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "StructParents" entry of the type 1 form dictionary object.

Notes

Represents the "StructParents" entry of the type 1 form dictionary object.

It is defined as part of the PDF 1.3 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 219.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 270.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.


ZZ Elements FormXObjectElement EntryOPI Property

EntryOPI Property

Type | Default Value | Read Only | Description
[C#] OpiVersionElement [Visual Basic] OpiVersionElement | null | No | Represents the "OPI" entry of the type 1 form dictionary object.

Notes

Represents the "OPI" entry of the type 1 form dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification. It was deprecated in PDF 2.0.

It contains an OpiVersionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 219.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 270.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.


ZZ Elements FormXObjectElement EntryOC Property

EntryOC Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "OC" entry of the type 1 form dictionary object.

Notes

Represents the "OC" entry of the type 1 form dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

This property may contain one of two different types:.

1) An OptionalContentGroupElement.

2) An OptionalContentMembershipElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 219.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 270.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.


ZZ Elements FormXObjectElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Name" entry of the type 1 form dictionary object.

Notes

Represents the "Name" entry of the type 1 form dictionary object.

It is defined as part of the PDF 1.0 specification. It was marked obsolescent in PDF 1.7 and deprecated in PDF 2.0.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 219.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 270.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.


ZZ Elements FormXObjectElement EntryMeasure Property

EntryMeasure Property

Type | Default Value | Read Only | Description
[C#] MeasureElement [Visual Basic] MeasureElement | null | No | Represents the "Measure" entry of the type 1 form dictionary object.

Notes

Represents the "Measure" entry of the type 1 form dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a MeasureElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 218.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 270.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.


ZZ Elements FormXObjectElement EntryPtData Property

EntryPtData Property

Type | Default Value | Read Only | Description
[C#] PointDataElement [Visual Basic] PointDataElement | null | No | Represents the "PtData" entry of the type 1 form dictionary object.

Notes

Represents the "PtData" entry of the type 1 form dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a PointDataElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 218.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 270.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.


ZZ Elements FormXObjectElement EntryMarkStyle Property

EntryMarkStyle Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "MarkStyle" entry of the type 1 form dictionary object.

Notes

Represents the "MarkStyle" entry of the type 1 form dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 218.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 269.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.


ZZ Elements FormXObjectElement EntryColorants Property

EntryColorants Property

Type | Default Value | Read Only | Description
[C#] DictElement<ColorSpaceElement> [Visual Basic] DictElement<ColorSpaceElement> | null | No | Represents the "Colorants" entry of the type 1 form dictionary object.

Notes

Represents the "Colorants" entry of the type 1 form dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 95, page 218.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 4.45, page 27.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 93, page 269.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 363, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 399, page 812.


ZZ Elements ReferenceElement

ReferenceElement Class

This class represents the reference dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 97, page 221.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 95, page 272.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ReferenceElement

Method | Description
ReferenceElement | Create a new ReferenceElement.
 | inherited methods...

Property | Description
EntryF | Represents the "F" entry of the reference dictionary object.
EntryPage | Represents the "Page" entry of the reference dictionary object.
EntryID | Represents the "ID" entry of the reference dictionary object.
 | inherited properties...


ZZ Elements ReferenceElement Constructor Function

ReferenceElement Function

Create a new ReferenceElement.

Syntax

[C#]
ReferenceElement()
ReferenceElement(Atom atom, IndirectObject host)
ReferenceElement(IndirectObject obj)
ReferenceElement(Element relation, CreationOptions options)

[Visual Basic]
ReferenceElement()
ReferenceElement(atom As Atom, host As IndirectObject)
ReferenceElement(obj As IndirectObject)
ReferenceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ReferenceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ReferenceElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] FileSpecificationElement [Visual Basic] FileSpecificationElement | null | No | Represents the "F" entry of the reference dictionary object.

Notes

Represents the "F" entry of the reference dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a FileSpecificationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 97, page 221.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 95, page 272.


ZZ Elements ReferenceElement EntryPage Property

EntryPage Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Page" entry of the reference dictionary object.

Notes

Represents the "Page" entry of the reference dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) An integer representing a PDF numeric object.

2) A string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 97, page 221.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 95, page 272.


ZZ Elements ReferenceElement EntryID Property

EntryID Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "ID" entry of the reference dictionary object.

Notes

Represents the "ID" entry of the reference dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 97, page 221.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 95, page 272.


ZZ Elements OptionalContentGroupElement

OptionalContentGroupElement Class

This class represents the optional content group dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 98, page 222.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 96, page 273.

This class is always an indirect object because OptionalContentPropertiesElement.EntryOCGs requires it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OptionalContentGroupElement

Method | Description
OptionalContentGroupElement | Create a new OptionalContentGroupElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the optional content group dictionary object.
EntryName | Represents the "Name" entry of the optional content group dictionary object.
EntryIntent | Represents the "Intent" entry of the optional content group dictionary object.
EntryUsage | Represents the "Usage" entry of the optional content group dictionary object.
 | inherited properties...


ZZ Elements OptionalContentGroupElement Constructor Function

OptionalContentGroupElement Function

Create a new OptionalContentGroupElement.

Syntax

[C#]
OptionalContentGroupElement()
OptionalContentGroupElement(Atom atom, IndirectObject host)
OptionalContentGroupElement(IndirectObject obj)
OptionalContentGroupElement(Element relation, CreationOptions options)

[Visual Basic]
OptionalContentGroupElement()
OptionalContentGroupElement(atom As Atom, host As IndirectObject)
OptionalContentGroupElement(obj As IndirectObject)
OptionalContentGroupElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OptionalContentGroupElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OptionalContentGroupElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the optional content group dictionary object.

Notes

Represents the "Type" entry of the optional content group dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "OCG".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 98, page 222.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 96, page 273.


ZZ Elements OptionalContentGroupElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Name" entry of the optional content group dictionary object.

Notes

Represents the "Name" entry of the optional content group dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 98, page 222.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 96, page 274.


ZZ Elements OptionalContentGroupElement EntryIntent Property

EntryIntent Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Intent" entry of the optional content group dictionary object.

Notes

Represents the "Intent" entry of the optional content group dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF name objects.

The PDF specification states that items in this array assume a value of "View" if no value has been provided.

Items in this array may take one of the following valid values:.

  • View
  • Design
.

If you read the specification you will see that an array of one string may be represented as a single string rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 98, page 222.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 96, page 274.


ZZ Elements OptionalContentGroupElement EntryUsage Property

EntryUsage Property

Type | Default Value | Read Only | Description
[C#] OptionalContentUsageElement [Visual Basic] OptionalContentUsageElement | null | No | Represents the "Usage" entry of the optional content group dictionary object.

Notes

Represents the "Usage" entry of the optional content group dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an OptionalContentUsageElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 98, page 222.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 96, page 274.


ZZ Elements OptionalContentMembershipElement

OptionalContentMembershipElement Class

This class represents the optional content membership dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 99, page 223.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 97, page 275.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OptionalContentMembershipElement

Method | Description
OptionalContentMembershipElement | Create a new OptionalContentMembershipElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the optional content membership dictionary object.
EntryOCGs | Represents the "OCGs" entry of the optional content membership dictionary object.
EntryP | Represents the "P" entry of the optional content membership dictionary object.
EntryVE | Represents the "VE" entry of the optional content membership dictionary object.
 | inherited properties...


ZZ Elements OptionalContentMembershipElement Constructor Function

OptionalContentMembershipElement Function

Create a new OptionalContentMembershipElement.

Syntax

[C#]
OptionalContentMembershipElement()
OptionalContentMembershipElement(Atom atom, IndirectObject host)
OptionalContentMembershipElement(IndirectObject obj)
OptionalContentMembershipElement(Element relation, CreationOptions options)

[Visual Basic]
OptionalContentMembershipElement()
OptionalContentMembershipElement(atom As Atom, host As IndirectObject)
OptionalContentMembershipElement(obj As IndirectObject)
OptionalContentMembershipElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OptionalContentMembershipElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OptionalContentMembershipElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the optional content membership dictionary object.

Notes

Represents the "Type" entry of the optional content membership dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "OCMD".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 99, page 223.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 97, page 275.


ZZ Elements OptionalContentMembershipElement EntryOCGs Property

EntryOCGs Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<OptionalContentGroupElement> [Visual Basic] ArrayElement<OptionalContentGroupElement> | null | No | Represents the "OCGs" entry of the optional content membership dictionary object.

Notes

Represents the "OCGs" entry of the optional content membership dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains OptionalContentGroupElements.

If you read the specification you will see that an array of one OptionalContentGroupElement may be represented as a single OptionalContentGroupElement rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 99, page 223.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 97, page 275.


ZZ Elements OptionalContentMembershipElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "P" entry of the optional content membership dictionary object.

Notes

Represents the "P" entry of the optional content membership dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "AnyOn" if no value has been provided.

This item may take one of the following valid values:.

  • AllOn
  • AnyOn
  • AnyOff
  • AllOff

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 99, page 223.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 97, page 275.


ZZ Elements OptionalContentMembershipElement EntryVE Property

EntryVE Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "VE" entry of the optional content membership dictionary object.

Notes

Represents the "VE" entry of the optional content membership dictionary object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 99, page 223.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 97, page 275.


ZZ Elements OptionalContentPropertiesElement

OptionalContentPropertiesElement Class

This class represents the optional content properties dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 100, page 228.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 98, page 281.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OptionalContentPropertiesElement

Method | Description
OptionalContentPropertiesElement | Create a new OptionalContentPropertiesElement.
 | inherited methods...

Property | Description
EntryOCGs | Represents the "OCGs" entry of the optional content properties dictionary object.
EntryD | Represents the "D" entry of the optional content properties dictionary object.
EntryConfigs | Represents the "Configs" entry of the optional content properties dictionary object.
 | inherited properties...


ZZ Elements OptionalContentPropertiesElement Constructor Function

OptionalContentPropertiesElement Function

Create a new OptionalContentPropertiesElement.

Syntax

[C#]
OptionalContentPropertiesElement()
OptionalContentPropertiesElement(Atom atom, IndirectObject host)
OptionalContentPropertiesElement(IndirectObject obj)
OptionalContentPropertiesElement(Element relation, CreationOptions options)

[Visual Basic]
OptionalContentPropertiesElement()
OptionalContentPropertiesElement(atom As Atom, host As IndirectObject)
OptionalContentPropertiesElement(obj As IndirectObject)
OptionalContentPropertiesElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OptionalContentPropertiesElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OptionalContentPropertiesElement EntryOCGs Property

EntryOCGs Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<OptionalContentGroupElement> [Visual Basic] ArrayElement<OptionalContentGroupElement> | null | No | Represents the "OCGs" entry of the optional content properties dictionary object.

Notes

Represents the "OCGs" entry of the optional content properties dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains OptionalContentGroupElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 100, page 228.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 98, page 281.


ZZ Elements OptionalContentPropertiesElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] OptionalContentConfigElement [Visual Basic] OptionalContentConfigElement | null | No | Represents the "D" entry of the optional content properties dictionary object.

Notes

Represents the "D" entry of the optional content properties dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an OptionalContentConfigElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 100, page 229.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 98, page 281.


ZZ Elements OptionalContentPropertiesElement EntryConfigs Property

EntryConfigs Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<OptionalContentConfigElement> [Visual Basic] ArrayElement<OptionalContentConfigElement> | null | No | Represents the "Configs" entry of the optional content properties dictionary object.

Notes

Represents the "Configs" entry of the optional content properties dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains OptionalContentConfigElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 100, page 229.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 98, page 281.


ZZ Elements OptionalContentConfigElement

OptionalContentConfigElement Class

This class represents the optional content configuration dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 101, page 229.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 99, page 281.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OptionalContentConfigElement

Method | Description
OptionalContentConfigElement | Create a new OptionalContentConfigElement.
 | inherited methods...

Property | Description
EntryName | Represents the "Name" entry of the optional content configuration dictionary object.
EntryCreator | Represents the "Creator" entry of the optional content configuration dictionary object.
EntryBaseState | Represents the "BaseState" entry of the optional content configuration dictionary object.
EntryON | Represents the "ON" entry of the optional content configuration dictionary object.
EntryOFF | Represents the "OFF" entry of the optional content configuration dictionary object.
EntryIntent | Represents the "Intent" entry of the optional content configuration dictionary object.
EntryAS | Represents the "AS" entry of the optional content configuration dictionary object.
EntryOrder | Represents the "Order" entry of the optional content configuration dictionary object.
EntryListMode | Represents the "ListMode" entry of the optional content configuration dictionary object.
EntryRBGroups | Represents the "RBGroups" entry of the optional content configuration dictionary object.
EntryLocked | Represents the "Locked" entry of the optional content configuration dictionary object.
 | inherited properties...


ZZ Elements OptionalContentConfigElement Constructor Function

OptionalContentConfigElement Function

Create a new OptionalContentConfigElement.

Syntax

[C#]
OptionalContentConfigElement()
OptionalContentConfigElement(Atom atom, IndirectObject host)
OptionalContentConfigElement(IndirectObject obj)
OptionalContentConfigElement(Element relation, CreationOptions options)

[Visual Basic]
OptionalContentConfigElement()
OptionalContentConfigElement(atom As Atom, host As IndirectObject)
OptionalContentConfigElement(obj As IndirectObject)
OptionalContentConfigElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OptionalContentConfigElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OptionalContentConfigElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Name" entry of the optional content configuration dictionary object.

Notes

Represents the "Name" entry of the optional content configuration dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 101, page 229.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 99, page 281.


ZZ Elements OptionalContentConfigElement EntryCreator Property

EntryCreator Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Creator" entry of the optional content configuration dictionary object.

Notes

Represents the "Creator" entry of the optional content configuration dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 101, page 229.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 99, page 281.


ZZ Elements OptionalContentConfigElement EntryBaseState Property

EntryBaseState Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "BaseState" entry of the optional content configuration dictionary object.

Notes

Represents the "BaseState" entry of the optional content configuration dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "ON" if no value has been provided.

This item may take one of the following valid values:.

  • ON
  • OFF
  • Unchanged

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 101, page 229.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 99, page 281.


ZZ Elements OptionalContentConfigElement EntryON Property

EntryON Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<OptionalContentGroupElement> [Visual Basic] ArrayElement<OptionalContentGroupElement> | null | No | Represents the "ON" entry of the optional content configuration dictionary object.

Notes

Represents the "ON" entry of the optional content configuration dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains OptionalContentGroupElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 101, page 229.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 99, page 281.


ZZ Elements OptionalContentConfigElement EntryOFF Property

EntryOFF Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<OptionalContentGroupElement> [Visual Basic] ArrayElement<OptionalContentGroupElement> | null | No | Represents the "OFF" entry of the optional content configuration dictionary object.

Notes

Represents the "OFF" entry of the optional content configuration dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains OptionalContentGroupElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 101, page 229.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 99, page 282.


ZZ Elements OptionalContentConfigElement EntryIntent Property

EntryIntent Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Intent" entry of the optional content configuration dictionary object.

Notes

Represents the "Intent" entry of the optional content configuration dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF name objects.

The PDF specification states that items in this array assume a value of "View" if no value has been provided.

Items in this array may take one of the following valid values:.

  • View
  • Design
  • All
.

If you read the specification you will see that an array of one string may be represented as a single string rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 101, page 229.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 99, page 282.


ZZ Elements OptionalContentConfigElement EntryAS Property

EntryAS Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<UsageApplicationElement> [Visual Basic] ArrayElement<UsageApplicationElement> | null | No | Represents the "AS" entry of the optional content configuration dictionary object.

Notes

Represents the "AS" entry of the optional content configuration dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains UsageApplicationElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 101, page 230.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 99, page 282.


ZZ Elements OptionalContentConfigElement EntryOrder Property

EntryOrder Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "Order" entry of the optional content configuration dictionary object.

Notes

Represents the "Order" entry of the optional content configuration dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 101, page 230.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 99, page 282.


ZZ Elements OptionalContentConfigElement EntryListMode Property

EntryListMode Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ListMode" entry of the optional content configuration dictionary object.

Notes

Represents the "ListMode" entry of the optional content configuration dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "AllPages" if no value has been provided.

This item may take one of the following valid values:.

  • AllPages
  • VisiblePages

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 101, page 230.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 99, page 282.


ZZ Elements OptionalContentConfigElement EntryRBGroups Property

EntryRBGroups Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "RBGroups" entry of the optional content configuration dictionary object.

Notes

Represents the "RBGroups" entry of the optional content configuration dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 101, page 230.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 99, page 283.


ZZ Elements OptionalContentConfigElement EntryLocked Property

EntryLocked Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<OptionalContentGroupElement> [Visual Basic] ArrayElement<OptionalContentGroupElement> | null | No | Represents the "Locked" entry of the optional content configuration dictionary object.

Notes

Represents the "Locked" entry of the optional content configuration dictionary object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains an array which contains OptionalContentGroupElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 101, page 231.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 99, page 283.


ZZ Elements OptionalContentUsageCreatorElement

OptionalContentUsageCreatorElement Class

This class represents the optional content usage creator dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OptionalContentUsageCreatorElement

Method | Description
OptionalContentUsageCreatorElement | Create a new OptionalContentUsageCreatorElement.
 | inherited methods...

Property | Description
EntryCreator | Represents the "Creator" entry of the optional content usage creator dictionary object.
EntrySubtype | Represents the "Subtype" entry of the optional content usage creator dictionary object.
 | inherited properties...


ZZ Elements OptionalContentUsageCreatorElement Constructor Function

OptionalContentUsageCreatorElement Function

Create a new OptionalContentUsageCreatorElement.

Syntax

[C#]
OptionalContentUsageCreatorElement()
OptionalContentUsageCreatorElement(Atom atom, IndirectObject host)
OptionalContentUsageCreatorElement(IndirectObject obj)
OptionalContentUsageCreatorElement(Element relation, CreationOptions options)

[Visual Basic]
OptionalContentUsageCreatorElement()
OptionalContentUsageCreatorElement(atom As Atom, host As IndirectObject)
OptionalContentUsageCreatorElement(obj As IndirectObject)
OptionalContentUsageCreatorElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OptionalContentUsageCreatorElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OptionalContentUsageCreatorElement EntryCreator Property

EntryCreator Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Creator" entry of the optional content usage creator dictionary object.

Notes

Represents the "Creator" entry of the optional content usage creator dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.


ZZ Elements OptionalContentUsageCreatorElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the optional content usage creator dictionary object.

Notes

Represents the "Subtype" entry of the optional content usage creator dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.


ZZ Elements OptionalContentUsageElement

OptionalContentUsageElement Class

This class represents the optional content usage dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OptionalContentUsageElement

Method | Description
OptionalContentUsageElement | Create a new OptionalContentUsageElement.
 | inherited methods...

Property | Description
EntryCreatorInfo | Represents the "CreatorInfo" entry of the optional content usage dictionary object.
EntryLanguage | Represents the "Language" entry of the optional content usage dictionary object.
EntryExport | Represents the "Export" entry of the optional content usage dictionary object.
EntryZoom | Represents the "Zoom" entry of the optional content usage dictionary object.
EntryPrint | Represents the "Print" entry of the optional content usage dictionary object.
EntryView | Represents the "View" entry of the optional content usage dictionary object.
EntryUser | Represents the "User" entry of the optional content usage dictionary object.
EntryPageElement | Represents the "PageElement" entry of the optional content usage dictionary object.
 | inherited properties...


ZZ Elements OptionalContentUsageElement Constructor Function

OptionalContentUsageElement Function

Create a new OptionalContentUsageElement.

Syntax

[C#]
OptionalContentUsageElement()
OptionalContentUsageElement(Atom atom, IndirectObject host)
OptionalContentUsageElement(IndirectObject obj)
OptionalContentUsageElement(Element relation, CreationOptions options)

[Visual Basic]
OptionalContentUsageElement()
OptionalContentUsageElement(atom As Atom, host As IndirectObject)
OptionalContentUsageElement(obj As IndirectObject)
OptionalContentUsageElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OptionalContentUsageElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OptionalContentUsageElement EntryCreatorInfo Property

EntryCreatorInfo Property

Type | Default Value | Read Only | Description
[C#] OptionalContentUsageCreatorElement [Visual Basic] OptionalContentUsageCreatorElement | null | No | Represents the "CreatorInfo" entry of the optional content usage dictionary object.

Notes

Represents the "CreatorInfo" entry of the optional content usage dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an OptionalContentUsageCreatorElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.


ZZ Elements OptionalContentUsageElement EntryLanguage Property

EntryLanguage Property

Type | Default Value | Read Only | Description
[C#] OptionalContentUsageLanguageElement [Visual Basic] OptionalContentUsageLanguageElement | null | No | Represents the "Language" entry of the optional content usage dictionary object.

Notes

Represents the "Language" entry of the optional content usage dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an OptionalContentUsageLanguageElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 285.


ZZ Elements OptionalContentUsageElement EntryExport Property

EntryExport Property

Type | Default Value | Read Only | Description
[C#] OptionalContentUsageExportElement [Visual Basic] OptionalContentUsageExportElement | null | No | Represents the "Export" entry of the optional content usage dictionary object.

Notes

Represents the "Export" entry of the optional content usage dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an OptionalContentUsageExportElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 285.


ZZ Elements OptionalContentUsageElement EntryZoom Property

EntryZoom Property

Type | Default Value | Read Only | Description
[C#] OptionalContentUsageZoomElement [Visual Basic] OptionalContentUsageZoomElement | null | No | Represents the "Zoom" entry of the optional content usage dictionary object.

Notes

Represents the "Zoom" entry of the optional content usage dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an OptionalContentUsageZoomElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 285.


ZZ Elements OptionalContentUsageElement EntryPrint Property

EntryPrint Property

Type | Default Value | Read Only | Description
[C#] OptionalContentUsagePrintElement [Visual Basic] OptionalContentUsagePrintElement | null | No | Represents the "Print" entry of the optional content usage dictionary object.

Notes

Represents the "Print" entry of the optional content usage dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an OptionalContentUsagePrintElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 233.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 285.


ZZ Elements OptionalContentUsageElement EntryView Property

EntryView Property

Type | Default Value | Read Only | Description
[C#] OptionalContentUsageViewElement [Visual Basic] OptionalContentUsageViewElement | null | No | Represents the "View" entry of the optional content usage dictionary object.

Notes

Represents the "View" entry of the optional content usage dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an OptionalContentUsageViewElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 233.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 285.


ZZ Elements OptionalContentUsageElement EntryUser Property

EntryUser Property

Type | Default Value | Read Only | Description
[C#] OptionalContentUsageUserElement [Visual Basic] OptionalContentUsageUserElement | null | No | Represents the "User" entry of the optional content usage dictionary object.

Notes

Represents the "User" entry of the optional content usage dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an OptionalContentUsageUserElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 233.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 285.


ZZ Elements OptionalContentUsageElement EntryPageElement Property

EntryPageElement Property

Type | Default Value | Read Only | Description
[C#] OptionalContentUsagePageElement [Visual Basic] OptionalContentUsagePageElement | null | No | Represents the "PageElement" entry of the optional content usage dictionary object.

Notes

Represents the "PageElement" entry of the optional content usage dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an OptionalContentUsagePageElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 233.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 285.


ZZ Elements OptionalContentUsageExportElement

OptionalContentUsageExportElement Class

This class represents the optional content usage export dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OptionalContentUsageExportElement

Method | Description
OptionalContentUsageExportElement | Create a new OptionalContentUsageExportElement.
 | inherited methods...

Property | Description
EntryExportState | Represents the "ExportState" entry of the optional content usage export dictionary object.
 | inherited properties...


ZZ Elements OptionalContentUsageExportElement Constructor Function

OptionalContentUsageExportElement Function

Create a new OptionalContentUsageExportElement.

Syntax

[C#]
OptionalContentUsageExportElement()
OptionalContentUsageExportElement(Atom atom, IndirectObject host)
OptionalContentUsageExportElement(IndirectObject obj)
OptionalContentUsageExportElement(Element relation, CreationOptions options)

[Visual Basic]
OptionalContentUsageExportElement()
OptionalContentUsageExportElement(atom As Atom, host As IndirectObject)
OptionalContentUsageExportElement(obj As IndirectObject)
OptionalContentUsageExportElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OptionalContentUsageExportElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OptionalContentUsageExportElement EntryExportState Property

EntryExportState Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ExportState" entry of the optional content usage export dictionary object.

Notes

Represents the "ExportState" entry of the optional content usage export dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "OFF" if no value has been provided.

This item may take one of the following valid values:.

  • ON
  • OFF

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.


ZZ Elements OptionalContentUsageLanguageElement

OptionalContentUsageLanguageElement Class

This class represents the optional content usage language dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OptionalContentUsageLanguageElement

Method | Description
OptionalContentUsageLanguageElement | Create a new OptionalContentUsageLanguageElement.
 | inherited methods...

Property | Description
EntryLang | Represents the "Lang" entry of the optional content usage language dictionary object.
EntryPreferred | Represents the "Preferred" entry of the optional content usage language dictionary object.
 | inherited properties...


ZZ Elements OptionalContentUsageLanguageElement Constructor Function

OptionalContentUsageLanguageElement Function

Create a new OptionalContentUsageLanguageElement.

Syntax

[C#]
OptionalContentUsageLanguageElement()
OptionalContentUsageLanguageElement(Atom atom, IndirectObject host)
OptionalContentUsageLanguageElement(IndirectObject obj)
OptionalContentUsageLanguageElement(Element relation, CreationOptions options)

[Visual Basic]
OptionalContentUsageLanguageElement()
OptionalContentUsageLanguageElement(atom As Atom, host As IndirectObject)
OptionalContentUsageLanguageElement(obj As IndirectObject)
OptionalContentUsageLanguageElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OptionalContentUsageLanguageElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OptionalContentUsageLanguageElement EntryLang Property

EntryLang Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Lang" entry of the optional content usage language dictionary object.

Notes

Represents the "Lang" entry of the optional content usage language dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.


ZZ Elements OptionalContentUsageLanguageElement EntryPreferred Property

EntryPreferred Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Preferred" entry of the optional content usage language dictionary object.

Notes

Represents the "Preferred" entry of the optional content usage language dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "OFF" if no value has been provided.

This item may take one of the following valid values:.

  • ON
  • OFF

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.


ZZ Elements OptionalContentUsagePageElement

OptionalContentUsagePageElement Class

This class represents the optional content usage page dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OptionalContentUsagePageElement

Method | Description
OptionalContentUsagePageElement | Create a new OptionalContentUsagePageElement.
 | inherited methods...

Property | Description
EntrySubtype | Represents the "Subtype" entry of the optional content usage page dictionary object.
 | inherited properties...


ZZ Elements OptionalContentUsagePageElement Constructor Function

OptionalContentUsagePageElement Function

Create a new OptionalContentUsagePageElement.

Syntax

[C#]
OptionalContentUsagePageElement()
OptionalContentUsagePageElement(Atom atom, IndirectObject host)
OptionalContentUsagePageElement(IndirectObject obj)
OptionalContentUsagePageElement(Element relation, CreationOptions options)

[Visual Basic]
OptionalContentUsagePageElement()
OptionalContentUsagePageElement(atom As Atom, host As IndirectObject)
OptionalContentUsagePageElement(obj As IndirectObject)
OptionalContentUsagePageElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OptionalContentUsagePageElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OptionalContentUsagePageElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the optional content usage page dictionary object.

Notes

Represents the "Subtype" entry of the optional content usage page dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • HF
  • FG
  • BG
  • L

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.


ZZ Elements OptionalContentUsagePrintElement

OptionalContentUsagePrintElement Class

This class represents the optional content usage print dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OptionalContentUsagePrintElement

Method | Description
OptionalContentUsagePrintElement | Create a new OptionalContentUsagePrintElement.
 | inherited methods...

Property | Description
EntrySubtype | Represents the "Subtype" entry of the optional content usage print dictionary object.
EntryPrintState | Represents the "PrintState" entry of the optional content usage print dictionary object.
 | inherited properties...


ZZ Elements OptionalContentUsagePrintElement Constructor Function

OptionalContentUsagePrintElement Function

Create a new OptionalContentUsagePrintElement.

Syntax

[C#]
OptionalContentUsagePrintElement()
OptionalContentUsagePrintElement(Atom atom, IndirectObject host)
OptionalContentUsagePrintElement(IndirectObject obj)
OptionalContentUsagePrintElement(Element relation, CreationOptions options)

[Visual Basic]
OptionalContentUsagePrintElement()
OptionalContentUsagePrintElement(atom As Atom, host As IndirectObject)
OptionalContentUsagePrintElement(obj As IndirectObject)
OptionalContentUsagePrintElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OptionalContentUsagePrintElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OptionalContentUsagePrintElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the optional content usage print dictionary object.

Notes

Represents the "Subtype" entry of the optional content usage print dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.


ZZ Elements OptionalContentUsagePrintElement EntryPrintState Property

EntryPrintState Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "PrintState" entry of the optional content usage print dictionary object.

Notes

Represents the "PrintState" entry of the optional content usage print dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • ON
  • OFF

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.


ZZ Elements OptionalContentUsageUserElement

OptionalContentUsageUserElement Class

This class represents the optional content usage user dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OptionalContentUsageUserElement

Method | Description
OptionalContentUsageUserElement | Create a new OptionalContentUsageUserElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the optional content usage user dictionary object.
EntryName | Represents the "Name" entry of the optional content usage user dictionary object.
 | inherited properties...


ZZ Elements OptionalContentUsageUserElement Constructor Function

OptionalContentUsageUserElement Function

Create a new OptionalContentUsageUserElement.

Syntax

[C#]
OptionalContentUsageUserElement()
OptionalContentUsageUserElement(Atom atom, IndirectObject host)
OptionalContentUsageUserElement(IndirectObject obj)
OptionalContentUsageUserElement(Element relation, CreationOptions options)

[Visual Basic]
OptionalContentUsageUserElement()
OptionalContentUsageUserElement(atom As Atom, host As IndirectObject)
OptionalContentUsageUserElement(obj As IndirectObject)
OptionalContentUsageUserElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OptionalContentUsageUserElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OptionalContentUsageUserElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the optional content usage user dictionary object.

Notes

Represents the "Type" entry of the optional content usage user dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • Ind
  • Ttl
  • Org

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.


ZZ Elements OptionalContentUsageUserElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Name" entry of the optional content usage user dictionary object.

Notes

Represents the "Name" entry of the optional content usage user dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

If you read the specification you will see that an array of one string may be represented as a single string rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.


ZZ Elements OptionalContentUsageViewElement

OptionalContentUsageViewElement Class

This class represents the optional content usage view dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OptionalContentUsageViewElement

Method | Description
OptionalContentUsageViewElement | Create a new OptionalContentUsageViewElement.
 | inherited methods...

Property | Description
EntryViewState | Represents the "ViewState" entry of the optional content usage view dictionary object.
 | inherited properties...


ZZ Elements OptionalContentUsageViewElement Constructor Function

OptionalContentUsageViewElement Function

Create a new OptionalContentUsageViewElement.

Syntax

[C#]
OptionalContentUsageViewElement()
OptionalContentUsageViewElement(Atom atom, IndirectObject host)
OptionalContentUsageViewElement(IndirectObject obj)
OptionalContentUsageViewElement(Element relation, CreationOptions options)

[Visual Basic]
OptionalContentUsageViewElement()
OptionalContentUsageViewElement(atom As Atom, host As IndirectObject)
OptionalContentUsageViewElement(obj As IndirectObject)
OptionalContentUsageViewElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OptionalContentUsageViewElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OptionalContentUsageViewElement EntryViewState Property

EntryViewState Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ViewState" entry of the optional content usage view dictionary object.

Notes

Represents the "ViewState" entry of the optional content usage view dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "OFF" if no value has been provided.

This item may take one of the following valid values:.

  • ON
  • OFF

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.


ZZ Elements OptionalContentUsageZoomElement

OptionalContentUsageZoomElement Class

This class represents the optional content usage zoom dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OptionalContentUsageZoomElement

Method | Description
OptionalContentUsageZoomElement | Create a new OptionalContentUsageZoomElement.
 | inherited methods...

Property | Description
EntryMin | Represents the "min" entry of the optional content usage zoom dictionary object.
EntryMax | Represents the "max" entry of the optional content usage zoom dictionary object.
 | inherited properties...


ZZ Elements OptionalContentUsageZoomElement Constructor Function

OptionalContentUsageZoomElement Function

Create a new OptionalContentUsageZoomElement.

Syntax

[C#]
OptionalContentUsageZoomElement()
OptionalContentUsageZoomElement(Atom atom, IndirectObject host)
OptionalContentUsageZoomElement(IndirectObject obj)
OptionalContentUsageZoomElement(Element relation, CreationOptions options)

[Visual Basic]
OptionalContentUsageZoomElement()
OptionalContentUsageZoomElement(atom As Atom, host As IndirectObject)
OptionalContentUsageZoomElement(obj As IndirectObject)
OptionalContentUsageZoomElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OptionalContentUsageZoomElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OptionalContentUsageZoomElement EntryMin Property

EntryMin Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "min" entry of the optional content usage zoom dictionary object.

Notes

Represents the "min" entry of the optional content usage zoom dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.


ZZ Elements OptionalContentUsageZoomElement EntryMax Property

EntryMax Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "max" entry of the optional content usage zoom dictionary object.

Notes

Represents the "max" entry of the optional content usage zoom dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 102, page 232.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 100, page 284.


ZZ Elements UsageApplicationElement

UsageApplicationElement Class

This class represents the usage application dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 103, page 233.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 101, page 286.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.UsageApplicationElement

Method | Description
UsageApplicationElement | Create a new UsageApplicationElement.
 | inherited methods...

Property | Description
EntryEvent | Represents the "Event" entry of the usage application dictionary object.
EntryOCGs | Represents the "OCGs" entry of the usage application dictionary object.
EntryCategory | Represents the "Category" entry of the usage application dictionary object.
 | inherited properties...


ZZ Elements UsageApplicationElement Constructor Function

UsageApplicationElement Function

Create a new UsageApplicationElement.

Syntax

[C#]
UsageApplicationElement()
UsageApplicationElement(Atom atom, IndirectObject host)
UsageApplicationElement(IndirectObject obj)
UsageApplicationElement(Element relation, CreationOptions options)

[Visual Basic]
UsageApplicationElement()
UsageApplicationElement(atom As Atom, host As IndirectObject)
UsageApplicationElement(obj As IndirectObject)
UsageApplicationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new UsageApplicationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements UsageApplicationElement EntryEvent Property

EntryEvent Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Event" entry of the usage application dictionary object.

Notes

Represents the "Event" entry of the usage application dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • View
  • Print
  • Export

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 103, page 233.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 101, page 286.


ZZ Elements UsageApplicationElement EntryOCGs Property

EntryOCGs Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<OptionalContentGroupElement> [Visual Basic] ArrayElement<OptionalContentGroupElement> | null | No | Represents the "OCGs" entry of the usage application dictionary object.

Notes

Represents the "OCGs" entry of the usage application dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains OptionalContentGroupElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 103, page 233.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 101, page 286.


ZZ Elements UsageApplicationElement EntryCategory Property

EntryCategory Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Category" entry of the usage application dictionary object.

Notes

Represents the "Category" entry of the usage application dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF name objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 103, page 233.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 101, page 286.


ZZ Elements FontElement

FontElement Class

This class represents the font dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 254.

This class is always an indirect object because GraphicsStateParameterElement.EntryFont requires it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FontElement
         WebSupergoo.ABCpdf12.Elements.CIDFontElement
         WebSupergoo.ABCpdf12.Elements.TrueTypeFontElement
         WebSupergoo.ABCpdf12.Elements.Type0FontElement
         WebSupergoo.ABCpdf12.Elements.Type1FontElement
         WebSupergoo.ABCpdf12.Elements.Type3FontElement

Method | Description
FontElement | Create a new FontElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the font dictionary object.
 | inherited properties...


ZZ Elements FontElement Constructor Function

FontElement Function

Create a new FontElement.

Syntax

[C#]
FontElement()
FontElement(Atom atom, IndirectObject host)
FontElement(IndirectObject obj)
FontElement(Element relation, CreationOptions options)

[Visual Basic]
FontElement()
FontElement(atom As Atom, host As IndirectObject)
FontElement(obj As IndirectObject)
FontElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FontElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FontElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the font dictionary object.

Notes

Represents the "Type" entry of the font dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "Font".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 254.


ZZ Elements Type1FontElement

Type1FontElement Class

This class represents the type 1 font dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 111, page 254.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 109, page 310.

This class is always an indirect object because it inherits from FontElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FontElement
         WebSupergoo.ABCpdf12.Elements.Type1FontElement

Method | Description
Type1FontElement | Create a new Type1FontElement.
 | inherited methods...

Property | Description
EntrySubtype | Represents the "Subtype" entry of the type 1 font dictionary object.
EntryName | Represents the "Name" entry of the type 1 font dictionary object.
EntryBaseFont | Represents the "BaseFont" entry of the type 1 font dictionary object.
EntryFirstChar | Represents the "FirstChar" entry of the type 1 font dictionary object.
EntryLastChar | Represents the "LastChar" entry of the type 1 font dictionary object.
EntryWidths | Represents the "Widths" entry of the type 1 font dictionary object.
EntryFontDescriptor | Represents the "FontDescriptor" entry of the type 1 font dictionary object.
EntryEncoding | Represents the "Encoding" entry of the type 1 font dictionary object.
EntryToUnicode | Represents the "ToUnicode" entry of the type 1 font dictionary object.
 | inherited properties...


ZZ Elements Type1FontElement Constructor Function

Type1FontElement Function

Create a new Type1FontElement.

Syntax

[C#]
Type1FontElement()
Type1FontElement(Atom atom, IndirectObject host)
Type1FontElement(IndirectObject obj)
Type1FontElement(Element relation, CreationOptions options)

[Visual Basic]
Type1FontElement()
Type1FontElement(atom As Atom, host As IndirectObject)
Type1FontElement(obj As IndirectObject)
Type1FontElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type1FontElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type1FontElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the type 1 font dictionary object.

Notes

Represents the "Subtype" entry of the type 1 font dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "Type1" or "MMType1".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 111, page 254.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 109, page 310.


ZZ Elements Type1FontElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Name" entry of the type 1 font dictionary object.

Notes

Represents the "Name" entry of the type 1 font dictionary object.

It is defined as part of the PDF 1.0 specification. It was marked obsolescent in PDF 1.7 and deprecated in PDF 2.0.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 111, page 254.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 109, page 310.


ZZ Elements Type1FontElement EntryBaseFont Property

EntryBaseFont Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "BaseFont" entry of the type 1 font dictionary object.

Notes

Represents the "BaseFont" entry of the type 1 font dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 111, page 254.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 109, page 310.


ZZ Elements Type1FontElement EntryFirstChar Property

EntryFirstChar Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "FirstChar" entry of the type 1 font dictionary object.

Notes

Represents the "FirstChar" entry of the type 1 font dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 111, page 255.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 109, page 310.


ZZ Elements Type1FontElement EntryLastChar Property

EntryLastChar Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "LastChar" entry of the type 1 font dictionary object.

Notes

Represents the "LastChar" entry of the type 1 font dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 111, page 255.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 109, page 310.


ZZ Elements Type1FontElement EntryWidths Property

EntryWidths Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Widths" entry of the type 1 font dictionary object.

Notes

Represents the "Widths" entry of the type 1 font dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 111, page 255.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 109, page 310.


ZZ Elements Type1FontElement EntryFontDescriptor Property

EntryFontDescriptor Property

Type | Default Value | Read Only | Description
[C#] FontDescriptorElement [Visual Basic] FontDescriptorElement | null | No | Represents the "FontDescriptor" entry of the type 1 font dictionary object.

Notes

Represents the "FontDescriptor" entry of the type 1 font dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a FontDescriptorElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 111, page 255.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 109, page 311.


ZZ Elements Type1FontElement EntryEncoding Property

EntryEncoding Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Encoding" entry of the type 1 font dictionary object.

Notes

Represents the "Encoding" entry of the type 1 font dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

This item may take one of the following valid values:.

  • MacRomanEncoding
  • MacExpertEncoding
  • WinAnsiEncoding
.

2) An EncodingElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 111, page 255.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 109, page 311.


ZZ Elements Type1FontElement EntryToUnicode Property

EntryToUnicode Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | No | Represents the "ToUnicode" entry of the type 1 font dictionary object.

Notes

Represents the "ToUnicode" entry of the type 1 font dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains a StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 111, page 255.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 109, page 311.


ZZ Elements TrueTypeFontElement

TrueTypeFontElement Class

This class represents the truetype font dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 257.

This class is always an indirect object because it inherits from FontElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FontElement
         WebSupergoo.ABCpdf12.Elements.TrueTypeFontElement

Method | Description
TrueTypeFontElement | Create a new TrueTypeFontElement.
 | inherited methods...

Property | Description
EntrySubtype | Represents the "Subtype" entry of the truetype font dictionary object.
EntryName | Represents the "Name" entry of the truetype font dictionary object.
EntryBaseFont | Represents the "BaseFont" entry of the truetype font dictionary object.
EntryFirstChar | Represents the "FirstChar" entry of the truetype font dictionary object.
EntryLastChar | Represents the "LastChar" entry of the truetype font dictionary object.
EntryWidths | Represents the "Widths" entry of the truetype font dictionary object.
EntryFontDescriptor | Represents the "FontDescriptor" entry of the truetype font dictionary object.
EntryEncoding | Represents the "Encoding" entry of the truetype font dictionary object.
EntryToUnicode | Represents the "ToUnicode" entry of the truetype font dictionary object.
 | inherited properties...


ZZ Elements TrueTypeFontElement Constructor Function

TrueTypeFontElement Function

Create a new TrueTypeFontElement.

Syntax

[C#]
TrueTypeFontElement()
TrueTypeFontElement(Atom atom, IndirectObject host)
TrueTypeFontElement(IndirectObject obj)
TrueTypeFontElement(Element relation, CreationOptions options)

[Visual Basic]
TrueTypeFontElement()
TrueTypeFontElement(atom As Atom, host As IndirectObject)
TrueTypeFontElement(obj As IndirectObject)
TrueTypeFontElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new TrueTypeFontElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements TrueTypeFontElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the truetype font dictionary object.

Notes

Represents the "Subtype" entry of the truetype font dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "TrueType".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 257.


ZZ Elements TrueTypeFontElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Name" entry of the truetype font dictionary object.

Notes

Represents the "Name" entry of the truetype font dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 257.


ZZ Elements TrueTypeFontElement EntryBaseFont Property

EntryBaseFont Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "BaseFont" entry of the truetype font dictionary object.

Notes

Represents the "BaseFont" entry of the truetype font dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 257.


ZZ Elements TrueTypeFontElement EntryFirstChar Property

EntryFirstChar Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "FirstChar" entry of the truetype font dictionary object.

Notes

Represents the "FirstChar" entry of the truetype font dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 257.


ZZ Elements TrueTypeFontElement EntryLastChar Property

EntryLastChar Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "LastChar" entry of the truetype font dictionary object.

Notes

Represents the "LastChar" entry of the truetype font dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 257.


ZZ Elements TrueTypeFontElement EntryWidths Property

EntryWidths Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Widths" entry of the truetype font dictionary object.

Notes

Represents the "Widths" entry of the truetype font dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 257.


ZZ Elements TrueTypeFontElement EntryFontDescriptor Property

EntryFontDescriptor Property

Type | Default Value | Read Only | Description
[C#] FontDescriptorElement [Visual Basic] FontDescriptorElement | null | No | Represents the "FontDescriptor" entry of the truetype font dictionary object.

Notes

Represents the "FontDescriptor" entry of the truetype font dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a FontDescriptorElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 257.


ZZ Elements TrueTypeFontElement EntryEncoding Property

EntryEncoding Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Encoding" entry of the truetype font dictionary object.

Notes

Represents the "Encoding" entry of the truetype font dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

This item may take one of the following valid values:.

  • MacRomanEncoding
  • MacExpertEncoding
  • WinAnsiEncoding
.

2) An EncodingElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 257.


ZZ Elements TrueTypeFontElement EntryToUnicode Property

EntryToUnicode Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | No | Represents the "ToUnicode" entry of the truetype font dictionary object.

Notes

Represents the "ToUnicode" entry of the truetype font dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains a StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 257.


ZZ Elements Type3FontElement

Type3FontElement Class

This class represents the type 3 font dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 112, page 258.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 110, page 314.

This class is always an indirect object because it inherits from FontElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FontElement
         WebSupergoo.ABCpdf12.Elements.Type3FontElement

Method | Description
Type3FontElement | Create a new Type3FontElement.
 | inherited methods...

Property | Description
EntrySubtype | Represents the "Subtype" entry of the type 3 font dictionary object.
EntryName | Represents the "Name" entry of the type 3 font dictionary object.
EntryFontBBox | Represents the "FontBBox" entry of the type 3 font dictionary object.
EntryFontMatrix | Represents the "FontMatrix" entry of the type 3 font dictionary object.
EntryCharProcs | Represents the "CharProcs" entry of the type 3 font dictionary object.
EntryEncoding | Represents the "Encoding" entry of the type 3 font dictionary object.
EntryFirstChar | Represents the "FirstChar" entry of the type 3 font dictionary object.
EntryLastChar | Represents the "LastChar" entry of the type 3 font dictionary object.
EntryWidths | Represents the "Widths" entry of the type 3 font dictionary object.
EntryFontDescriptor | Represents the "FontDescriptor" entry of the type 3 font dictionary object.
EntryResources | Represents the "Resources" entry of the type 3 font dictionary object.
EntryToUnicode | Represents the "ToUnicode" entry of the type 3 font dictionary object.
 | inherited properties...


ZZ Elements Type3FontElement Constructor Function

Type3FontElement Function

Create a new Type3FontElement.

Syntax

[C#]
Type3FontElement()
Type3FontElement(Atom atom, IndirectObject host)
Type3FontElement(IndirectObject obj)
Type3FontElement(Element relation, CreationOptions options)

[Visual Basic]
Type3FontElement()
Type3FontElement(atom As Atom, host As IndirectObject)
Type3FontElement(obj As IndirectObject)
Type3FontElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type3FontElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type3FontElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the type 3 font dictionary object.

Notes

Represents the "Subtype" entry of the type 3 font dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "Type3".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 112, page 258.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 110, page 314.


ZZ Elements Type3FontElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Name" entry of the type 3 font dictionary object.

Notes

Represents the "Name" entry of the type 3 font dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 112, page 258.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 110, page 314.


ZZ Elements Type3FontElement EntryFontBBox Property

EntryFontBBox Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "FontBBox" entry of the type 3 font dictionary object.

Notes

Represents the "FontBBox" entry of the type 3 font dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 112, page 259.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 110, page 314.


ZZ Elements Type3FontElement EntryFontMatrix Property

EntryFontMatrix Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "FontMatrix" entry of the type 3 font dictionary object.

Notes

Represents the "FontMatrix" entry of the type 3 font dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 112, page 259.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 110, page 314.


ZZ Elements Type3FontElement EntryCharProcs Property

EntryCharProcs Property

Type | Default Value | Read Only | Description
[C#] DictElement<StreamElement> [Visual Basic] DictElement<StreamElement> | null | No | Represents the "CharProcs" entry of the type 3 font dictionary object.

Notes

Represents the "CharProcs" entry of the type 3 font dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 112, page 259.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 110, page 314.


ZZ Elements Type3FontElement EntryEncoding Property

EntryEncoding Property

Type | Default Value | Read Only | Description
[C#] EncodingElement [Visual Basic] EncodingElement | null | No | Represents the "Encoding" entry of the type 3 font dictionary object.

Notes

Represents the "Encoding" entry of the type 3 font dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an EncodingElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 112, page 259.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 110, page 315.


ZZ Elements Type3FontElement EntryFirstChar Property

EntryFirstChar Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "FirstChar" entry of the type 3 font dictionary object.

Notes

Represents the "FirstChar" entry of the type 3 font dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 112, page 259.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 110, page 315.


ZZ Elements Type3FontElement EntryLastChar Property

EntryLastChar Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "LastChar" entry of the type 3 font dictionary object.

Notes

Represents the "LastChar" entry of the type 3 font dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 112, page 259.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 110, page 315.


ZZ Elements Type3FontElement EntryWidths Property

EntryWidths Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Widths" entry of the type 3 font dictionary object.

Notes

Represents the "Widths" entry of the type 3 font dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 112, page 259.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 110, page 315.


ZZ Elements Type3FontElement EntryFontDescriptor Property

EntryFontDescriptor Property

Type | Default Value | Read Only | Description
[C#] FontDescriptorElement [Visual Basic] FontDescriptorElement | null | No | Represents the "FontDescriptor" entry of the type 3 font dictionary object.

Notes

Represents the "FontDescriptor" entry of the type 3 font dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a FontDescriptorElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 112, page 259.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 110, page 315.


ZZ Elements Type3FontElement EntryResources Property

EntryResources Property

Type | Default Value | Read Only | Description
[C#] ResourceElement [Visual Basic] ResourceElement | null | No | Represents the "Resources" entry of the type 3 font dictionary object.

Notes

Represents the "Resources" entry of the type 3 font dictionary object.

It is defined as part of the PDF 1.2 specification.

It contains a ResourceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 112, page 259.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 110, page 315.


ZZ Elements Type3FontElement EntryToUnicode Property

EntryToUnicode Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | No | Represents the "ToUnicode" entry of the type 3 font dictionary object.

Notes

Represents the "ToUnicode" entry of the type 3 font dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains a StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 112, page 259.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 110, page 315.


ZZ Elements EncodingElement

EncodingElement Class

This class represents the encoding dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 114, page 263.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 112, page 319.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.EncodingElement

Method | Description
EncodingElement | Create a new EncodingElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the encoding dictionary object.
EntryBaseEncoding | Represents the "BaseEncoding" entry of the encoding dictionary object.
EntryDifferences | Represents the "Differences" entry of the encoding dictionary object.
 | inherited properties...


ZZ Elements EncodingElement Constructor Function

EncodingElement Function

Create a new EncodingElement.

Syntax

[C#]
EncodingElement()
EncodingElement(Atom atom, IndirectObject host)
EncodingElement(IndirectObject obj)
EncodingElement(Element relation, CreationOptions options)

[Visual Basic]
EncodingElement()
EncodingElement(atom As Atom, host As IndirectObject)
EncodingElement(obj As IndirectObject)
EncodingElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new EncodingElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements EncodingElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the encoding dictionary object.

Notes

Represents the "Type" entry of the encoding dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Encoding".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 114, page 263.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 112, page 319.


ZZ Elements EncodingElement EntryBaseEncoding Property

EntryBaseEncoding Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "BaseEncoding" entry of the encoding dictionary object.

Notes

Represents the "BaseEncoding" entry of the encoding dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • MacRomanEncoding
  • MacExpertEncoding
  • WinAnsiEncoding

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 114, page 263.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 112, page 320.


ZZ Elements EncodingElement EntryDifferences Property

EntryDifferences Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "Differences" entry of the encoding dictionary object.

Notes

Represents the "Differences" entry of the encoding dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 114, page 263.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 112, page 320.


ZZ Elements CIDSystemInfoElement

CIDSystemInfoElement Class

This class represents the cidsysteminfo dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 116, page 268.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 114, page 326.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CIDSystemInfoElement

Method | Description
CIDSystemInfoElement | Create a new CIDSystemInfoElement.
 | inherited methods...

Property | Description
EntryRegistry | Represents the "Registry" entry of the cidsysteminfo dictionary object.
EntryOrdering | Represents the "Ordering" entry of the cidsysteminfo dictionary object.
EntrySupplement | Represents the "Supplement" entry of the cidsysteminfo dictionary object.
 | inherited properties...


ZZ Elements CIDSystemInfoElement Constructor Function

CIDSystemInfoElement Function

Create a new CIDSystemInfoElement.

Syntax

[C#]
CIDSystemInfoElement()
CIDSystemInfoElement(Atom atom, IndirectObject host)
CIDSystemInfoElement(IndirectObject obj)
CIDSystemInfoElement(Element relation, CreationOptions options)

[Visual Basic]
CIDSystemInfoElement()
CIDSystemInfoElement(atom As Atom, host As IndirectObject)
CIDSystemInfoElement(obj As IndirectObject)
CIDSystemInfoElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CIDSystemInfoElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CIDSystemInfoElement EntryRegistry Property

EntryRegistry Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Registry" entry of the cidsysteminfo dictionary object.

Notes

Represents the "Registry" entry of the cidsysteminfo dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 116, page 268.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 114, page 326.


ZZ Elements CIDSystemInfoElement EntryOrdering Property

EntryOrdering Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Ordering" entry of the cidsysteminfo dictionary object.

Notes

Represents the "Ordering" entry of the cidsysteminfo dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 116, page 269.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 114, page 326.


ZZ Elements CIDSystemInfoElement EntrySupplement Property

EntrySupplement Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Supplement" entry of the cidsysteminfo dictionary object.

Notes

Represents the "Supplement" entry of the cidsysteminfo dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 116, page 269.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 114, page 326.


ZZ Elements CIDFontElement

CIDFontElement Class

This class represents the cidfont dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 117, page 269.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 115, page 327.

This class is always an indirect object because it inherits from FontElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FontElement
         WebSupergoo.ABCpdf12.Elements.CIDFontElement

Method | Description
CIDFontElement | Create a new CIDFontElement.
 | inherited methods...

Property | Description
EntrySubtype | Represents the "Subtype" entry of the cidfont dictionary object.
EntryBaseFont | Represents the "BaseFont" entry of the cidfont dictionary object.
EntryCIDSystemInfo | Represents the "CIDSystemInfo" entry of the cidfont dictionary object.
EntryFontDescriptor | Represents the "FontDescriptor" entry of the cidfont dictionary object.
EntryDW | Represents the "DW" entry of the cidfont dictionary object.
EntryW | Represents the "W" entry of the cidfont dictionary object.
EntryDW2 | Represents the "DW2" entry of the cidfont dictionary object.
EntryW2 | Represents the "W2" entry of the cidfont dictionary object.
EntryCIDToGIDMap | Represents the "CIDToGIDMap" entry of the cidfont dictionary object.
 | inherited properties...


ZZ Elements CIDFontElement Constructor Function

CIDFontElement Function

Create a new CIDFontElement.

Syntax

[C#]
CIDFontElement()
CIDFontElement(Atom atom, IndirectObject host)
CIDFontElement(IndirectObject obj)
CIDFontElement(Element relation, CreationOptions options)

[Visual Basic]
CIDFontElement()
CIDFontElement(atom As Atom, host As IndirectObject)
CIDFontElement(obj As IndirectObject)
CIDFontElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CIDFontElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CIDFontElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the cidfont dictionary object.

Notes

Represents the "Subtype" entry of the cidfont dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • CIDFontType0
  • CIDFontType2

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 117, page 269.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 115, page 327.


ZZ Elements CIDFontElement EntryBaseFont Property

EntryBaseFont Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "BaseFont" entry of the cidfont dictionary object.

Notes

Represents the "BaseFont" entry of the cidfont dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 117, page 269.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 115, page 327.


ZZ Elements CIDFontElement EntryCIDSystemInfo Property

EntryCIDSystemInfo Property

Type | Default Value | Read Only | Description
[C#] CIDSystemInfoElement [Visual Basic] CIDSystemInfoElement | null | No | Represents the "CIDSystemInfo" entry of the cidfont dictionary object.

Notes

Represents the "CIDSystemInfo" entry of the cidfont dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a CIDSystemInfoElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 117, page 269.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 115, page 327.


ZZ Elements CIDFontElement EntryFontDescriptor Property

EntryFontDescriptor Property

Type | Default Value | Read Only | Description
[C#] FontDescriptorElement [Visual Basic] FontDescriptorElement | null | No | Represents the "FontDescriptor" entry of the cidfont dictionary object.

Notes

Represents the "FontDescriptor" entry of the cidfont dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a FontDescriptorElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 117, page 269.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 115, page 327.


ZZ Elements CIDFontElement EntryDW Property

EntryDW Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "DW" entry of the cidfont dictionary object.

Notes

Represents the "DW" entry of the cidfont dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1000 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 117, page 269.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 115, page 327.


ZZ Elements CIDFontElement EntryW Property

EntryW Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "W" entry of the cidfont dictionary object.

Notes

Represents the "W" entry of the cidfont dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 117, page 270.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 115, page 327.


ZZ Elements CIDFontElement EntryDW2 Property

EntryDW2 Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "DW2" entry of the cidfont dictionary object.

Notes

Represents the "DW2" entry of the cidfont dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 117, page 270.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 115, page 327.


ZZ Elements CIDFontElement EntryW2 Property

EntryW2 Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "W2" entry of the cidfont dictionary object.

Notes

Represents the "W2" entry of the cidfont dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 117, page 270.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 115, page 327.


ZZ Elements CIDFontElement EntryCIDToGIDMap Property

EntryCIDToGIDMap Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "CIDToGIDMap" entry of the cidfont dictionary object.

Notes

Represents the "CIDToGIDMap" entry of the cidfont dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

The PDF specification states that this item assumes a value of "Identity" if no value has been provided.

If provided, this item must always take the value "Identity".

2) A StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 117, page 270.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 115, page 327.


ZZ Elements CMapStreamElement

CMapStreamElement Class

This class represents the cmap stream dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 120, page 277.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 118, page 336.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CMapStreamElement

Method | Description
CMapStreamElement | Create a new CMapStreamElement.
 | inherited methods...

Property | Description
StreamElement | The StreamElement associated with this class.
EntryType | Represents the "Type" entry of the cmap stream dictionary object.
EntryCMapName | Represents the "CMapName" entry of the cmap stream dictionary object.
EntryCIDSystemInfo | Represents the "CIDSystemInfo" entry of the cmap stream dictionary object.
EntryWMode | Represents the "WMode" entry of the cmap stream dictionary object.
EntryUseCMap | Represents the "UseCMap" entry of the cmap stream dictionary object.
 | inherited properties...


ZZ Elements CMapStreamElement Constructor Function

CMapStreamElement Function

Create a new CMapStreamElement.

Syntax

[C#]
CMapStreamElement()
CMapStreamElement(Atom atom, IndirectObject host)
CMapStreamElement(IndirectObject obj)
CMapStreamElement(Element relation, CreationOptions options)

[Visual Basic]
CMapStreamElement()
CMapStreamElement(atom As Atom, host As IndirectObject)
CMapStreamElement(obj As IndirectObject)
CMapStreamElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CMapStreamElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CMapStreamElement StreamElement Property

StreamElement Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | Yes | The StreamElement associated with this class.

Notes

The StreamElement associated with this class.


ZZ Elements CMapStreamElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the cmap stream dictionary object.

Notes

Represents the "Type" entry of the cmap stream dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "CMap".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 120, page 277.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 118, page 336.


ZZ Elements CMapStreamElement EntryCMapName Property

EntryCMapName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "CMapName" entry of the cmap stream dictionary object.

Notes

Represents the "CMapName" entry of the cmap stream dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 120, page 277.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 118, page 336.


ZZ Elements CMapStreamElement EntryCIDSystemInfo Property

EntryCIDSystemInfo Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "CIDSystemInfo" entry of the cmap stream dictionary object.

Notes

Represents the "CIDSystemInfo" entry of the cmap stream dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 120, page 277.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 118, page 336.


ZZ Elements CMapStreamElement EntryWMode Property

EntryWMode Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "WMode" entry of the cmap stream dictionary object.

Notes

Represents the "WMode" entry of the cmap stream dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 120, page 277.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 118, page 336.


ZZ Elements CMapStreamElement EntryUseCMap Property

EntryUseCMap Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "UseCMap" entry of the cmap stream dictionary object.

Notes

Represents the "UseCMap" entry of the cmap stream dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

2) A StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 120, page 277.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 118, page 336.


ZZ Elements Type0FontElement

Type0FontElement Class

This class represents the type 0 font dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 121, page 279.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 119, page 338.

This class is always an indirect object because it inherits from FontElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FontElement
         WebSupergoo.ABCpdf12.Elements.Type0FontElement

Method | Description
Type0FontElement | Create a new Type0FontElement.
 | inherited methods...

Property | Description
EntrySubtype | Represents the "Subtype" entry of the type 0 font dictionary object.
EntryBaseFont | Represents the "BaseFont" entry of the type 0 font dictionary object.
EntryEncoding | Represents the "Encoding" entry of the type 0 font dictionary object.
EntryDescendantFonts | Represents the "DescendantFonts" entry of the type 0 font dictionary object.
EntryToUnicode | Represents the "ToUnicode" entry of the type 0 font dictionary object.
 | inherited properties...


ZZ Elements Type0FontElement Constructor Function

Type0FontElement Function

Create a new Type0FontElement.

Syntax

[C#]
Type0FontElement()
Type0FontElement(Atom atom, IndirectObject host)
Type0FontElement(IndirectObject obj)
Type0FontElement(Element relation, CreationOptions options)

[Visual Basic]
Type0FontElement()
Type0FontElement(atom As Atom, host As IndirectObject)
Type0FontElement(obj As IndirectObject)
Type0FontElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type0FontElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type0FontElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the type 0 font dictionary object.

Notes

Represents the "Subtype" entry of the type 0 font dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "Type0".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 121, page 279.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 119, page 338.


ZZ Elements Type0FontElement EntryBaseFont Property

EntryBaseFont Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "BaseFont" entry of the type 0 font dictionary object.

Notes

Represents the "BaseFont" entry of the type 0 font dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 121, page 279.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 119, page 338.


ZZ Elements Type0FontElement EntryEncoding Property

EntryEncoding Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Encoding" entry of the type 0 font dictionary object.

Notes

Represents the "Encoding" entry of the type 0 font dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

2) A StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 121, page 279.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 119, page 338.


ZZ Elements Type0FontElement EntryDescendantFonts Property

EntryDescendantFonts Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<CIDFontElement> [Visual Basic] ArrayElement<CIDFontElement> | null | No | Represents the "DescendantFonts" entry of the type 0 font dictionary object.

Notes

Represents the "DescendantFonts" entry of the type 0 font dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains CIDFontElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 121, page 280.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 119, page 338.


ZZ Elements Type0FontElement EntryToUnicode Property

EntryToUnicode Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | No | Represents the "ToUnicode" entry of the type 0 font dictionary object.

Notes

Represents the "ToUnicode" entry of the type 0 font dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 121, page 280.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 119, page 338.


ZZ Elements FontDescriptorElement

FontDescriptorElement Class

This class represents the font descriptor. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 281.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 341.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 122, page 345.

This class is always an indirect object because CIDFontElement.EntryFontDescriptor, TrueTypeFontElement.EntryFontDescriptor, Type1FontElement.EntryFontDescriptor and Type3FontElement.EntryFontDescriptor require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FontDescriptorElement

Method | Description
FontDescriptorElement | Create a new FontDescriptorElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the font descriptor object.
EntryFontName | Represents the "FontName" entry of the font descriptor object.
EntryFontFamily | Represents the "FontFamily" entry of the font descriptor object.
EntryFontStretch | Represents the "FontStretch" entry of the font descriptor object.
EntryFontWeight | Represents the "FontWeight" entry of the font descriptor object.
EntryFlags | Represents the "Flags" entry of the font descriptor object.
EntryFontBBox | Represents the "FontBBox" entry of the font descriptor object.
EntryItalicAngle | Represents the "ItalicAngle" entry of the font descriptor object.
EntryAscent | Represents the "Ascent" entry of the font descriptor object.
EntryDescent | Represents the "Descent" entry of the font descriptor object.
EntryLeading | Represents the "Leading" entry of the font descriptor object.
EntryCapHeight | Represents the "CapHeight" entry of the font descriptor object.
EntryXHeight | Represents the "XHeight" entry of the font descriptor object.
EntryStemV | Represents the "StemV" entry of the font descriptor object.
EntryStemH | Represents the "StemH" entry of the font descriptor object.
EntryAvgWidth | Represents the "AvgWidth" entry of the font descriptor object.
EntryMaxWidth | Represents the "MaxWidth" entry of the font descriptor object.
EntryMissingWidth | Represents the "MissingWidth" entry of the font descriptor object.
EntryFontFile | Represents the "FontFile" entry of the font descriptor object.
EntryFontFile2 | Represents the "FontFile2" entry of the font descriptor object.
EntryFontFile3 | Represents the "FontFile3" entry of the font descriptor object.
EntryCharSet | Represents the "CharSet" entry of the font descriptor object.
EntryStyle | Represents the "Style" entry of the font descriptor object.
EntryLang | Represents the "Lang" entry of the font descriptor object.
EntryFD | Represents the "FD" entry of the font descriptor object.
EntryCIDSet | Represents the "CIDSet" entry of the font descriptor object.
 | inherited properties...


ZZ Elements FontDescriptorElement Constructor Function

FontDescriptorElement Function

Create a new FontDescriptorElement.

Syntax

[C#]
FontDescriptorElement()
FontDescriptorElement(Atom atom, IndirectObject host)
FontDescriptorElement(IndirectObject obj)
FontDescriptorElement(Element relation, CreationOptions options)

[Visual Basic]
FontDescriptorElement()
FontDescriptorElement(atom As Atom, host As IndirectObject)
FontDescriptorElement(obj As IndirectObject)
FontDescriptorElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FontDescriptorElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FontDescriptorElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the font descriptor object.

Notes

Represents the "Type" entry of the font descriptor object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "FontDescriptor".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 281.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 341.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryFontName Property

EntryFontName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "FontName" entry of the font descriptor object.

Notes

Represents the "FontName" entry of the font descriptor object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 281.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 341.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryFontFamily Property

EntryFontFamily Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "FontFamily" entry of the font descriptor object.

Notes

Represents the "FontFamily" entry of the font descriptor object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 281.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 341.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryFontStretch Property

EntryFontStretch Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "FontStretch" entry of the font descriptor object.

Notes

Represents the "FontStretch" entry of the font descriptor object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • (ordered
  • UltraCondensed
  • ExtraCondensed
  • Condensed
  • SemiCondensed
  • Normal
  • SemiExpanded
  • Expanded
  • ExtraExpanded
  • UltraExpanded

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 282.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 341.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryFontWeight Property

EntryFontWeight Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "FontWeight" entry of the font descriptor object.

Notes

Represents the "FontWeight" entry of the font descriptor object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 282.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 341.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryFlags Property

EntryFlags Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Flags" entry of the font descriptor object.

Notes

Represents the "Flags" entry of the font descriptor object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 282.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 341.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryFontBBox Property

EntryFontBBox Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "FontBBox" entry of the font descriptor object.

Notes

Represents the "FontBBox" entry of the font descriptor object.

It is defined as part of the PDF 1.0 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 282.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 341.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryItalicAngle Property

EntryItalicAngle Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "ItalicAngle" entry of the font descriptor object.

Notes

Represents the "ItalicAngle" entry of the font descriptor object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 282.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 341.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryAscent Property

EntryAscent Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Ascent" entry of the font descriptor object.

Notes

Represents the "Ascent" entry of the font descriptor object.

It is defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 282.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 341.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryDescent Property

EntryDescent Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Descent" entry of the font descriptor object.

Notes

Represents the "Descent" entry of the font descriptor object.

It is defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 282.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 342.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryLeading Property

EntryLeading Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Leading" entry of the font descriptor object.

Notes

Represents the "Leading" entry of the font descriptor object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 282.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 342.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryCapHeight Property

EntryCapHeight Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "CapHeight" entry of the font descriptor object.

Notes

Represents the "CapHeight" entry of the font descriptor object.

It is defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 282.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 342.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryXHeight Property

EntryXHeight Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "XHeight" entry of the font descriptor object.

Notes

Represents the "XHeight" entry of the font descriptor object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 282.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 342.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryStemV Property

EntryStemV Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "StemV" entry of the font descriptor object.

Notes

Represents the "StemV" entry of the font descriptor object.

It is defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 282.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 342.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryStemH Property

EntryStemH Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "StemH" entry of the font descriptor object.

Notes

Represents the "StemH" entry of the font descriptor object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 282.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 342.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryAvgWidth Property

EntryAvgWidth Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "AvgWidth" entry of the font descriptor object.

Notes

Represents the "AvgWidth" entry of the font descriptor object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 283.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 342.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryMaxWidth Property

EntryMaxWidth Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "MaxWidth" entry of the font descriptor object.

Notes

Represents the "MaxWidth" entry of the font descriptor object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 283.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 342.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryMissingWidth Property

EntryMissingWidth Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "MissingWidth" entry of the font descriptor object.

Notes

Represents the "MissingWidth" entry of the font descriptor object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 283.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 342.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryFontFile Property

EntryFontFile Property

Type | Default Value | Read Only | Description
[C#] EmbeddedFontStreamElement [Visual Basic] EmbeddedFontStreamElement | null | No | Represents the "FontFile" entry of the font descriptor object.

Notes

Represents the "FontFile" entry of the font descriptor object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an EmbeddedFontStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 283.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 342.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryFontFile2 Property

EntryFontFile2 Property

Type | Default Value | Read Only | Description
[C#] EmbeddedFontStreamElement [Visual Basic] EmbeddedFontStreamElement | null | No | Represents the "FontFile2" entry of the font descriptor object.

Notes

Represents the "FontFile2" entry of the font descriptor object.

It is an optional entry defined as part of the PDF 1.1 specification.

It contains an EmbeddedFontStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 283.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 342.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryFontFile3 Property

EntryFontFile3 Property

Type | Default Value | Read Only | Description
[C#] EmbeddedFontStreamElement [Visual Basic] EmbeddedFontStreamElement | null | No | Represents the "FontFile3" entry of the font descriptor object.

Notes

Represents the "FontFile3" entry of the font descriptor object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains an EmbeddedFontStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 283.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 342.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryCharSet Property

EntryCharSet Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "CharSet" entry of the font descriptor object.

Notes

Represents the "CharSet" entry of the font descriptor object.

It is an optional entry defined as part of the PDF 1.1 specification. It was deprecated in PDF 2.0.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 283.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 342.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryStyle Property

EntryStyle Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Style" entry of the font descriptor object.

Notes

Represents the "Style" entry of the font descriptor object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 281.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 341.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryLang Property

EntryLang Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Lang" entry of the font descriptor object.

Notes

Represents the "Lang" entry of the font descriptor object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 281.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 341.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryFD Property

EntryFD Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "FD" entry of the font descriptor object.

Notes

Represents the "FD" entry of the font descriptor object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 281.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 341.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements FontDescriptorElement EntryCIDSet Property

EntryCIDSet Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | No | Represents the "CIDSet" entry of the font descriptor object.

Notes

Represents the "CIDSet" entry of the font descriptor object.

It is an optional entry defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

It contains a StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 122, page 281.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 120, page 341.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 124, page 285.


ZZ Elements EmbeddedFontStreamElement

EmbeddedFontStreamElement Class

This class represents the embedded font stream dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 127, page 290.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 125, page 350.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.EmbeddedFontStreamElement

Method | Description
EmbeddedFontStreamElement | Create a new EmbeddedFontStreamElement.
 | inherited methods...

Property | Description
StreamElement | The StreamElement associated with this class.
EntryLength1 | Represents the "Length1" entry of the embedded font stream dictionary object.
EntryLength2 | Represents the "Length2" entry of the embedded font stream dictionary object.
EntryLength3 | Represents the "Length3" entry of the embedded font stream dictionary object.
EntrySubtype | Represents the "Subtype" entry of the embedded font stream dictionary object.
 | inherited properties...


ZZ Elements EmbeddedFontStreamElement Constructor Function

EmbeddedFontStreamElement Function

Create a new EmbeddedFontStreamElement.

Syntax

[C#]
EmbeddedFontStreamElement()
EmbeddedFontStreamElement(Atom atom, IndirectObject host)
EmbeddedFontStreamElement(IndirectObject obj)
EmbeddedFontStreamElement(Element relation, CreationOptions options)

[Visual Basic]
EmbeddedFontStreamElement()
EmbeddedFontStreamElement(atom As Atom, host As IndirectObject)
EmbeddedFontStreamElement(obj As IndirectObject)
EmbeddedFontStreamElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new EmbeddedFontStreamElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements EmbeddedFontStreamElement StreamElement Property

StreamElement Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | Yes | The StreamElement associated with this class.

Notes

The StreamElement associated with this class.


ZZ Elements EmbeddedFontStreamElement EntryLength1 Property

EntryLength1 Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Length1" entry of the embedded font stream dictionary object.

Notes

Represents the "Length1" entry of the embedded font stream dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 127, page 290.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 125, page 350.


ZZ Elements EmbeddedFontStreamElement EntryLength2 Property

EntryLength2 Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Length2" entry of the embedded font stream dictionary object.

Notes

Represents the "Length2" entry of the embedded font stream dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 127, page 290.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 125, page 350.


ZZ Elements EmbeddedFontStreamElement EntryLength3 Property

EntryLength3 Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Length3" entry of the embedded font stream dictionary object.

Notes

Represents the "Length3" entry of the embedded font stream dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 127, page 290.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 125, page 350.


ZZ Elements EmbeddedFontStreamElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the embedded font stream dictionary object.

Notes

Represents the "Subtype" entry of the embedded font stream dictionary object.

It is defined as part of the PDF 1.2 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • Type1C
  • CIDFontType0C
  • OpenType

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 127, page 290.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 125, page 351.


ZZ Elements HalftoneElement

HalftoneElement Class

This class represents the halftone dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 308.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.HalftoneElement
         WebSupergoo.ABCpdf12.Elements.Type10HalftoneElement
         WebSupergoo.ABCpdf12.Elements.Type16HalftoneElement
         WebSupergoo.ABCpdf12.Elements.Type1HalftoneElement
         WebSupergoo.ABCpdf12.Elements.Type5HalftoneElement
         WebSupergoo.ABCpdf12.Elements.Type6HalftoneElement

Method | Description
HalftoneElement | Create a new HalftoneElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the halftone dictionary object.
EntryHalftoneType | Represents the "HalftoneType" entry of the halftone dictionary object.
 | inherited properties...


ZZ Elements HalftoneElement Constructor Function

HalftoneElement Function

Create a new HalftoneElement.

Syntax

[C#]
HalftoneElement()
HalftoneElement(Atom atom, IndirectObject host)
HalftoneElement(IndirectObject obj)
HalftoneElement(Element relation, CreationOptions options)

[Visual Basic]
HalftoneElement()
HalftoneElement(atom As Atom, host As IndirectObject)
HalftoneElement(obj As IndirectObject)
HalftoneElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new HalftoneElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements HalftoneElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the halftone dictionary object.

Notes

Represents the "Type" entry of the halftone dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Halftone".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 308.


ZZ Elements HalftoneElement EntryHalftoneType Property

EntryHalftoneType Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "HalftoneType" entry of the halftone dictionary object.

Notes

Represents the "HalftoneType" entry of the halftone dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 308.


ZZ Elements Type1HalftoneElement

Type1HalftoneElement Class

This class represents the type 1 halftone dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 130, page 309.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 128, page 371.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.HalftoneElement
         WebSupergoo.ABCpdf12.Elements.Type1HalftoneElement

Method | Description
Type1HalftoneElement | Create a new Type1HalftoneElement.
 | inherited methods...

Property | Description
EntryHalftoneName | Represents the "HalftoneName" entry of the type 1 halftone dictionary object.
EntryFrequency | Represents the "Frequency" entry of the type 1 halftone dictionary object.
EntryAngle | Represents the "Angle" entry of the type 1 halftone dictionary object.
EntrySpotFunction | Represents the "SpotFunction" entry of the type 1 halftone dictionary object.
EntryAccurateScreens | Represents the "AccurateScreens" entry of the type 1 halftone dictionary object.
EntryTransferFunction | Represents the "TransferFunction" entry of the type 1 halftone dictionary object.
 | inherited properties...


ZZ Elements Type1HalftoneElement Constructor Function

Type1HalftoneElement Function

Create a new Type1HalftoneElement.

Syntax

[C#]
Type1HalftoneElement()
Type1HalftoneElement(Atom atom, IndirectObject host)
Type1HalftoneElement(IndirectObject obj)
Type1HalftoneElement(Element relation, CreationOptions options)

[Visual Basic]
Type1HalftoneElement()
Type1HalftoneElement(atom As Atom, host As IndirectObject)
Type1HalftoneElement(obj As IndirectObject)
Type1HalftoneElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type1HalftoneElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type1HalftoneElement EntryHalftoneName Property

EntryHalftoneName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "HalftoneName" entry of the type 1 halftone dictionary object.

Notes

Represents the "HalftoneName" entry of the type 1 halftone dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 130, page 309.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 128, page 371.


ZZ Elements Type1HalftoneElement EntryFrequency Property

EntryFrequency Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Frequency" entry of the type 1 halftone dictionary object.

Notes

Represents the "Frequency" entry of the type 1 halftone dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 130, page 309.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 128, page 371.


ZZ Elements Type1HalftoneElement EntryAngle Property

EntryAngle Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Angle" entry of the type 1 halftone dictionary object.

Notes

Represents the "Angle" entry of the type 1 halftone dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 130, page 309.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 128, page 371.


ZZ Elements Type1HalftoneElement EntrySpotFunction Property

EntrySpotFunction Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "SpotFunction" entry of the type 1 halftone dictionary object.

Notes

Represents the "SpotFunction" entry of the type 1 halftone dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

This item may take one of the following valid values:.

  • SimpleDot
  • InvertedSimpleDot
  • DoubleDot
  • InvertedDoubleDot
  • CosineDot
  • Double
  • InvertedDouble
  • Line
  • LineX
  • LineY
  • Round
  • Ellipse
  • EllipseA
  • InvertedEllipseA
  • EllipseB
  • EllipseC
  • InvertedEllipseC
  • Square
  • Cross
  • Rhomboid
  • Diamond
.

2) A FunctionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 130, page 309.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 128, page 371.


ZZ Elements Type1HalftoneElement EntryAccurateScreens Property

EntryAccurateScreens Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "AccurateScreens" entry of the type 1 halftone dictionary object.

Notes

Represents the "AccurateScreens" entry of the type 1 halftone dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 130, page 309.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 128, page 371.


ZZ Elements Type1HalftoneElement EntryTransferFunction Property

EntryTransferFunction Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "TransferFunction" entry of the type 1 halftone dictionary object.

Notes

Represents the "TransferFunction" entry of the type 1 halftone dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

If provided, this item must always take the value "Identity".

2) A FunctionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 130, page 310.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 128, page 371.


ZZ Elements Type6HalftoneElement

Type6HalftoneElement Class

This class represents the type 6 halftone dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 131, page 310.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 129, page 372.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.HalftoneElement
         WebSupergoo.ABCpdf12.Elements.Type6HalftoneElement

Method | Description
Type6HalftoneElement | Create a new Type6HalftoneElement.
 | inherited methods...

Property | Description
EntryHalftoneName | Represents the "HalftoneName" entry of the type 6 halftone dictionary object.
EntryWidth | Represents the "Width" entry of the type 6 halftone dictionary object.
EntryHeight | Represents the "Height" entry of the type 6 halftone dictionary object.
EntryTransferFunction | Represents the "TransferFunction" entry of the type 6 halftone dictionary object.
 | inherited properties...


ZZ Elements Type6HalftoneElement Constructor Function

Type6HalftoneElement Function

Create a new Type6HalftoneElement.

Syntax

[C#]
Type6HalftoneElement()
Type6HalftoneElement(Atom atom, IndirectObject host)
Type6HalftoneElement(IndirectObject obj)
Type6HalftoneElement(Element relation, CreationOptions options)

[Visual Basic]
Type6HalftoneElement()
Type6HalftoneElement(atom As Atom, host As IndirectObject)
Type6HalftoneElement(obj As IndirectObject)
Type6HalftoneElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type6HalftoneElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type6HalftoneElement EntryHalftoneName Property

EntryHalftoneName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "HalftoneName" entry of the type 6 halftone dictionary object.

Notes

Represents the "HalftoneName" entry of the type 6 halftone dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 131, page 310.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 129, page 372.


ZZ Elements Type6HalftoneElement EntryWidth Property

EntryWidth Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Width" entry of the type 6 halftone dictionary object.

Notes

Represents the "Width" entry of the type 6 halftone dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 131, page 310.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 129, page 372.


ZZ Elements Type6HalftoneElement EntryHeight Property

EntryHeight Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Height" entry of the type 6 halftone dictionary object.

Notes

Represents the "Height" entry of the type 6 halftone dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 131, page 310.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 129, page 372.


ZZ Elements Type6HalftoneElement EntryTransferFunction Property

EntryTransferFunction Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "TransferFunction" entry of the type 6 halftone dictionary object.

Notes

Represents the "TransferFunction" entry of the type 6 halftone dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

If provided, this item must always take the value "Identity".

2) A FunctionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 131, page 311.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 129, page 373.


ZZ Elements Type10HalftoneElement

Type10HalftoneElement Class

This class represents the type 10 halftone dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 132, page 313.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 130, page 375.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.HalftoneElement
         WebSupergoo.ABCpdf12.Elements.Type10HalftoneElement

Method | Description
Type10HalftoneElement | Create a new Type10HalftoneElement.
 | inherited methods...

Property | Description
EntryHalftoneName | Represents the "HalftoneName" entry of the type 10 halftone dictionary object.
EntryXsquare | Represents the "Xsquare" entry of the type 10 halftone dictionary object.
EntryYsquare | Represents the "Ysquare" entry of the type 10 halftone dictionary object.
EntryTransferFunction | Represents the "TransferFunction" entry of the type 10 halftone dictionary object.
 | inherited properties...


ZZ Elements Type10HalftoneElement Constructor Function

Type10HalftoneElement Function

Create a new Type10HalftoneElement.

Syntax

[C#]
Type10HalftoneElement()
Type10HalftoneElement(Atom atom, IndirectObject host)
Type10HalftoneElement(IndirectObject obj)
Type10HalftoneElement(Element relation, CreationOptions options)

[Visual Basic]
Type10HalftoneElement()
Type10HalftoneElement(atom As Atom, host As IndirectObject)
Type10HalftoneElement(obj As IndirectObject)
Type10HalftoneElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type10HalftoneElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type10HalftoneElement EntryHalftoneName Property

EntryHalftoneName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "HalftoneName" entry of the type 10 halftone dictionary object.

Notes

Represents the "HalftoneName" entry of the type 10 halftone dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 132, page 313.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 130, page 375.


ZZ Elements Type10HalftoneElement EntryXsquare Property

EntryXsquare Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Xsquare" entry of the type 10 halftone dictionary object.

Notes

Represents the "Xsquare" entry of the type 10 halftone dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 132, page 313.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 130, page 375.


ZZ Elements Type10HalftoneElement EntryYsquare Property

EntryYsquare Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Ysquare" entry of the type 10 halftone dictionary object.

Notes

Represents the "Ysquare" entry of the type 10 halftone dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 132, page 313.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 130, page 375.


ZZ Elements Type10HalftoneElement EntryTransferFunction Property

EntryTransferFunction Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "TransferFunction" entry of the type 10 halftone dictionary object.

Notes

Represents the "TransferFunction" entry of the type 10 halftone dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

If provided, this item must always take the value "Identity".

2) A FunctionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 132, page 313.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 130, page 375.


ZZ Elements Type16HalftoneElement

Type16HalftoneElement Class

This class represents the type 16 halftone dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 133, page 314.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 131, page 376.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.HalftoneElement
         WebSupergoo.ABCpdf12.Elements.Type16HalftoneElement

Method | Description
Type16HalftoneElement | Create a new Type16HalftoneElement.
 | inherited methods...

Property | Description
EntryHalftoneName | Represents the "HalftoneName" entry of the type 16 halftone dictionary object.
EntryWidth | Represents the "Width" entry of the type 16 halftone dictionary object.
EntryHeight | Represents the "Height" entry of the type 16 halftone dictionary object.
EntryWidth2 | Represents the "Width2" entry of the type 16 halftone dictionary object.
EntryHeight2 | Represents the "Height2" entry of the type 16 halftone dictionary object.
EntryTransferFunction | Represents the "TransferFunction" entry of the type 16 halftone dictionary object.
 | inherited properties...


ZZ Elements Type16HalftoneElement Constructor Function

Type16HalftoneElement Function

Create a new Type16HalftoneElement.

Syntax

[C#]
Type16HalftoneElement()
Type16HalftoneElement(Atom atom, IndirectObject host)
Type16HalftoneElement(IndirectObject obj)
Type16HalftoneElement(Element relation, CreationOptions options)

[Visual Basic]
Type16HalftoneElement()
Type16HalftoneElement(atom As Atom, host As IndirectObject)
Type16HalftoneElement(obj As IndirectObject)
Type16HalftoneElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type16HalftoneElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type16HalftoneElement EntryHalftoneName Property

EntryHalftoneName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "HalftoneName" entry of the type 16 halftone dictionary object.

Notes

Represents the "HalftoneName" entry of the type 16 halftone dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 133, page 314.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 131, page 376.


ZZ Elements Type16HalftoneElement EntryWidth Property

EntryWidth Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Width" entry of the type 16 halftone dictionary object.

Notes

Represents the "Width" entry of the type 16 halftone dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 133, page 314.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 131, page 376.


ZZ Elements Type16HalftoneElement EntryHeight Property

EntryHeight Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Height" entry of the type 16 halftone dictionary object.

Notes

Represents the "Height" entry of the type 16 halftone dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 133, page 314.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 131, page 376.


ZZ Elements Type16HalftoneElement EntryWidth2 Property

EntryWidth2 Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Width2" entry of the type 16 halftone dictionary object.

Notes

Represents the "Width2" entry of the type 16 halftone dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 133, page 314.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 131, page 376.


ZZ Elements Type16HalftoneElement EntryHeight2 Property

EntryHeight2 Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Height2" entry of the type 16 halftone dictionary object.

Notes

Represents the "Height2" entry of the type 16 halftone dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 133, page 314.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 131, page 376.


ZZ Elements Type16HalftoneElement EntryTransferFunction Property

EntryTransferFunction Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "TransferFunction" entry of the type 16 halftone dictionary object.

Notes

Represents the "TransferFunction" entry of the type 16 halftone dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

If provided, this item must always take the value "Identity".

2) A FunctionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 133, page 314.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 131, page 377.


ZZ Elements Type5HalftoneElement

Type5HalftoneElement Class

This class represents the type 5 halftone dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 134, page 315.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 132, page 377.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.HalftoneElement
         WebSupergoo.ABCpdf12.Elements.Type5HalftoneElement

Method | Description
Type5HalftoneElement | Create a new Type5HalftoneElement.
 | inherited methods...

Property | Description
EntryHalftoneName | Represents the "HalftoneName" entry of the type 5 halftone dictionary object.
EntryDefault | Represents the "Default" entry of the type 5 halftone dictionary object.
 | inherited properties...


ZZ Elements Type5HalftoneElement Constructor Function

Type5HalftoneElement Function

Create a new Type5HalftoneElement.

Syntax

[C#]
Type5HalftoneElement()
Type5HalftoneElement(Atom atom, IndirectObject host)
Type5HalftoneElement(IndirectObject obj)
Type5HalftoneElement(Element relation, CreationOptions options)

[Visual Basic]
Type5HalftoneElement()
Type5HalftoneElement(atom As Atom, host As IndirectObject)
Type5HalftoneElement(obj As IndirectObject)
Type5HalftoneElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Type5HalftoneElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Type5HalftoneElement EntryHalftoneName Property

EntryHalftoneName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "HalftoneName" entry of the type 5 halftone dictionary object.

Notes

Represents the "HalftoneName" entry of the type 5 halftone dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 134, page 315.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 132, page 377.


ZZ Elements Type5HalftoneElement EntryDefault Property

EntryDefault Property

Type | Default Value | Read Only | Description
[C#] HalftoneElement [Visual Basic] HalftoneElement | null | No | Represents the "Default" entry of the type 5 halftone dictionary object.

Notes

Represents the "Default" entry of the type 5 halftone dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an HalftoneElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 134, page 315.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 132, page 377.


ZZ Elements SoftMaskElement

SoftMaskElement Class

This class represents the soft-mask dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 144, page 347.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 142, page 416.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.SoftMaskElement

Method | Description
SoftMaskElement | Create a new SoftMaskElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the soft-mask dictionary object.
EntryS | Represents the "S" entry of the soft-mask dictionary object.
EntryG | Represents the "G" entry of the soft-mask dictionary object.
EntryBC | Represents the "BC" entry of the soft-mask dictionary object.
EntryTR | Represents the "TR" entry of the soft-mask dictionary object.
 | inherited properties...


ZZ Elements SoftMaskElement Constructor Function

SoftMaskElement Function

Create a new SoftMaskElement.

Syntax

[C#]
SoftMaskElement()
SoftMaskElement(Atom atom, IndirectObject host)
SoftMaskElement(IndirectObject obj)
SoftMaskElement(Element relation, CreationOptions options)

[Visual Basic]
SoftMaskElement()
SoftMaskElement(atom As Atom, host As IndirectObject)
SoftMaskElement(obj As IndirectObject)
SoftMaskElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SoftMaskElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements SoftMaskElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the soft-mask dictionary object.

Notes

Represents the "Type" entry of the soft-mask dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Mask".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 144, page 347.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 142, page 416.


ZZ Elements SoftMaskElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the soft-mask dictionary object.

Notes

Represents the "S" entry of the soft-mask dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • Alpha
  • Luminosity

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 144, page 347.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 142, page 416.


ZZ Elements SoftMaskElement EntryG Property

EntryG Property

Type | Default Value | Read Only | Description
[C#] XObjectElement [Visual Basic] XObjectElement | null | No | Represents the "G" entry of the soft-mask dictionary object.

Notes

Represents the "G" entry of the soft-mask dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a XObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 144, page 347.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 142, page 416.


ZZ Elements SoftMaskElement EntryBC Property

EntryBC Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "BC" entry of the soft-mask dictionary object.

Notes

Represents the "BC" entry of the soft-mask dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 144, page 347.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 142, page 416.


ZZ Elements SoftMaskElement EntryTR Property

EntryTR Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "TR" entry of the soft-mask dictionary object.

Notes

Represents the "TR" entry of the soft-mask dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

The PDF specification states that this item assumes a value of "Identity" if no value has been provided.

If provided, this item must always take the value "Identity".

2) A FunctionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 144, page 347.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 142, page 416.


ZZ Elements GroupAttributesElement

GroupAttributesElement Class

This class represents the group attributes dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 147, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 145, page 419.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.GroupAttributesElement

Method | Description
GroupAttributesElement | Create a new GroupAttributesElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the group attributes dictionary object.
EntryS | Represents the "S" entry of the group attributes dictionary object.
EntryCS | Represents the "CS" entry of the group attributes dictionary object.
EntryI | Represents the "I" entry of the group attributes dictionary object.
EntryK | Represents the "K" entry of the group attributes dictionary object.
 | inherited properties...


ZZ Elements GroupAttributesElement Constructor Function

GroupAttributesElement Function

Create a new GroupAttributesElement.

Syntax

[C#]
GroupAttributesElement()
GroupAttributesElement(Atom atom, IndirectObject host)
GroupAttributesElement(IndirectObject obj)
GroupAttributesElement(Element relation, CreationOptions options)

[Visual Basic]
GroupAttributesElement()
GroupAttributesElement(atom As Atom, host As IndirectObject)
GroupAttributesElement(obj As IndirectObject)
GroupAttributesElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new GroupAttributesElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements GroupAttributesElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the group attributes dictionary object.

Notes

Represents the "Type" entry of the group attributes dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Group".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 147, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 145, page 419.


ZZ Elements GroupAttributesElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the group attributes dictionary object.

Notes

Represents the "S" entry of the group attributes dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "Transparency".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 147, page 349.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 145, page 419.


ZZ Elements GroupAttributesElement EntryCS Property

EntryCS Property

Type | Default Value | Read Only | Description
[C#] ColorSpaceElement [Visual Basic] ColorSpaceElement | null | No | Represents the "CS" entry of the group attributes dictionary object.

Notes

Represents the "CS" entry of the group attributes dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a ColorSpaceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 147, page 350.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 145, page 419.


ZZ Elements GroupAttributesElement EntryI Property

EntryI Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "I" entry of the group attributes dictionary object.

Notes

Represents the "I" entry of the group attributes dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 147, page 350.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 145, page 419.


ZZ Elements GroupAttributesElement EntryK Property

EntryK Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "K" entry of the group attributes dictionary object.

Notes

Represents the "K" entry of the group attributes dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 147, page 351.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 145, page 419.


ZZ Elements CheckboxFieldElement

CheckboxFieldElement Class

This class represents the checkbox field dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 227, page 441.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 230, page 534.

This class is always an indirect object because it inherits from FieldElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FieldElement
         WebSupergoo.ABCpdf12.Elements.CheckboxFieldElement

Method | Description
CheckboxFieldElement | Create a new CheckboxFieldElement.
 | inherited methods...

Property | Description
 | inherited properties...


ZZ Elements CheckboxFieldElement Constructor Function

CheckboxFieldElement Function

Create a new CheckboxFieldElement.

Syntax

[C#]
CheckboxFieldElement()
CheckboxFieldElement(Atom atom, IndirectObject host)
CheckboxFieldElement(IndirectObject obj)
CheckboxFieldElement(Element relation, CreationOptions options)

[Visual Basic]
CheckboxFieldElement()
CheckboxFieldElement(atom As Atom, host As IndirectObject)
CheckboxFieldElement(obj As IndirectObject)
CheckboxFieldElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CheckboxFieldElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements DocumentPartGoToActionElement

DocumentPartGoToActionElement Class

This class represents the document part go-to action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 206, page 512.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.DocumentPartGoToActionElement

Method | Description
DocumentPartGoToActionElement | Create a new DocumentPartGoToActionElement.
 | inherited methods...

Property | Description
EntryDp | Represents the "Dp" entry of the document part go-to action object.
 | inherited properties...


ZZ Elements DocumentPartGoToActionElement Constructor Function

DocumentPartGoToActionElement Function

Create a new DocumentPartGoToActionElement.

Syntax

[C#]
DocumentPartGoToActionElement()
DocumentPartGoToActionElement(Atom atom, IndirectObject host)
DocumentPartGoToActionElement(IndirectObject obj)
DocumentPartGoToActionElement(Element relation, CreationOptions options)

[Visual Basic]
DocumentPartGoToActionElement()
DocumentPartGoToActionElement(atom As Atom, host As IndirectObject)
DocumentPartGoToActionElement(obj As IndirectObject)
DocumentPartGoToActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new DocumentPartGoToActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements DocumentPartGoToActionElement EntryDp Property

EntryDp Property

Type | Default Value | Read Only | Description
[C#] DocumentPartElement [Visual Basic] DocumentPartElement | null | No | Represents the "Dp" entry of the document part go-to action object.

Notes

Represents the "Dp" entry of the document part go-to action object.

It is a required entry defined as part of the PDF 2.0 specification.

It contains a DocumentPartElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 206, page 512.


ZZ Elements DocumentSecurityStoreElement

DocumentSecurityStoreElement Class

This class represents the document security store dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 261, page 582.

This class is always an indirect object because SignatureValidationRelatedInformationElement.EntryCRL and SignatureValidationRelatedInformationElement.EntryOCSP require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.DocumentSecurityStoreElement

Method | Description
DocumentSecurityStoreElement | Create a new DocumentSecurityStoreElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the document security store dictionary object.
EntryVRI | Represents the "VRI" entry of the document security store dictionary object.
EntryCerts | Represents the "Certs" entry of the document security store dictionary object.
EntryOCSPs | Represents the "OCSPs" entry of the document security store dictionary object.
EntryCRLs | Represents the "CRLs" entry of the document security store dictionary object.
 | inherited properties...


ZZ Elements DocumentSecurityStoreElement Constructor Function

DocumentSecurityStoreElement Function

Create a new DocumentSecurityStoreElement.

Syntax

[C#]
DocumentSecurityStoreElement()
DocumentSecurityStoreElement(Atom atom, IndirectObject host)
DocumentSecurityStoreElement(IndirectObject obj)
DocumentSecurityStoreElement(Element relation, CreationOptions options)

[Visual Basic]
DocumentSecurityStoreElement()
DocumentSecurityStoreElement(atom As Atom, host As IndirectObject)
DocumentSecurityStoreElement(obj As IndirectObject)
DocumentSecurityStoreElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new DocumentSecurityStoreElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements DocumentSecurityStoreElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the document security store dictionary object.

Notes

Represents the "Type" entry of the document security store dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "DSS".

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 261, page 582.


ZZ Elements DocumentSecurityStoreElement EntryVRI Property

EntryVRI Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "VRI" entry of the document security store dictionary object.

Notes

Represents the "VRI" entry of the document security store dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 261, page 583.


ZZ Elements DocumentSecurityStoreElement EntryCerts Property

EntryCerts Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<StreamElement> [Visual Basic] ArrayElement<StreamElement> | null | No | Represents the "Certs" entry of the document security store dictionary object.

Notes

Represents the "Certs" entry of the document security store dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains StreamElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 261, page 583.


ZZ Elements DocumentSecurityStoreElement EntryOCSPs Property

EntryOCSPs Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<StreamElement> [Visual Basic] ArrayElement<StreamElement> | null | No | Represents the "OCSPs" entry of the document security store dictionary object.

Notes

Represents the "OCSPs" entry of the document security store dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains StreamElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 261, page 583.


ZZ Elements DocumentSecurityStoreElement EntryCRLs Property

EntryCRLs Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<StreamElement> [Visual Basic] ArrayElement<StreamElement> | null | No | Represents the "CRLs" entry of the document security store dictionary object.

Notes

Represents the "CRLs" entry of the document security store dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains StreamElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 261, page 583.


ZZ Elements PushbuttonFieldElement

PushbuttonFieldElement Class

This class represents the pushbutton field dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 440.

This class is always an indirect object because it inherits from FieldElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FieldElement
         WebSupergoo.ABCpdf12.Elements.PushbuttonFieldElement

Method | Description
PushbuttonFieldElement | Create a new PushbuttonFieldElement.
 | inherited methods...

Property | Description
 | inherited properties...


ZZ Elements PushbuttonFieldElement Constructor Function

PushbuttonFieldElement Function

Create a new PushbuttonFieldElement.

Syntax

[C#]
PushbuttonFieldElement()
PushbuttonFieldElement(Atom atom, IndirectObject host)
PushbuttonFieldElement(IndirectObject obj)
PushbuttonFieldElement(Element relation, CreationOptions options)

[Visual Basic]
PushbuttonFieldElement()
PushbuttonFieldElement(atom As Atom, host As IndirectObject)
PushbuttonFieldElement(obj As IndirectObject)
PushbuttonFieldElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new PushbuttonFieldElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements RadioFieldElement

RadioFieldElement Class

This class represents the radio field dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 227, page 441.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 230, page 534.

This class is always an indirect object because it inherits from FieldElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FieldElement
         WebSupergoo.ABCpdf12.Elements.RadioFieldElement

Method | Description
RadioFieldElement | Create a new RadioFieldElement.
 | inherited methods...

Property | Description
 | inherited properties...


ZZ Elements RadioFieldElement Constructor Function

RadioFieldElement Function

Create a new RadioFieldElement.

Syntax

[C#]
RadioFieldElement()
RadioFieldElement(Atom atom, IndirectObject host)
RadioFieldElement(IndirectObject obj)
RadioFieldElement(Element relation, CreationOptions options)

[Visual Basic]
RadioFieldElement()
RadioFieldElement(atom As Atom, host As IndirectObject)
RadioFieldElement(obj As IndirectObject)
RadioFieldElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RadioFieldElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements SignatureValidationRelatedInformationElement

SignatureValidationRelatedInformationElement Class

This class represents the signature validation-related information dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 262, page 584.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.SignatureValidationRelatedInformationElement

Method | Description
SignatureValidationRelatedInformationElement | Create a new SignatureValidationRelatedInformationElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the signature validation-related information dictionary object.
EntryCert | Represents the "Cert" entry of the signature validation-related information dictionary object.
EntryCRL | Represents the "CRL" entry of the signature validation-related information dictionary object.
EntryOCSP | Represents the "OCSP" entry of the signature validation-related information dictionary object.
EntryTU | Represents the "TU" entry of the signature validation-related information dictionary object.
EntryTS | Represents the "TS" entry of the signature validation-related information dictionary object.
 | inherited properties...


ZZ Elements SignatureValidationRelatedInformationElement Constructor Function

SignatureValidationRelatedInformationElement Function

Create a new SignatureValidationRelatedInformationElement.

Syntax

[C#]
SignatureValidationRelatedInformationElement()
SignatureValidationRelatedInformationElement(Atom atom, IndirectObject host)
SignatureValidationRelatedInformationElement(IndirectObject obj)
SignatureValidationRelatedInformationElement(Element relation, CreationOptions options)

[Visual Basic]
SignatureValidationRelatedInformationElement()
SignatureValidationRelatedInformationElement(atom As Atom, host As IndirectObject)
SignatureValidationRelatedInformationElement(obj As IndirectObject)
SignatureValidationRelatedInformationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SignatureValidationRelatedInformationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements SignatureValidationRelatedInformationElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the signature validation-related information dictionary object.

Notes

Represents the "Type" entry of the signature validation-related information dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "VRI".

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 262, page 584.


ZZ Elements SignatureValidationRelatedInformationElement EntryCert Property

EntryCert Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<StreamElement> [Visual Basic] ArrayElement<StreamElement> | null | No | Represents the "Cert" entry of the signature validation-related information dictionary object.

Notes

Represents the "Cert" entry of the signature validation-related information dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains StreamElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 262, page 584.


ZZ Elements SignatureValidationRelatedInformationElement EntryCRL Property

EntryCRL Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<StreamElement> [Visual Basic] ArrayElement<StreamElement> | null | No | Represents the "CRL" entry of the signature validation-related information dictionary object.

Notes

Represents the "CRL" entry of the signature validation-related information dictionary object.

It is defined as part of the PDF 2.0 specification.

It contains an array which contains StreamElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 262, page 584.


ZZ Elements SignatureValidationRelatedInformationElement EntryOCSP Property

EntryOCSP Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<StreamElement> [Visual Basic] ArrayElement<StreamElement> | null | No | Represents the "OCSP" entry of the signature validation-related information dictionary object.

Notes

Represents the "OCSP" entry of the signature validation-related information dictionary object.

It is defined as part of the PDF 2.0 specification.

It contains an array which contains StreamElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 262, page 584.


ZZ Elements SignatureValidationRelatedInformationElement EntryTU Property

EntryTU Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "TU" entry of the signature validation-related information dictionary object.

Notes

Represents the "TU" entry of the signature validation-related information dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF string object.

This is encoded as a date string. For details see the StringAtom.DateToString and StringAtom.StringToDate functions.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 262, page 584.


ZZ Elements SignatureValidationRelatedInformationElement EntryTS Property

EntryTS Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | No | Represents the "TS" entry of the signature validation-related information dictionary object.

Notes

Represents the "TS" entry of the signature validation-related information dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 262, page 584.


ZZ Elements ViewerPreferencesElement

ViewerPreferencesElement Class

This class represents the viewer preferences dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 362.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 435.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ViewerPreferencesElement

Method | Description
ViewerPreferencesElement | Create a new ViewerPreferencesElement.
 | inherited methods...

Property | Description
EntryHideToolbar | Represents the "HideToolbar" entry of the viewer preferences dictionary object.
EntryHideMenubar | Represents the "HideMenubar" entry of the viewer preferences dictionary object.
EntryHideWindowUI | Represents the "HideWindowUI" entry of the viewer preferences dictionary object.
EntryFitWindow | Represents the "FitWindow" entry of the viewer preferences dictionary object.
EntryCenterWindow | Represents the "CenterWindow" entry of the viewer preferences dictionary object.
EntryDisplayDocTitle | Represents the "DisplayDocTitle" entry of the viewer preferences dictionary object.
EntryNonFullScreenPageMode | Represents the "NonFullScreenPageMode" entry of the viewer preferences dictionary object.
EntryDirection | Represents the "Direction" entry of the viewer preferences dictionary object.
EntryViewArea | Represents the "ViewArea" entry of the viewer preferences dictionary object.
EntryViewClip | Represents the "ViewClip" entry of the viewer preferences dictionary object.
EntryPrintArea | Represents the "PrintArea" entry of the viewer preferences dictionary object.
EntryPrintClip | Represents the "PrintClip" entry of the viewer preferences dictionary object.
EntryPrintScaling | Represents the "PrintScaling" entry of the viewer preferences dictionary object.
EntryDuplex | Represents the "Duplex" entry of the viewer preferences dictionary object.
EntryPickTrayByPDFSize | Represents the "PickTrayByPDFSize" entry of the viewer preferences dictionary object.
EntryPrintPageRange | Represents the "PrintPageRange" entry of the viewer preferences dictionary object.
EntryNumCopies | Represents the "NumCopies" entry of the viewer preferences dictionary object.
EntryEnforce | Represents the "Enforce" entry of the viewer preferences dictionary object.
 | inherited properties...


ZZ Elements ViewerPreferencesElement Constructor Function

ViewerPreferencesElement Function

Create a new ViewerPreferencesElement.

Syntax

[C#]
ViewerPreferencesElement()
ViewerPreferencesElement(Atom atom, IndirectObject host)
ViewerPreferencesElement(IndirectObject obj)
ViewerPreferencesElement(Element relation, CreationOptions options)

[Visual Basic]
ViewerPreferencesElement()
ViewerPreferencesElement(atom As Atom, host As IndirectObject)
ViewerPreferencesElement(obj As IndirectObject)
ViewerPreferencesElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ViewerPreferencesElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ViewerPreferencesElement EntryHideToolbar Property

EntryHideToolbar Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "HideToolbar" entry of the viewer preferences dictionary object.

Notes

Represents the "HideToolbar" entry of the viewer preferences dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 362.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 435.


ZZ Elements ViewerPreferencesElement EntryHideMenubar Property

EntryHideMenubar Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "HideMenubar" entry of the viewer preferences dictionary object.

Notes

Represents the "HideMenubar" entry of the viewer preferences dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 362.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 435.


ZZ Elements ViewerPreferencesElement EntryHideWindowUI Property

EntryHideWindowUI Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "HideWindowUI" entry of the viewer preferences dictionary object.

Notes

Represents the "HideWindowUI" entry of the viewer preferences dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 363.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 435.


ZZ Elements ViewerPreferencesElement EntryFitWindow Property

EntryFitWindow Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "FitWindow" entry of the viewer preferences dictionary object.

Notes

Represents the "FitWindow" entry of the viewer preferences dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 363.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 435.


ZZ Elements ViewerPreferencesElement EntryCenterWindow Property

EntryCenterWindow Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "CenterWindow" entry of the viewer preferences dictionary object.

Notes

Represents the "CenterWindow" entry of the viewer preferences dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 363.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 435.


ZZ Elements ViewerPreferencesElement EntryDisplayDocTitle Property

EntryDisplayDocTitle Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "DisplayDocTitle" entry of the viewer preferences dictionary object.

Notes

Represents the "DisplayDocTitle" entry of the viewer preferences dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 363.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 435.


ZZ Elements ViewerPreferencesElement EntryNonFullScreenPageMode Property

EntryNonFullScreenPageMode Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "NonFullScreenPageMode" entry of the viewer preferences dictionary object.

Notes

Represents the "NonFullScreenPageMode" entry of the viewer preferences dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "UseNone" if no value has been provided.

This item may take one of the following valid values:.

  • UseNone
  • UseOutlines
  • UseThumbs
  • UseOC

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 363.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 435.


ZZ Elements ViewerPreferencesElement EntryDirection Property

EntryDirection Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Direction" entry of the viewer preferences dictionary object.

Notes

Represents the "Direction" entry of the viewer preferences dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "L2R" if no value has been provided.

This item may take one of the following valid values:.

  • L2R
  • R2L

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 363.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 435.


ZZ Elements ViewerPreferencesElement EntryViewArea Property

EntryViewArea Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ViewArea" entry of the viewer preferences dictionary object.

Notes

Represents the "ViewArea" entry of the viewer preferences dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification. It was deprecated in PDF 2.0.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "CropBox" if no value has been provided.

This item may take one of the following valid values:.

  • MediaBox
  • CropBox
  • ArtBox
  • TrimBox
  • BleedBox

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 363.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 436.


ZZ Elements ViewerPreferencesElement EntryViewClip Property

EntryViewClip Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ViewClip" entry of the viewer preferences dictionary object.

Notes

Represents the "ViewClip" entry of the viewer preferences dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification. It was deprecated in PDF 2.0.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "CropBox" if no value has been provided.

This item may take one of the following valid values:.

  • MediaBox
  • CropBox
  • ArtBox
  • TrimBox
  • BleedBox

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 364.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 436.


ZZ Elements ViewerPreferencesElement EntryPrintArea Property

EntryPrintArea Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "PrintArea" entry of the viewer preferences dictionary object.

Notes

Represents the "PrintArea" entry of the viewer preferences dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification. It was deprecated in PDF 2.0.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "CropBox" if no value has been provided.

This item may take one of the following valid values:.

  • MediaBox
  • CropBox
  • ArtBox
  • TrimBox
  • BleedBox

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 364.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 436.


ZZ Elements ViewerPreferencesElement EntryPrintClip Property

EntryPrintClip Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "PrintClip" entry of the viewer preferences dictionary object.

Notes

Represents the "PrintClip" entry of the viewer preferences dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification. It was deprecated in PDF 2.0.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "CropBox" if no value has been provided.

This item may take one of the following valid values:.

  • MediaBox
  • CropBox
  • ArtBox
  • TrimBox
  • BleedBox

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 364.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 436.


ZZ Elements ViewerPreferencesElement EntryPrintScaling Property

EntryPrintScaling Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "PrintScaling" entry of the viewer preferences dictionary object.

Notes

Represents the "PrintScaling" entry of the viewer preferences dictionary object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "AppDefault" if no value has been provided.

This item may take one of the following valid values:.

  • None
  • AppDefault

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 364.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 437.


ZZ Elements ViewerPreferencesElement EntryDuplex Property

EntryDuplex Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Duplex" entry of the viewer preferences dictionary object.

Notes

Represents the "Duplex" entry of the viewer preferences dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • Simplex
  • DuplexFlipShortEdge
  • DuplexFlipLongEdge

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 364.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 437.


ZZ Elements ViewerPreferencesElement EntryPickTrayByPDFSize Property

EntryPickTrayByPDFSize Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "PickTrayByPDFSize" entry of the viewer preferences dictionary object.

Notes

Represents the "PickTrayByPDFSize" entry of the viewer preferences dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 365.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 437.


ZZ Elements ViewerPreferencesElement EntryPrintPageRange Property

EntryPrintPageRange Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "PrintPageRange" entry of the viewer preferences dictionary object.

Notes

Represents the "PrintPageRange" entry of the viewer preferences dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains an array which contains integers, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 365.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 437.


ZZ Elements ViewerPreferencesElement EntryNumCopies Property

EntryNumCopies Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "NumCopies" entry of the viewer preferences dictionary object.

Notes

Represents the "NumCopies" entry of the viewer preferences dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 365.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 437.


ZZ Elements ViewerPreferencesElement EntryEnforce Property

EntryEnforce Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Enforce" entry of the viewer preferences dictionary object.

Notes

Represents the "Enforce" entry of the viewer preferences dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains strings, representing PDF name objects.

If provided, items in this array must always take the value "PrintScaling".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 150, page 362.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.1, page 28.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 147, page 437.


ZZ Elements OutlineElement

OutlineElement Class

This class represents the outline dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 152, page 368.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 150, page 442.

This class is always an indirect object because CatalogElement.EntryOutlines and OutlineItemElement.EntryParent require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OutlineElement

Method | Description
OutlineElement | Create a new OutlineElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the outline dictionary object.
EntryFirst | Represents the "First" entry of the outline dictionary object.
EntryLast | Represents the "Last" entry of the outline dictionary object.
EntryCount | Represents the "Count" entry of the outline dictionary object.
 | inherited properties...


ZZ Elements OutlineElement Constructor Function

OutlineElement Function

Create a new OutlineElement.

Syntax

[C#]
OutlineElement()
OutlineElement(Atom atom, IndirectObject host)
OutlineElement(IndirectObject obj)
OutlineElement(Element relation, CreationOptions options)

[Visual Basic]
OutlineElement()
OutlineElement(atom As Atom, host As IndirectObject)
OutlineElement(obj As IndirectObject)
OutlineElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OutlineElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OutlineElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the outline dictionary object.

Notes

Represents the "Type" entry of the outline dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Outlines".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 152, page 368.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 150, page 442.


ZZ Elements OutlineElement EntryFirst Property

EntryFirst Property

Type | Default Value | Read Only | Description
[C#] OutlineItemElement [Visual Basic] OutlineItemElement | null | No | Represents the "First" entry of the outline dictionary object.

Notes

Represents the "First" entry of the outline dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an OutlineItemElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 152, page 368.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 150, page 442.


ZZ Elements OutlineElement EntryLast Property

EntryLast Property

Type | Default Value | Read Only | Description
[C#] OutlineItemElement [Visual Basic] OutlineItemElement | null | No | Represents the "Last" entry of the outline dictionary object.

Notes

Represents the "Last" entry of the outline dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an OutlineItemElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 152, page 368.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 150, page 442.


ZZ Elements OutlineElement EntryCount Property

EntryCount Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Count" entry of the outline dictionary object.

Notes

Represents the "Count" entry of the outline dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 152, page 368.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 150, page 442.


ZZ Elements OutlineItemElement

OutlineItemElement Class

This class represents the outline item dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 153, page 368.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 151, page 442.

This class is always an indirect object because OutlineElement.EntryFirst, OutlineElement.EntryLast, OutlineItemElement.EntryFirst, OutlineItemElement.EntryLast, OutlineItemElement.EntryNext, OutlineItemElement.EntryParent and OutlineItemElement.EntryPrev require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OutlineItemElement

Method | Description
OutlineItemElement | Create a new OutlineItemElement.
 | inherited methods...

Property | Description
EntryTitle | Represents the "Title" entry of the outline item dictionary object.
EntryParent | Represents the "Parent" entry of the outline item dictionary object.
EntryPrev | Represents the "Prev" entry of the outline item dictionary object.
EntryNext | Represents the "Next" entry of the outline item dictionary object.
EntryFirst | Represents the "First" entry of the outline item dictionary object.
EntryLast | Represents the "Last" entry of the outline item dictionary object.
EntryCount | Represents the "Count" entry of the outline item dictionary object.
EntryDest | Represents the "Dest" entry of the outline item dictionary object.
EntryA | Represents the "A" entry of the outline item dictionary object.
EntrySE | Represents the "SE" entry of the outline item dictionary object.
EntryC | Represents the "C" entry of the outline item dictionary object.
EntryF | Represents the "F" entry of the outline item dictionary object.
 | inherited properties...


ZZ Elements OutlineItemElement Constructor Function

OutlineItemElement Function

Create a new OutlineItemElement.

Syntax

[C#]
OutlineItemElement()
OutlineItemElement(Atom atom, IndirectObject host)
OutlineItemElement(IndirectObject obj)
OutlineItemElement(Element relation, CreationOptions options)

[Visual Basic]
OutlineItemElement()
OutlineItemElement(atom As Atom, host As IndirectObject)
OutlineItemElement(obj As IndirectObject)
OutlineItemElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OutlineItemElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OutlineItemElement EntryTitle Property

EntryTitle Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Title" entry of the outline item dictionary object.

Notes

Represents the "Title" entry of the outline item dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 153, page 368.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 151, page 442.


ZZ Elements OutlineItemElement EntryParent Property

EntryParent Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Parent" entry of the outline item dictionary object.

Notes

Represents the "Parent" entry of the outline item dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) An OutlineElement.

2) An OutlineItemElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 153, page 368.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 151, page 442.


ZZ Elements OutlineItemElement EntryPrev Property

EntryPrev Property

Type | Default Value | Read Only | Description
[C#] OutlineItemElement [Visual Basic] OutlineItemElement | null | No | Represents the "Prev" entry of the outline item dictionary object.

Notes

Represents the "Prev" entry of the outline item dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an OutlineItemElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 153, page 368.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 151, page 442.


ZZ Elements OutlineItemElement EntryNext Property

EntryNext Property

Type | Default Value | Read Only | Description
[C#] OutlineItemElement [Visual Basic] OutlineItemElement | null | No | Represents the "Next" entry of the outline item dictionary object.

Notes

Represents the "Next" entry of the outline item dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an OutlineItemElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 153, page 368.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 151, page 442.


ZZ Elements OutlineItemElement EntryFirst Property

EntryFirst Property

Type | Default Value | Read Only | Description
[C#] OutlineItemElement [Visual Basic] OutlineItemElement | null | No | Represents the "First" entry of the outline item dictionary object.

Notes

Represents the "First" entry of the outline item dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an OutlineItemElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 153, page 368.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 151, page 442.


ZZ Elements OutlineItemElement EntryLast Property

EntryLast Property

Type | Default Value | Read Only | Description
[C#] OutlineItemElement [Visual Basic] OutlineItemElement | null | No | Represents the "Last" entry of the outline item dictionary object.

Notes

Represents the "Last" entry of the outline item dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an OutlineItemElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 153, page 368.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 151, page 442.


ZZ Elements OutlineItemElement EntryCount Property

EntryCount Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Count" entry of the outline item dictionary object.

Notes

Represents the "Count" entry of the outline item dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 153, page 368.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 151, page 443.


ZZ Elements OutlineItemElement EntryDest Property

EntryDest Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Dest" entry of the outline item dictionary object.

Notes

Represents the "Dest" entry of the outline item dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of three different types:.

1) A string representing a PDF name object.

2) A string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

3) A DestinationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 153, page 369.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 151, page 443.


ZZ Elements OutlineItemElement EntryA Property

EntryA Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "A" entry of the outline item dictionary object.

Notes

Represents the "A" entry of the outline item dictionary object.

It is an optional entry defined as part of the PDF 1.1 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 153, page 369.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 151, page 443.


ZZ Elements OutlineItemElement EntrySE Property

EntrySE Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "SE" entry of the outline item dictionary object.

Notes

Represents the "SE" entry of the outline item dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

This property may contain one of two different types:.

1) A StructureElementElement.

2) A StructureTreeRootElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 153, page 369.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 151, page 443.


ZZ Elements OutlineItemElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "C" entry of the outline item dictionary object.

Notes

Represents the "C" entry of the outline item dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 153, page 369.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 151, page 443.


ZZ Elements OutlineItemElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "F" entry of the outline item dictionary object.

Notes

Represents the "F" entry of the outline item dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 153, page 369.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 151, page 443.


ZZ Elements CollectionElement

CollectionElement Class

This class represents the collection dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 155, page 371.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 153, page 445.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6, page 29.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CollectionElement

Method | Description
CollectionElement | Create a new CollectionElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the collection dictionary object.
EntrySchema | Represents the "Schema" entry of the collection dictionary object.
EntryD | Represents the "D" entry of the collection dictionary object.
EntrySort | Represents the "Sort" entry of the collection dictionary object.
EntryView | Represents the "View" entry of the collection dictionary object.
EntryNavigator | Represents the "Navigator" entry of the collection dictionary object.
EntryResources | Represents the "Resources" entry of the collection dictionary object.
EntryColors | Represents the "Colors" entry of the collection dictionary object.
EntryFolders | Represents the "Folders" entry of the collection dictionary object.
EntrySplit | Represents the "Split" entry of the collection dictionary object.
 | inherited properties...


ZZ Elements CollectionElement Constructor Function

CollectionElement Function

Create a new CollectionElement.

Syntax

[C#]
CollectionElement()
CollectionElement(Atom atom, IndirectObject host)
CollectionElement(IndirectObject obj)
CollectionElement(Element relation, CreationOptions options)

[Visual Basic]
CollectionElement()
CollectionElement(atom As Atom, host As IndirectObject)
CollectionElement(obj As IndirectObject)
CollectionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CollectionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CollectionElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the collection dictionary object.

Notes

Represents the "Type" entry of the collection dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Collection".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 155, page 371.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6, page 29.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 153, page 445.


ZZ Elements CollectionElement EntrySchema Property

EntrySchema Property

Type | Default Value | Read Only | Description
[C#] CollectionSchemaElement [Visual Basic] CollectionSchemaElement | null | No | Represents the "Schema" entry of the collection dictionary object.

Notes

Represents the "Schema" entry of the collection dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a CollectionSchemaElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 155, page 371.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6, page 29.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 153, page 446.


ZZ Elements CollectionElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "D" entry of the collection dictionary object.

Notes

Represents the "D" entry of the collection dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 155, page 371.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6, page 29.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 153, page 446.


ZZ Elements CollectionElement EntrySort Property

EntrySort Property

Type | Default Value | Read Only | Description
[C#] CollectionSortElement [Visual Basic] CollectionSortElement | null | No | Represents the "Sort" entry of the collection dictionary object.

Notes

Represents the "Sort" entry of the collection dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a CollectionSortElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 155, page 371.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6, page 29.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 153, page 447.


ZZ Elements CollectionElement EntryView Property

EntryView Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "View" entry of the collection dictionary object.

Notes

Represents the "View" entry of the collection dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "D" if no value has been provided.

This item may take one of the following valid values:.

  • D
  • T
  • H
  • C

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 155, page 371.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6, page 29.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 153, page 446.


ZZ Elements CollectionElement EntryNavigator Property

EntryNavigator Property

Type | Default Value | Read Only | Description
[C#] NavigatorElement [Visual Basic] NavigatorElement | null | No | Represents the "Navigator" entry of the collection dictionary object.

Notes

Represents the "Navigator" entry of the collection dictionary object.

It is defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a NavigatorElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 155, page 371.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6, page 29.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 153, page 446.


ZZ Elements CollectionElement EntryResources Property

EntryResources Property

Type | Default Value | Read Only | Description
[C#] NameTreeNodeElement<StreamElement> [Visual Basic] NameTreeNodeElement<StreamElement> | null | No | Represents the "Resources" entry of the collection dictionary object.

Notes

Represents the "Resources" entry of the collection dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a NameTreeNodeElement containing StreamElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 155, page 371.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6, page 29.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 153, page 445.


ZZ Elements CollectionElement EntryColors Property

EntryColors Property

Type | Default Value | Read Only | Description
[C#] CollectionColorsElement [Visual Basic] CollectionColorsElement | null | No | Represents the "Colors" entry of the collection dictionary object.

Notes

Represents the "Colors" entry of the collection dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a CollectionColorsElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 155, page 371.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6, page 29.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 153, page 446.


ZZ Elements CollectionElement EntryFolders Property

EntryFolders Property

Type | Default Value | Read Only | Description
[C#] FolderElement [Visual Basic] FolderElement | null | No | Represents the "Folders" entry of the collection dictionary object.

Notes

Represents the "Folders" entry of the collection dictionary object.

It is defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a FolderElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 155, page 371.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6, page 29.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 153, page 447.


ZZ Elements CollectionElement EntrySplit Property

EntrySplit Property

Type | Default Value | Read Only | Description
[C#] CollectionSplitElement [Visual Basic] CollectionSplitElement | null | No | Represents the "Split" entry of the collection dictionary object.

Notes

Represents the "Split" entry of the collection dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a CollectionSplitElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 155, page 371.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6, page 29.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 153, page 447.


ZZ Elements CollectionSchemaElement

CollectionSchemaElement Class

This class represents the collection schema dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 156, page 371.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 154, page 447.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CollectionSchemaElement

Method | Description
CollectionSchemaElement | Create a new CollectionSchemaElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the collection schema dictionary object.
 | inherited properties...


ZZ Elements CollectionSchemaElement Constructor Function

CollectionSchemaElement Function

Create a new CollectionSchemaElement.

Syntax

[C#]
CollectionSchemaElement()
CollectionSchemaElement(Atom atom, IndirectObject host)
CollectionSchemaElement(IndirectObject obj)
CollectionSchemaElement(Element relation, CreationOptions options)

[Visual Basic]
CollectionSchemaElement()
CollectionSchemaElement(atom As Atom, host As IndirectObject)
CollectionSchemaElement(obj As IndirectObject)
CollectionSchemaElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CollectionSchemaElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CollectionSchemaElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the collection schema dictionary object.

Notes

Represents the "Type" entry of the collection schema dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "CollectionSchema".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 156, page 371.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 154, page 447.


ZZ Elements CollectionFieldElement

CollectionFieldElement Class

This class represents the collection field dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 157, page 372.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 155, page 448.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.8, page 30.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CollectionFieldElement

Method | Description
CollectionFieldElement | Create a new CollectionFieldElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the collection field dictionary object.
EntrySubtype | Represents the "Subtype" entry of the collection field dictionary object.
EntryN | Represents the "N" entry of the collection field dictionary object.
EntryO | Represents the "O" entry of the collection field dictionary object.
EntryV | Represents the "V" entry of the collection field dictionary object.
EntryE | Represents the "E" entry of the collection field dictionary object.
 | inherited properties...


ZZ Elements CollectionFieldElement Constructor Function

CollectionFieldElement Function

Create a new CollectionFieldElement.

Syntax

[C#]
CollectionFieldElement()
CollectionFieldElement(Atom atom, IndirectObject host)
CollectionFieldElement(IndirectObject obj)
CollectionFieldElement(Element relation, CreationOptions options)

[Visual Basic]
CollectionFieldElement()
CollectionFieldElement(atom As Atom, host As IndirectObject)
CollectionFieldElement(obj As IndirectObject)
CollectionFieldElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CollectionFieldElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CollectionFieldElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the collection field dictionary object.

Notes

Represents the "Type" entry of the collection field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "CollectionField".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 157, page 372.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.8, page 30.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 155, page 448.


ZZ Elements CollectionFieldElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the collection field dictionary object.

Notes

Represents the "Subtype" entry of the collection field dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • S
  • D
  • N
  • F
  • Desc
  • ModDate
  • CreationDate
  • Size
  • CompressedSize

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 157, page 372.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.8, page 30.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 155, page 448.


ZZ Elements CollectionFieldElement EntryN Property

EntryN Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "N" entry of the collection field dictionary object.

Notes

Represents the "N" entry of the collection field dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 157, page 372.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.8, page 30.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 155, page 448.


ZZ Elements CollectionFieldElement EntryO Property

EntryO Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "O" entry of the collection field dictionary object.

Notes

Represents the "O" entry of the collection field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 157, page 372.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.8, page 30.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 155, page 448.


ZZ Elements CollectionFieldElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "V" entry of the collection field dictionary object.

Notes

Represents the "V" entry of the collection field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of true if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 157, page 372.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.8, page 30.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 155, page 448.


ZZ Elements CollectionFieldElement EntryE Property

EntryE Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "E" entry of the collection field dictionary object.

Notes

Represents the "E" entry of the collection field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 157, page 372.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.8, page 30.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 155, page 448.


ZZ Elements CollectionSortElement

CollectionSortElement Class

This class represents the collection sort dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 158, page 373.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 156, page 449.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CollectionSortElement

Method | Description
CollectionSortElement | Create a new CollectionSortElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the collection sort dictionary object.
EntryS | Represents the "S" entry of the collection sort dictionary object.
EntryA | Represents the "A" entry of the collection sort dictionary object.
 | inherited properties...


ZZ Elements CollectionSortElement Constructor Function

CollectionSortElement Function

Create a new CollectionSortElement.

Syntax

[C#]
CollectionSortElement()
CollectionSortElement(Atom atom, IndirectObject host)
CollectionSortElement(IndirectObject obj)
CollectionSortElement(Element relation, CreationOptions options)

[Visual Basic]
CollectionSortElement()
CollectionSortElement(atom As Atom, host As IndirectObject)
CollectionSortElement(obj As IndirectObject)
CollectionSortElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CollectionSortElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CollectionSortElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the collection sort dictionary object.

Notes

Represents the "Type" entry of the collection sort dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "CollectionSort".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 158, page 373.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 156, page 449.


ZZ Elements CollectionSortElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "S" entry of the collection sort dictionary object.

Notes

Represents the "S" entry of the collection sort dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF name objects.

If you read the specification you will see that an array of one string may be represented as a single string rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 158, page 373.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 156, page 449.


ZZ Elements CollectionSortElement EntryA Property

EntryA Property

Type | Default Value | Read Only | Description
[C#] IList<bool> [Visual Basic] IList<Boolean> | null | No | Represents the "A" entry of the collection sort dictionary object.

Notes

Represents the "A" entry of the collection sort dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains bool representing a PDF boolean objects.

The PDF specification states that items in this array assume a value of true if no value has been provided.

If you read the specification you will see that an array of one bool may be represented as a single bool rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 158, page 373.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 156, page 449.


ZZ Elements PageLabelElement

PageLabelElement Class

This class represents the page label dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 159, page 375.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 161, page 456.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.PageLabelElement

Method | Description
PageLabelElement | Create a new PageLabelElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the page label dictionary object.
EntryS | Represents the "S" entry of the page label dictionary object.
EntryP | Represents the "P" entry of the page label dictionary object.
EntrySt | Represents the "St" entry of the page label dictionary object.
 | inherited properties...


ZZ Elements PageLabelElement Constructor Function

PageLabelElement Function

Create a new PageLabelElement.

Syntax

[C#]
PageLabelElement()
PageLabelElement(Atom atom, IndirectObject host)
PageLabelElement(IndirectObject obj)
PageLabelElement(Element relation, CreationOptions options)

[Visual Basic]
PageLabelElement()
PageLabelElement(atom As Atom, host As IndirectObject)
PageLabelElement(obj As IndirectObject)
PageLabelElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new PageLabelElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements PageLabelElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the page label dictionary object.

Notes

Represents the "Type" entry of the page label dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "PageLabel".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 159, page 375.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 161, page 456.


ZZ Elements PageLabelElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the page label dictionary object.

Notes

Represents the "S" entry of the page label dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • D
  • R
  • r
  • A
  • a

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 159, page 375.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 161, page 456.


ZZ Elements PageLabelElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "P" entry of the page label dictionary object.

Notes

Represents the "P" entry of the page label dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 159, page 375.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 161, page 456.


ZZ Elements PageLabelElement EntrySt Property

EntrySt Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "St" entry of the page label dictionary object.

Notes

Represents the "St" entry of the page label dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 159, page 375.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 161, page 456.


ZZ Elements BeadElement

BeadElement Class

This class represents the bead dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 161, page 376.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 163, page 457.

This class is always an indirect object because BeadElement.EntryN, BeadElement.EntryV, PageObjectElement.EntryB, ThreadActionElement.EntryB and ThreadElement.EntryF require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.BeadElement

Method | Description
BeadElement | Create a new BeadElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the bead dictionary object.
EntryT | Represents the "T" entry of the bead dictionary object.
EntryN | Represents the "N" entry of the bead dictionary object.
EntryV | Represents the "V" entry of the bead dictionary object.
EntryP | Represents the "P" entry of the bead dictionary object.
EntryR | Represents the "R" entry of the bead dictionary object.
 | inherited properties...


ZZ Elements BeadElement Constructor Function

BeadElement Function

Create a new BeadElement.

Syntax

[C#]
BeadElement()
BeadElement(Atom atom, IndirectObject host)
BeadElement(IndirectObject obj)
BeadElement(Element relation, CreationOptions options)

[Visual Basic]
BeadElement()
BeadElement(atom As Atom, host As IndirectObject)
BeadElement(obj As IndirectObject)
BeadElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new BeadElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements BeadElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the bead dictionary object.

Notes

Represents the "Type" entry of the bead dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Bead".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 161, page 376.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 163, page 457.


ZZ Elements BeadElement EntryT Property

EntryT Property

Type | Default Value | Read Only | Description
[C#] ThreadElement [Visual Basic] ThreadElement | null | No | Represents the "T" entry of the bead dictionary object.

Notes

Represents the "T" entry of the bead dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a ThreadElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 161, page 376.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 163, page 457.


ZZ Elements BeadElement EntryN Property

EntryN Property

Type | Default Value | Read Only | Description
[C#] BeadElement [Visual Basic] BeadElement | null | No | Represents the "N" entry of the bead dictionary object.

Notes

Represents the "N" entry of the bead dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a BeadElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 161, page 376.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 163, page 457.


ZZ Elements BeadElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] BeadElement [Visual Basic] BeadElement | null | No | Represents the "V" entry of the bead dictionary object.

Notes

Represents the "V" entry of the bead dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a BeadElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 161, page 376.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 163, page 457.


ZZ Elements BeadElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] PageObjectElement [Visual Basic] PageObjectElement | null | No | Represents the "P" entry of the bead dictionary object.

Notes

Represents the "P" entry of the bead dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a PageObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 161, page 376.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 163, page 457.


ZZ Elements BeadElement EntryR Property

EntryR Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "R" entry of the bead dictionary object.

Notes

Represents the "R" entry of the bead dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 161, page 376.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 163, page 457.


ZZ Elements ThreadElement

ThreadElement Class

This class represents the thread dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 160, page 376.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 162, page 457.

This class is always an indirect object because BeadElement.EntryT, CatalogElement.EntryThreads and ThreadActionElement.EntryD require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ThreadElement

Method | Description
ThreadElement | Create a new ThreadElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the thread dictionary object.
EntryF | Represents the "F" entry of the thread dictionary object.
EntryI | Represents the "I" entry of the thread dictionary object.
 | inherited properties...


ZZ Elements ThreadElement Constructor Function

ThreadElement Function

Create a new ThreadElement.

Syntax

[C#]
ThreadElement()
ThreadElement(Atom atom, IndirectObject host)
ThreadElement(IndirectObject obj)
ThreadElement(Element relation, CreationOptions options)

[Visual Basic]
ThreadElement()
ThreadElement(atom As Atom, host As IndirectObject)
ThreadElement(obj As IndirectObject)
ThreadElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ThreadElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ThreadElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the thread dictionary object.

Notes

Represents the "Type" entry of the thread dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Thread".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 160, page 376.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 162, page 457.


ZZ Elements ThreadElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] BeadElement [Visual Basic] BeadElement | null | No | Represents the "F" entry of the thread dictionary object.

Notes

Represents the "F" entry of the thread dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a BeadElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 160, page 376.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 162, page 457.


ZZ Elements ThreadElement EntryI Property

EntryI Property

Type | Default Value | Read Only | Description
[C#] DocumentInformationElement [Visual Basic] DocumentInformationElement | null | No | Represents the "I" entry of the thread dictionary object.

Notes

Represents the "I" entry of the thread dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a DocumentInformationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 160, page 376.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 162, page 457.


ZZ Elements TransitionElement

TransitionElement Class

This class represents the transition dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 162, page 378.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 164, page 459.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.TransitionElement

Method | Description
TransitionElement | Create a new TransitionElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the transition dictionary object.
EntryS | Represents the "S" entry of the transition dictionary object.
EntryD | Represents the "D" entry of the transition dictionary object.
EntryDm | Represents the "Dm" entry of the transition dictionary object.
EntryM | Represents the "M" entry of the transition dictionary object.
EntryDi | Represents the "Di" entry of the transition dictionary object.
EntrySS | Represents the "SS" entry of the transition dictionary object.
EntryB | Represents the "B" entry of the transition dictionary object.
 | inherited properties...


ZZ Elements TransitionElement Constructor Function

TransitionElement Function

Create a new TransitionElement.

Syntax

[C#]
TransitionElement()
TransitionElement(Atom atom, IndirectObject host)
TransitionElement(IndirectObject obj)
TransitionElement(Element relation, CreationOptions options)

[Visual Basic]
TransitionElement()
TransitionElement(atom As Atom, host As IndirectObject)
TransitionElement(obj As IndirectObject)
TransitionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new TransitionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements TransitionElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the transition dictionary object.

Notes

Represents the "Type" entry of the transition dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Trans".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 162, page 378.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 164, page 459.


ZZ Elements TransitionElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the transition dictionary object.

Notes

Represents the "S" entry of the transition dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "R" if no value has been provided.

This item may take one of the following valid values:.

  • Split
  • Blinds
  • Box
  • Wipe
  • Dissolve
  • Glitter
  • R
  • Fly
  • Push
  • Cover
  • Uncover
  • Fade

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 162, page 378.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 164, page 459.


ZZ Elements TransitionElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "D" entry of the transition dictionary object.

Notes

Represents the "D" entry of the transition dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 162, page 378.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 164, page 459.


ZZ Elements TransitionElement EntryDm Property

EntryDm Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Dm" entry of the transition dictionary object.

Notes

Represents the "Dm" entry of the transition dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "H" if no value has been provided.

This item may take one of the following valid values:.

  • H
  • V

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 162, page 378.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 164, page 459.


ZZ Elements TransitionElement EntryM Property

EntryM Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "M" entry of the transition dictionary object.

Notes

Represents the "M" entry of the transition dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "I" if no value has been provided.

This item may take one of the following valid values:.

  • :
  • I
  • O

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 162, page 378.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 164, page 460.


ZZ Elements TransitionElement EntryDi Property

EntryDi Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Di" entry of the transition dictionary object.

Notes

Represents the "Di" entry of the transition dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

2) A string representing a PDF name object.

If provided, this item must always take the value "None".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 162, page 379.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 164, page 460.


ZZ Elements TransitionElement EntrySS Property

EntrySS Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "SS" entry of the transition dictionary object.

Notes

Represents the "SS" entry of the transition dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 162, page 379.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 164, page 460.


ZZ Elements TransitionElement EntryB Property

EntryB Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "B" entry of the transition dictionary object.

Notes

Represents the "B" entry of the transition dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 162, page 379.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 164, page 460.


ZZ Elements NavigationNodeElement

NavigationNodeElement Class

This class represents the navigation node dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 163, page 380.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 165, page 461.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.NavigationNodeElement

Method | Description
NavigationNodeElement | Create a new NavigationNodeElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the navigation node dictionary object.
EntryNA | Represents the "NA" entry of the navigation node dictionary object.
EntryPA | Represents the "PA" entry of the navigation node dictionary object.
EntryNext | Represents the "Next" entry of the navigation node dictionary object.
EntryPrev | Represents the "Prev" entry of the navigation node dictionary object.
EntryDur | Represents the "Dur" entry of the navigation node dictionary object.
 | inherited properties...


ZZ Elements NavigationNodeElement Constructor Function

NavigationNodeElement Function

Create a new NavigationNodeElement.

Syntax

[C#]
NavigationNodeElement()
NavigationNodeElement(Atom atom, IndirectObject host)
NavigationNodeElement(IndirectObject obj)
NavigationNodeElement(Element relation, CreationOptions options)

[Visual Basic]
NavigationNodeElement()
NavigationNodeElement(atom As Atom, host As IndirectObject)
NavigationNodeElement(obj As IndirectObject)
NavigationNodeElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new NavigationNodeElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements NavigationNodeElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the navigation node dictionary object.

Notes

Represents the "Type" entry of the navigation node dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "NavNode".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 163, page 380.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 165, page 461.


ZZ Elements NavigationNodeElement EntryNA Property

EntryNA Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "NA" entry of the navigation node dictionary object.

Notes

Represents the "NA" entry of the navigation node dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 163, page 380.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 165, page 461.


ZZ Elements NavigationNodeElement EntryPA Property

EntryPA Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "PA" entry of the navigation node dictionary object.

Notes

Represents the "PA" entry of the navigation node dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 163, page 380.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 165, page 461.


ZZ Elements NavigationNodeElement EntryNext Property

EntryNext Property

Type | Default Value | Read Only | Description
[C#] NavigationNodeElement [Visual Basic] NavigationNodeElement | null | No | Represents the "Next" entry of the navigation node dictionary object.

Notes

Represents the "Next" entry of the navigation node dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a NavigationNodeElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 163, page 380.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 165, page 461.


ZZ Elements NavigationNodeElement EntryPrev Property

EntryPrev Property

Type | Default Value | Read Only | Description
[C#] NavigationNodeElement [Visual Basic] NavigationNodeElement | null | No | Represents the "Prev" entry of the navigation node dictionary object.

Notes

Represents the "Prev" entry of the navigation node dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a NavigationNodeElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 163, page 380.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 165, page 461.


ZZ Elements NavigationNodeElement EntryDur Property

EntryDur Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Dur" entry of the navigation node dictionary object.

Notes

Represents the "Dur" entry of the navigation node dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 163, page 380.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 165, page 461.


ZZ Elements AnnotationElement

AnnotationElement Class

This class represents the annotation dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 383.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 464.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.

This class is always an indirect object because HideActionElement.EntryT, MarkupAnnotationElement.EntryIRT, PageObjectElement.EntryAnnots and PopUpAnnotationElement.EntryParent require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.D3DAnnotationElement
         WebSupergoo.ABCpdf12.Elements.LinkAnnotationElement
         WebSupergoo.ABCpdf12.Elements.MarkupAnnotationElement
         WebSupergoo.ABCpdf12.Elements.MovieAnnotationElement
         WebSupergoo.ABCpdf12.Elements.PopUpAnnotationElement
         WebSupergoo.ABCpdf12.Elements.PrintersMarkAnnotationElement
         WebSupergoo.ABCpdf12.Elements.RichMediaAnnotationElement
         WebSupergoo.ABCpdf12.Elements.ScreenAnnotationElement
         WebSupergoo.ABCpdf12.Elements.TrapNetworkAnnotationElement
         WebSupergoo.ABCpdf12.Elements.WatermarkAnnotationElement
         WebSupergoo.ABCpdf12.Elements.WidgetAnnotationElement

Method | Description
AnnotationElement | Create a new AnnotationElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the annotation dictionary object.
EntrySubtype | Represents the "Subtype" entry of the annotation dictionary object.
EntryRect | Represents the "Rect" entry of the annotation dictionary object.
EntryContents | Represents the "Contents" entry of the annotation dictionary object.
EntryP | Represents the "P" entry of the annotation dictionary object.
EntryNM | Represents the "NM" entry of the annotation dictionary object.
EntryM | Represents the "M" entry of the annotation dictionary object.
EntryF | Represents the "F" entry of the annotation dictionary object.
EntryAP | Represents the "AP" entry of the annotation dictionary object.
EntryAS | Represents the "AS" entry of the annotation dictionary object.
EntryBorder | Represents the "Border" entry of the annotation dictionary object.
EntryC | Represents the "C" entry of the annotation dictionary object.
EntryStructParent | Represents the "StructParent" entry of the annotation dictionary object.
EntryOC | Represents the "OC" entry of the annotation dictionary object.
EntryPage | Represents the "Page" entry of the annotation dictionary object.
EntryAF | Represents the "AF" entry of the annotation dictionary object.
Entry_ca | Represents the "ca" entry of the annotation dictionary object.
EntryCA | Represents the "CA" entry of the annotation dictionary object.
EntryBM | Represents the "BM" entry of the annotation dictionary object.
EntryLang | Represents the "Lang" entry of the annotation dictionary object.
 | inherited properties...


ZZ Elements AnnotationElement Constructor Function

AnnotationElement Function

Create a new AnnotationElement.

Syntax

[C#]
AnnotationElement()
AnnotationElement(Atom atom, IndirectObject host)
AnnotationElement(IndirectObject obj)
AnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
AnnotationElement()
AnnotationElement(atom As Atom, host As IndirectObject)
AnnotationElement(obj As IndirectObject)
AnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new AnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements AnnotationElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the annotation dictionary object.

Notes

Represents the "Type" entry of the annotation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Annot".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 383.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 464.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the annotation dictionary object.

Notes

Represents the "Subtype" entry of the annotation dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 383.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 464.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement EntryRect Property

EntryRect Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "Rect" entry of the annotation dictionary object.

Notes

Represents the "Rect" entry of the annotation dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 383.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 464.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement EntryContents Property

EntryContents Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Contents" entry of the annotation dictionary object.

Notes

Represents the "Contents" entry of the annotation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 383.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 464.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] PageObjectElement [Visual Basic] PageObjectElement | null | No | Represents the "P" entry of the annotation dictionary object.

Notes

Represents the "P" entry of the annotation dictionary object.

It is defined as part of the PDF 1.3 specification.

It contains a PageObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 383.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 464.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement EntryNM Property

EntryNM Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "NM" entry of the annotation dictionary object.

Notes

Represents the "NM" entry of the annotation dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 383.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 464.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement EntryM Property

EntryM Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "M" entry of the annotation dictionary object.

Notes

Represents the "M" entry of the annotation dictionary object.

It is an optional entry defined as part of the PDF 1.1 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 383.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 464.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "F" entry of the annotation dictionary object.

Notes

Represents the "F" entry of the annotation dictionary object.

It is an optional entry defined as part of the PDF 1.1 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 383.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 464.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement EntryAP Property

EntryAP Property

Type | Default Value | Read Only | Description
[C#] AppearanceElement [Visual Basic] AppearanceElement | null | No | Represents the "AP" entry of the annotation dictionary object.

Notes

Represents the "AP" entry of the annotation dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains an AppearanceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 383.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 465.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement EntryAS Property

EntryAS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "AS" entry of the annotation dictionary object.

Notes

Represents the "AS" entry of the annotation dictionary object.

It is defined as part of the PDF 1.2 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 383.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 465.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement EntryBorder Property

EntryBorder Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "Border" entry of the annotation dictionary object.

Notes

Represents the "Border" entry of the annotation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 384.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 465.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "C" entry of the annotation dictionary object.

Notes

Represents the "C" entry of the annotation dictionary object.

It is an optional entry defined as part of the PDF 1.1 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 384.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 465.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement EntryStructParent Property

EntryStructParent Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "StructParent" entry of the annotation dictionary object.

Notes

Represents the "StructParent" entry of the annotation dictionary object.

It is defined as part of the PDF 1.3 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 384.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 466.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement EntryOC Property

EntryOC Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "OC" entry of the annotation dictionary object.

Notes

Represents the "OC" entry of the annotation dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

This property may contain one of two different types:.

1) An OptionalContentGroupElement.

2) An OptionalContentMembershipElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 384.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 466.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement EntryPage Property

EntryPage Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Page" entry of the annotation dictionary object.

Notes

Represents the "Page" entry of the annotation dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 383.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 464.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement EntryAF Property

EntryAF Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FileSpecificationElement> [Visual Basic] ArrayElement<FileSpecificationElement> | null | No | Represents the "AF" entry of the annotation dictionary object.

Notes

Represents the "AF" entry of the annotation dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains FileSpecificationElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 383.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 466.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement Entry_ca Property

Entry_ca Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "ca" entry of the annotation dictionary object.

Notes

Represents the "ca" entry of the annotation dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 383.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 466.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement EntryCA Property

EntryCA Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "CA" entry of the annotation dictionary object.

Notes

Represents the "CA" entry of the annotation dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 383.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 466.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement EntryBM Property

EntryBM Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "BM" entry of the annotation dictionary object.

Notes

Represents the "BM" entry of the annotation dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Normal" if no value has been provided.

This item may take one of the following valid values:.

  • Normal
  • Compatible
  • Multiply
  • Screen
  • Overlay
  • Darken
  • Lighten
  • ColorDodge
  • ColorBurn
  • HardLight
  • SoftLight
  • Difference
  • Exclusion
  • Hue
  • Saturation
  • Color
  • Luminosity

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 383.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 467.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements AnnotationElement EntryLang Property

EntryLang Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Lang" entry of the annotation dictionary object.

Notes

Represents the "Lang" entry of the annotation dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 164, page 383.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 166, page 467.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements BorderStyleElement

BorderStyleElement Class

This class represents the border style dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 166, page 386.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 168, page 469.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.BorderStyleElement

Method | Description
BorderStyleElement | Create a new BorderStyleElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the border style dictionary object.
EntryW | Represents the "W" entry of the border style dictionary object.
EntryS | Represents the "S" entry of the border style dictionary object.
EntryD | Represents the "D" entry of the border style dictionary object.
 | inherited properties...


ZZ Elements BorderStyleElement Constructor Function

BorderStyleElement Function

Create a new BorderStyleElement.

Syntax

[C#]
BorderStyleElement()
BorderStyleElement(Atom atom, IndirectObject host)
BorderStyleElement(IndirectObject obj)
BorderStyleElement(Element relation, CreationOptions options)

[Visual Basic]
BorderStyleElement()
BorderStyleElement(atom As Atom, host As IndirectObject)
BorderStyleElement(obj As IndirectObject)
BorderStyleElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new BorderStyleElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 90 in the Annotations example project.

[C#]

// The BS entry is not applicable for all Annotation types. However we coerce it into a type which supports it.
CircleAnnotationElement element = new CircleAnnotationElement(AnnotationElement.Object);
if (element.EntryBS == null)
  element.EntryBS = new BorderStyleElement(AnnotationElement);
return element.EntryBS;

[VB]

' The BS entry is not applicable for all Annotation types. However we coerce it into a type which supports it.
Dim element As New CircleAnnotationElement(AnnotationElement.Object)
If element.EntryBS Is Nothing Then
  element.EntryBS = New BorderStyleElement(AnnotationElement)
End If
Return element.EntryBS


ZZ Elements BorderStyleElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the border style dictionary object.

Notes

Represents the "Type" entry of the border style dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Border".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 166, page 386.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 168, page 469.


ZZ Elements BorderStyleElement EntryW Property

EntryW Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "W" entry of the border style dictionary object.

Notes

Represents the "W" entry of the border style dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 166, page 386.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 168, page 469.


ZZ Elements BorderStyleElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the border style dictionary object.

Notes

Represents the "S" entry of the border style dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • S
  • D
  • B
  • I
  • U

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 166, page 387.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 168, page 470.


ZZ Elements BorderStyleElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "D" entry of the border style dictionary object.

Notes

Represents the "D" entry of the border style dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 166, page 387.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 168, page 470.


ZZ Elements BorderEffectElement

BorderEffectElement Class

This class represents the border effect dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 167, page 387.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 169, page 470.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.BorderEffectElement

Method | Description
BorderEffectElement | Create a new BorderEffectElement.
 | inherited methods...

Property | Description
EntryS | Represents the "S" entry of the border effect dictionary object.
EntryI | Represents the "I" entry of the border effect dictionary object.
 | inherited properties...


ZZ Elements BorderEffectElement Constructor Function

BorderEffectElement Function

Create a new BorderEffectElement.

Syntax

[C#]
BorderEffectElement()
BorderEffectElement(Atom atom, IndirectObject host)
BorderEffectElement(IndirectObject obj)
BorderEffectElement(Element relation, CreationOptions options)

[Visual Basic]
BorderEffectElement()
BorderEffectElement(atom As Atom, host As IndirectObject)
BorderEffectElement(obj As IndirectObject)
BorderEffectElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new BorderEffectElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1347 in the Annotations example project.

[C#]

PolygonAnnotationElement annot = new PolygonAnnotationElement(AnnotationElement.Object);
if (annot.EntryBE == null)
  annot.EntryBE = new BorderEffectElement(annot);
annot.EntryBE.EntryS = "C";
annot.EntryBE.EntryI = value;

[VB]

Dim annot As New PolygonAnnotationElement(AnnotationElement.Object)
If annot.EntryBE Is Nothing Then
  annot.EntryBE = New BorderEffectElement(annot)
End If
annot.EntryBE.EntryS = "C"
annot.EntryBE.EntryI = value


ZZ Elements BorderEffectElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the border effect dictionary object.

Notes

Represents the "S" entry of the border effect dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "S" if no value has been provided.

This item may take one of the following valid values:.

  • S
  • C

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 167, page 387.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 169, page 470.


ZZ Elements BorderEffectElement EntryI Property

EntryI Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "I" entry of the border effect dictionary object.

Notes

Represents the "I" entry of the border effect dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

It should have a minimum value of 0 and a maximum of 2.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 167, page 387.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 169, page 470.


ZZ Elements AppearanceElement

AppearanceElement Class

This class represents the appearance dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 168, page 389.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 170, page 472.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AppearanceElement

Method | Description
AppearanceElement | Create a new AppearanceElement.
 | inherited methods...

Property | Description
EntryN | Represents the "N" entry of the appearance dictionary object.
EntryR | Represents the "R" entry of the appearance dictionary object.
EntryD | Represents the "D" entry of the appearance dictionary object.
 | inherited properties...


ZZ Elements AppearanceElement Constructor Function

AppearanceElement Function

Create a new AppearanceElement.

Syntax

[C#]
AppearanceElement()
AppearanceElement(Atom atom, IndirectObject host)
AppearanceElement(IndirectObject obj)
AppearanceElement(Element relation, CreationOptions options)

[Visual Basic]
AppearanceElement()
AppearanceElement(atom As Atom, host As IndirectObject)
AppearanceElement(obj As IndirectObject)
AppearanceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new AppearanceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 847 in the Annotations example project.

[C#]

CatalogElement cat = new CatalogElement(Doc.ObjectSoup.Catalog);
cat.EntryAcroForm.EntrySigFlags = 3;

// NB If you don't want your signature to print then set the /F flag to 0
int fieldID = Doc.AddObject("<</Type /Annot /Subtype /Widget /F 4 /FT /Sig /DA (/TimesRoman 0 Tf 0 g)>>");
WidgetAnnotationElement widget = new WidgetAnnotationElement(Doc.ObjectSoup[fieldID]);
SignatureFieldElement field = (SignatureFieldElement)widget.FieldElement;

FormField formField = new FormField(this, inName, field.Object.ID);
formField.Widget.Rect = new XRect(inRect);

if (mSig == null)
  Doc.Form.Refresh();
else {
  string sigName = mSig.Name;
  Doc.Form.Refresh();
  mSig = (Signature)Doc.Form[sigName];
}

if (inAppearanceText != null) {
  XRect rect = widget.EntryRect.GetRect();
  rect.Pin = XRect.Corner.TopLeft;
  rect.Width = 200; // Change this to fit the Text
  rect.Height = 60; // Change this to fit the Text
  widget.EntryRect.SetRect(rect);
  rect.Pin = XRect.Corner.BottomLeft;
  rect.Position(0, 0);

  int fontSize = 12;
  string theRect = Doc.Rect.String;
  int theFont = Doc.Font;
  int theFontSize = Doc.FontSize;
  double charSpacing = Doc.TextStyle.CharSpacing;
  double lineSpacing = Doc.TextStyle.LineSpacing;
  int pageID = Doc.Page;

  // Use a detached page to avoid changes to the current page
  // or to the page tree for a new page
  Doc.Page = Doc.AddObject("<</Type /Page /MediaBox [" + rect.String + "] >>");
  Doc.Rect.String = rect.String;

  int fontID = Doc.AddFont("Times-Roman");
  Doc.Font = fontID;
  Doc.FontSize = fontSize;
  Doc.TextStyle.CharSpacing = 0;
  Doc.TextStyle.LineSpacing = 2;
  int textID = Doc.AddText(inAppearanceText);
  string textStream = Doc.GetInfo(textID, "Stream");
  Doc.Delete(textID);
  int l1 = textStream.IndexOf("/Fabc", 0, textStream.Length);
  int l2 = textStream.IndexOf(" ", l1, textStream.Length - l1);
  string fontResName = textStream.Substring(l1 + 1, l2 - l1 - 1);

  Doc.Delete(Doc.Page);
  Doc.Page = pageID;
  Doc.Rect.String = theRect;
  Doc.Font = theFont;
  Doc.FontSize = theFontSize;
  Doc.TextStyle.CharSpacing = charSpacing;
  Doc.TextStyle.LineSpacing = lineSpacing;

  widget.EntryAP = new AppearanceElement(widget);
  widget.EntryAP.EntryN = MakeAppearance(rect, null, 0, fontResName, fontID, textStream);
}

return formField;

[VB]

Dim cat As New CatalogElement(Doc.ObjectSoup.Catalog)
cat.EntryAcroForm.EntrySigFlags = 3

' NB If you don't want your signature to print then set the /F flag to 0
Dim fieldID As Integer = Doc.AddObject("<</Type /Annot /Subtype /Widget /F 4 /FT /Sig /DA (/TimesRoman 0 Tf 0 g)>>")
Dim widget As New WidgetAnnotationElement(Doc.ObjectSoup(fieldID))
Dim field As SignatureFieldElement = CType(widget.FieldElement, SignatureFieldElement)

Dim formField As New FormField(Me, inName, field.Object.ID)
formField.Widget.Rect = New XRect(inRect)

If mSig Is Nothing Then
  Doc.Form.Refresh()
Else
  Dim sigName As String = mSig.Name
  Doc.Form.Refresh()
  mSig = CType(Doc.Form(sigName), Signature)
End If

If inAppearanceText IsNot Nothing Then
  Dim rect As XRect = widget.EntryRect.GetRect()
  rect.Pin = XRect.Corner.TopLeft
  rect.Width = 200 ' Change this to fit the Text
  rect.Height = 60 ' Change this to fit the Text
  widget.EntryRect.SetRect(rect)
  rect.Pin = XRect.Corner.BottomLeft
  rect.Position(0, 0)

  Dim fontSize As Integer = 12
  Dim theRect As String = Doc.Rect.String
  Dim theFont As Integer = Doc.Font
  Dim theFontSize As Integer = Doc.FontSize
  Dim charSpacing As Double = Doc.TextStyle.CharSpacing
  Dim lineSpacing As Double = Doc.TextStyle.LineSpacing
  Dim pageID As Integer = Doc.Page

  ' Use a detached page to avoid changes to the current page
  ' or to the page tree for a new page
  Doc.Page = Doc.AddObject("<</Type /Page /MediaBox [" & rect.String & "] >>")
  Doc.Rect.String = rect.String

  Dim fontID As Integer = Doc.AddFont("Times-Roman")
  Doc.Font = fontID
  Doc.FontSize = fontSize
  Doc.TextStyle.CharSpacing = 0
  Doc.TextStyle.LineSpacing = 2
  Dim textID As Integer = Doc.AddText(inAppearanceText)
  Dim textStream As String = Doc.GetInfo(textID, "Stream")
  Doc.Delete(textID)
  Dim l1 As Integer = textStream.IndexOf("/Fabc", 0, textStream.Length)
  Dim l2 As Integer = textStream.IndexOf(" ", l1, textStream.Length - l1)
  Dim fontResName As String = textStream.Substring(l1 + 1, l2 - l1 - 1)

  Doc.Delete(Doc.Page)
  Doc.Page = pageID
  Doc.Rect.String = theRect
  Doc.Font = theFont
  Doc.FontSize = theFontSize
  Doc.TextStyle.CharSpacing = charSpacing
  Doc.TextStyle.LineSpacing = lineSpacing

  widget.EntryAP = New AppearanceElement(widget)
  widget.EntryAP.EntryN = MakeAppearance(rect, Nothing, 0, fontResName, fontID, textStream)
End If

Return formField


ZZ Elements AppearanceElement EntryN Property

EntryN Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "N" entry of the appearance dictionary object.

Notes

Represents the "N" entry of the appearance dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) An Element.

2) A FormXObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 168, page 389.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 170, page 472.


ZZ Elements AppearanceElement EntryR Property

EntryR Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "R" entry of the appearance dictionary object.

Notes

Represents the "R" entry of the appearance dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) An Element.

2) A FormXObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 168, page 389.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 170, page 472.


ZZ Elements AppearanceElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "D" entry of the appearance dictionary object.

Notes

Represents the "D" entry of the appearance dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) An Element.

2) A FormXObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 168, page 389.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 170, page 472.


ZZ Elements ExternalDataElement

ExternalDataElement Class

This class represents the external data dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 170, page 391.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 332, page 695.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 173, page 477.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.21, page 38.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39g, page 76.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ExternalDataElement
         WebSupergoo.ABCpdf12.Elements.D3DAnnotationExternalDataElement

Method | Description
ExternalDataElement | Create a new ExternalDataElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the external data dictionary object.
EntrySubtype | Represents the "Subtype" entry of the external data dictionary object.
EntryM3DREF | Represents the "M3DREF" entry of the external data dictionary object.
 | inherited properties...


ZZ Elements ExternalDataElement Constructor Function

ExternalDataElement Function

Create a new ExternalDataElement.

Syntax

[C#]
ExternalDataElement()
ExternalDataElement(Atom atom, IndirectObject host)
ExternalDataElement(IndirectObject obj)
ExternalDataElement(Element relation, CreationOptions options)

[Visual Basic]
ExternalDataElement()
ExternalDataElement(atom As Atom, host As IndirectObject)
ExternalDataElement(obj As IndirectObject)
ExternalDataElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ExternalDataElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ExternalDataElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the external data dictionary object.

Notes

Represents the "Type" entry of the external data dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "ExData".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 170, page 391.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.21, page 38.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 332, page 695.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 173, page 477.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39g, page 76.


ZZ Elements ExternalDataElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the external data dictionary object.

Notes

Represents the "Subtype" entry of the external data dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This can be anything but common values include 3D, Markup3D, 3DM and MarkupGeo.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 170, page 391.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.21, page 38.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 332, page 695.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 173, page 477.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39g, page 76.


ZZ Elements ExternalDataElement EntryM3DREF Property

EntryM3DREF Property

Type | Default Value | Read Only | Description
[C#] D3DMeasurementElement [Visual Basic] D3DMeasurementElement | null | No | Represents the "M3DREF" entry of the external data dictionary object.

Notes

Represents the "M3DREF" entry of the external data dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a D3DMeasurementElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 170, page 391.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.21, page 38.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 332, page 695.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 173, page 477.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39g, page 76.


ZZ Elements MarkupAnnotationElement

MarkupAnnotationElement Class

This class represents the markup annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 170, page 391.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 332, page 695.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.21, page 38.

This class is always an indirect object because it inherits from AnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.MarkupAnnotationElement
            WebSupergoo.ABCpdf12.Elements.CaretAnnotationElement
            WebSupergoo.ABCpdf12.Elements.CircleAnnotationElement
            WebSupergoo.ABCpdf12.Elements.FileAttachmentAnnotationElement
            WebSupergoo.ABCpdf12.Elements.FreeTextAnnotationElement
            WebSupergoo.ABCpdf12.Elements.InkAnnotationElement
            WebSupergoo.ABCpdf12.Elements.LineAnnotationElement
            WebSupergoo.ABCpdf12.Elements.PolygonAnnotationElement
            WebSupergoo.ABCpdf12.Elements.PolylineAnnotationElement
            WebSupergoo.ABCpdf12.Elements.ProjectionAnnotationElement
            WebSupergoo.ABCpdf12.Elements.RubberStampAnnotationElement
            WebSupergoo.ABCpdf12.Elements.RedactionAnnotationElement
            WebSupergoo.ABCpdf12.Elements.SoundAnnotationElement
            WebSupergoo.ABCpdf12.Elements.SquareAnnotationElement
            WebSupergoo.ABCpdf12.Elements.TextAnnotationElement
            WebSupergoo.ABCpdf12.Elements.TextMarkupAnnotationElement

Method | Description
MarkupAnnotationElement | Create a new MarkupAnnotationElement.
 | inherited methods...

Property | Description
EntryT | Represents the "T" entry of the markup annotation object.
EntryPopup | Represents the "Popup" entry of the markup annotation object.
EntryRC | Represents the "RC" entry of the markup annotation object.
EntryCreationDate | Represents the "CreationDate" entry of the markup annotation object.
EntryIRT | Represents the "IRT" entry of the markup annotation object.
EntrySubj | Represents the "Subj" entry of the markup annotation object.
EntryRT | Represents the "RT" entry of the markup annotation object.
EntryIT | Represents the "IT" entry of the markup annotation object.
EntryExData | Represents the "ExData" entry of the markup annotation object.
 | inherited properties...


ZZ Elements MarkupAnnotationElement Constructor Function

MarkupAnnotationElement Function

Create a new MarkupAnnotationElement.

Syntax

[C#]
MarkupAnnotationElement()
MarkupAnnotationElement(Atom atom, IndirectObject host)
MarkupAnnotationElement(IndirectObject obj)
MarkupAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
MarkupAnnotationElement()
MarkupAnnotationElement(atom As Atom, host As IndirectObject)
MarkupAnnotationElement(obj As IndirectObject)
MarkupAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MarkupAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MarkupAnnotationElement EntryT Property

EntryT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "T" entry of the markup annotation object.

Notes

Represents the "T" entry of the markup annotation object.

It is an optional entry defined as part of the PDF 1.1 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 170, page 391.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.21, page 38.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 332, page 695.


ZZ Elements MarkupAnnotationElement EntryPopup Property

EntryPopup Property

Type | Default Value | Read Only | Description
[C#] PopUpAnnotationElement [Visual Basic] PopUpAnnotationElement | null | No | Represents the "Popup" entry of the markup annotation object.

Notes

Represents the "Popup" entry of the markup annotation object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a PopUpAnnotationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 170, page 391.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.21, page 38.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 332, page 695.


ZZ Elements MarkupAnnotationElement EntryRC Property

EntryRC Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "RC" entry of the markup annotation object.

Notes

Represents the "RC" entry of the markup annotation object.

It is an optional entry defined as part of the PDF 1.5 specification.

This property may contain one of two different types:.

1) A string representing a PDF string object.

2) A TextStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 170, page 392.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.21, page 38.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 332, page 695.


ZZ Elements MarkupAnnotationElement EntryCreationDate Property

EntryCreationDate Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "CreationDate" entry of the markup annotation object.

Notes

Represents the "CreationDate" entry of the markup annotation object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a string representing a PDF string object.

This is encoded as a date string. For details see the StringAtom.DateToString and StringAtom.StringToDate functions.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 170, page 392.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.21, page 38.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 332, page 695.


ZZ Elements MarkupAnnotationElement EntryIRT Property

EntryIRT Property

Type | Default Value | Read Only | Description
[C#] AnnotationElement [Visual Basic] AnnotationElement | null | No | Represents the "IRT" entry of the markup annotation object.

Notes

Represents the "IRT" entry of the markup annotation object.

It is defined as part of the PDF 1.5 specification.

It contains an AnnotationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 170, page 392.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.21, page 38.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 332, page 695.


ZZ Elements MarkupAnnotationElement EntrySubj Property

EntrySubj Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subj" entry of the markup annotation object.

Notes

Represents the "Subj" entry of the markup annotation object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 170, page 392.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.21, page 38.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 332, page 695.


ZZ Elements MarkupAnnotationElement EntryRT Property

EntryRT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "RT" entry of the markup annotation object.

Notes

Represents the "RT" entry of the markup annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "R" if no value has been provided.

This item may take one of the following valid values:.

  • R
  • Group

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 170, page 392.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.21, page 38.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 332, page 695.


ZZ Elements TextAnnotationElement EntryIT Property

EntryIT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "IT" entry of the text annotation object.

Notes

Represents the "IT" entry of the text annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 172, page 394.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 175, page 478.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.21, page 38.


ZZ Elements MarkupAnnotationElement EntryExData Property

EntryExData Property

Type | Default Value | Read Only | Description
[C#] ExternalDataElement [Visual Basic] ExternalDataElement | null | No | Represents the "ExData" entry of the markup annotation object.

Notes

Represents the "ExData" entry of the markup annotation object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains an ExternalDataElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 170, page 393.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.21, page 38.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 332, page 695.


ZZ Elements LinkAnnotationElement

LinkAnnotationElement Class

This class represents the link annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 173, page 394.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 176, page 479.

This class is always an indirect object because it inherits from AnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.LinkAnnotationElement

Method | Description
LinkAnnotationElement | Create a new LinkAnnotationElement.
 | inherited methods...

Property | Description
EntryA | Represents the "A" entry of the link annotation object.
EntryDest | Represents the "Dest" entry of the link annotation object.
EntryH | Represents the "H" entry of the link annotation object.
EntryPA | Represents the "PA" entry of the link annotation object.
EntryQuadPoints | Represents the "QuadPoints" entry of the link annotation object.
EntryBS | Represents the "BS" entry of the link annotation object.
 | inherited properties...


ZZ Elements LinkAnnotationElement Constructor Function

LinkAnnotationElement Function

Create a new LinkAnnotationElement.

Syntax

[C#]
LinkAnnotationElement()
LinkAnnotationElement(Atom atom, IndirectObject host)
LinkAnnotationElement(IndirectObject obj)
LinkAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
LinkAnnotationElement()
LinkAnnotationElement(atom As Atom, host As IndirectObject)
LinkAnnotationElement(obj As IndirectObject)
LinkAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new LinkAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements LinkAnnotationElement EntryA Property

EntryA Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "A" entry of the link annotation object.

Notes

Represents the "A" entry of the link annotation object.

It is an optional entry defined as part of the PDF 1.1 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 173, page 394.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 176, page 479.


ZZ Elements LinkAnnotationElement EntryDest Property

EntryDest Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Dest" entry of the link annotation object.

Notes

Represents the "Dest" entry of the link annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of three different types:.

1) A string representing a PDF name object.

2) A string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

3) A DestinationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 173, page 395.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 176, page 479.


ZZ Elements LinkAnnotationElement EntryH Property

EntryH Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "H" entry of the link annotation object.

Notes

Represents the "H" entry of the link annotation object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "I" if no value has been provided.

This item may take one of the following valid values:.

  • N
  • I
  • O
  • P

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 173, page 395.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 176, page 479.


ZZ Elements LinkAnnotationElement EntryPA Property

EntryPA Property

Type | Default Value | Read Only | Description
[C#] UriActionElement [Visual Basic] UriActionElement | null | No | Represents the "PA" entry of the link annotation object.

Notes

Represents the "PA" entry of the link annotation object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains an UriActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 173, page 395.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 176, page 479.


ZZ Elements LinkAnnotationElement EntryQuadPoints Property

EntryQuadPoints Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "QuadPoints" entry of the link annotation object.

Notes

Represents the "QuadPoints" entry of the link annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 173, page 395.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 176, page 480.


ZZ Elements LinkAnnotationElement EntryBS Property

EntryBS Property

Type | Default Value | Read Only | Description
[C#] BorderStyleElement [Visual Basic] BorderStyleElement | null | No | Represents the "BS" entry of the link annotation object.

Notes

Represents the "BS" entry of the link annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a BorderStyleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 173, page 395.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 176, page 480.


ZZ Elements TextAnnotationElement

TextAnnotationElement Class

This class represents the text annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 172, page 394.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 175, page 478.

This class is always an indirect object because it inherits from MarkupAnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.MarkupAnnotationElement
            WebSupergoo.ABCpdf12.Elements.TextAnnotationElement

Method | Description
TextAnnotationElement | Create a new TextAnnotationElement.
 | inherited methods...

Property | Description
EntryOpen | Represents the "Open" entry of the text annotation object.
EntryName | Represents the "Name" entry of the text annotation object.
EntryState | Represents the "State" entry of the text annotation object.
EntryStateModel | Represents the "StateModel" entry of the text annotation object.
EntryIT | Represents the "IT" entry of the text annotation object.
 | inherited properties...


ZZ Elements TextAnnotationElement Constructor Function

TextAnnotationElement Function

Create a new TextAnnotationElement.

Syntax

[C#]
TextAnnotationElement()
TextAnnotationElement(Atom atom, IndirectObject host)
TextAnnotationElement(IndirectObject obj)
TextAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
TextAnnotationElement()
TextAnnotationElement(atom As Atom, host As IndirectObject)
TextAnnotationElement(obj As IndirectObject)
TextAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new TextAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1715 in the Annotations example project.

[C#]

TextAnnotationElement annot = new TextAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "Text";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect1)), annot.Host);
annot.EntryName = "Comment";
annot.EntryContents = contents;
if (!string.IsNullOrEmpty(rect2)) {
  PopupAnnotation popup = new PopupAnnotation(form, rect2, AnnotationElement.Object.ID);
  annot.EntryPopup = (PopUpAnnotationElement)popup.AnnotationElement;
}
AnnotationElement = annot;

[VB]

Dim annot As New TextAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "Text"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect1)), annot.Host)
annot.EntryName = "Comment"
annot.EntryContents = contents
If Not String.IsNullOrEmpty(rect2) Then
  Dim popup As New PopupAnnotation(form, rect2, AnnotationElement.Object.ID)
  annot.EntryPopup = CType(popup.AnnotationElement, PopUpAnnotationElement)
End If
AnnotationElement = annot


ZZ Elements TextAnnotationElement EntryOpen Property

EntryOpen Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "Open" entry of the text annotation object.

Notes

Represents the "Open" entry of the text annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 172, page 394.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 175, page 478.


ZZ Elements TextAnnotationElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Name" entry of the text annotation object.

Notes

Represents the "Name" entry of the text annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Note" if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 172, page 394.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 175, page 478.


ZZ Elements TextAnnotationElement EntryState Property

EntryState Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "State" entry of the text annotation object.

Notes

Represents the "State" entry of the text annotation object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a string representing a PDF string object.

The PDF specification states that this item assumes a value of ""Unmarked" if StateModel is "Marked"; "None" if StateModel is "Review"" if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 172, page 394.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 175, page 478.


ZZ Elements TextAnnotationElement EntryStateModel Property

EntryStateModel Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "StateModel" entry of the text annotation object.

Notes

Represents the "StateModel" entry of the text annotation object.

It is defined as part of the PDF 1.5 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 172, page 394.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 175, page 479.


ZZ Elements TextAnnotationElement EntryIT Property

EntryIT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "IT" entry of the text annotation object.

Notes

Represents the "IT" entry of the text annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 172, page 394.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 175, page 478.


ZZ Elements FreeTextAnnotationElement

FreeTextAnnotationElement Class

This class represents the free text annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 174, page 396.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 177, page 480.

This class is always an indirect object because it inherits from MarkupAnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.MarkupAnnotationElement
            WebSupergoo.ABCpdf12.Elements.FreeTextAnnotationElement

Method | Description
FreeTextAnnotationElement | Create a new FreeTextAnnotationElement.
 | inherited methods...

Property | Description
EntryDA | Represents the "DA" entry of the free text annotation object.
EntryQ | Represents the "Q" entry of the free text annotation object.
EntryDS | Represents the "DS" entry of the free text annotation object.
EntryCL | Represents the "CL" entry of the free text annotation object.
EntryIT | Represents the "IT" entry of the free text annotation object.
EntryBE | Represents the "BE" entry of the free text annotation object.
EntryRD | Represents the "RD" entry of the free text annotation object.
EntryBS | Represents the "BS" entry of the free text annotation object.
EntryLE | Represents the "LE" entry of the free text annotation object.
 | inherited properties...


ZZ Elements FreeTextAnnotationElement Constructor Function

FreeTextAnnotationElement Function

Create a new FreeTextAnnotationElement.

Syntax

[C#]
FreeTextAnnotationElement()
FreeTextAnnotationElement(Atom atom, IndirectObject host)
FreeTextAnnotationElement(IndirectObject obj)
FreeTextAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
FreeTextAnnotationElement()
FreeTextAnnotationElement(atom As Atom, host As IndirectObject)
FreeTextAnnotationElement(obj As IndirectObject)
FreeTextAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FreeTextAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FreeTextAnnotationElement EntryDA Property

EntryDA Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "DA" entry of the free text annotation object.

Notes

Represents the "DA" entry of the free text annotation object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 174, page 396.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 177, page 480.


ZZ Elements FreeTextAnnotationElement EntryQ Property

EntryQ Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Q" entry of the free text annotation object.

Notes

Represents the "Q" entry of the free text annotation object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains an integer representing a PDF numeric object.

It should have a minimum value of 0 and a maximum of 2.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 174, page 396.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 177, page 481.


ZZ Elements FreeTextAnnotationElement EntryDS Property

EntryDS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "DS" entry of the free text annotation object.

Notes

Represents the "DS" entry of the free text annotation object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 174, page 396.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 177, page 481.


ZZ Elements FreeTextAnnotationElement EntryCL Property

EntryCL Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "CL" entry of the free text annotation object.

Notes

Represents the "CL" entry of the free text annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 174, page 396.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 177, page 481.


ZZ Elements FreeTextAnnotationElement EntryIT Property

EntryIT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "IT" entry of the free text annotation object.

Notes

Represents the "IT" entry of the free text annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "FreeText" if no value has been provided.

This item may take one of the following valid values:.

  • FreeText
  • FreeTextCallout
  • FreeTextTypeWriter

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 174, page 396.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 177, page 481.


ZZ Elements FreeTextAnnotationElement EntryBE Property

EntryBE Property

Type | Default Value | Read Only | Description
[C#] BorderEffectElement [Visual Basic] BorderEffectElement | null | No | Represents the "BE" entry of the free text annotation object.

Notes

Represents the "BE" entry of the free text annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a BorderEffectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 174, page 396.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 177, page 481.


ZZ Elements FreeTextAnnotationElement EntryRD Property

EntryRD Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "RD" entry of the free text annotation object.

Notes

Represents the "RD" entry of the free text annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 174, page 397.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 177, page 481.


ZZ Elements FreeTextAnnotationElement EntryBS Property

EntryBS Property

Type | Default Value | Read Only | Description
[C#] BorderStyleElement [Visual Basic] BorderStyleElement | null | No | Represents the "BS" entry of the free text annotation object.

Notes

Represents the "BS" entry of the free text annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a BorderStyleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 174, page 397.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 177, page 481.


ZZ Elements FreeTextAnnotationElement EntryLE Property

EntryLE Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "LE" entry of the free text annotation object.

Notes

Represents the "LE" entry of the free text annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "None" if no value has been provided.

This item may take one of the following valid values:.

  • Square
  • Circle
  • Diamond
  • OpenArrow
  • ClosedArrow
  • None
  • Butt
  • ROpenArrow
  • RClosedArrow
  • Slash

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 174, page 397.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 177, page 482.


ZZ Elements LineAnnotationElement

LineAnnotationElement Class

This class represents the line annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 175, page 398.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 178, page 482.

This class is always an indirect object because it inherits from MarkupAnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.MarkupAnnotationElement
            WebSupergoo.ABCpdf12.Elements.LineAnnotationElement

Method | Description
LineAnnotationElement | Create a new LineAnnotationElement.
 | inherited methods...

Property | Description
EntryL | Represents the "L" entry of the line annotation object.
EntryBS | Represents the "BS" entry of the line annotation object.
EntryLE | Represents the "LE" entry of the line annotation object.
EntryIC | Represents the "IC" entry of the line annotation object.
EntryLL | Represents the "LL" entry of the line annotation object.
EntryLLE | Represents the "LLE" entry of the line annotation object.
EntryCap | Represents the "Cap" entry of the line annotation object.
EntryIT | Represents the "IT" entry of the line annotation object.
EntryLLO | Represents the "LLO" entry of the line annotation object.
EntryCP | Represents the "CP" entry of the line annotation object.
EntryMeasure | Represents the "Measure" entry of the line annotation object.
EntryCO | Represents the "CO" entry of the line annotation object.
 | inherited properties...


ZZ Elements LineAnnotationElement Constructor Function

LineAnnotationElement Function

Create a new LineAnnotationElement.

Syntax

[C#]
LineAnnotationElement()
LineAnnotationElement(Atom atom, IndirectObject host)
LineAnnotationElement(IndirectObject obj)
LineAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
LineAnnotationElement()
LineAnnotationElement(atom As Atom, host As IndirectObject)
LineAnnotationElement(obj As IndirectObject)
LineAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new LineAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1444 in the Annotations example project.

[C#]

LineAnnotationElement annot = new LineAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "Line";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(line)), annot.Host);
annot.EntryL = Array.ConvertAll(line.Split(new char[] { ' ' }), s => double.Parse(s, NumberFormatInfo.InvariantInfo));
annot.EntryC = Array.ConvertAll(color.Split(new char[] { ' ' }), s => double.Parse(s, NumberFormatInfo.InvariantInfo) / 255);
AnnotationElement = annot;

[VB]

Dim annot As New LineAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "Line"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(line)), annot.Host)
annot.EntryL = Array.ConvertAll(line.Split(New Char() { " "c }), Function(s) Double.Parse(s, NumberFormatInfo.InvariantInfo))
annot.EntryC = Array.ConvertAll(color.Split(New Char() { " "c }), Function(s) Double.Parse(s, NumberFormatInfo.InvariantInfo) / 255)
AnnotationElement = annot

This code snippet is taken from Annotations.cs line 1467 in the Annotations example project.

[C#]

LineAnnotationElement annot = new LineAnnotationElement(AnnotationElement.Object);
annot.EntryLE = styles;

[VB]

Dim annot As New LineAnnotationElement(AnnotationElement.Object)
annot.EntryLE = styles

This code snippet is taken from Annotations.cs line 1478 in the Annotations example project.

[C#]

LineAnnotationElement annot = new LineAnnotationElement(AnnotationElement.Object);
annot.EntryCap = value != null;
annot.EntryContents = value;

[VB]

Dim annot As New LineAnnotationElement(AnnotationElement.Object)
annot.EntryCap = value IsNot Nothing
annot.EntryContents = value

This code snippet is taken from Annotations.cs line 1489 in the Annotations example project.

[C#]

LineAnnotationElement annot = new LineAnnotationElement(AnnotationElement.Object);
annot.EntryCap = value != null;
annot.EntryRC = new Element(new StringAtom(value), annot.Host);

[VB]

Dim annot As New LineAnnotationElement(AnnotationElement.Object)
annot.EntryCap = value IsNot Nothing
annot.EntryRC = New Element(New StringAtom(value), annot.Host)

This code snippet is taken from Annotations.cs line 1500 in the Annotations example project.

[C#]

LineAnnotationElement annot = new LineAnnotationElement(AnnotationElement.Object);
annot.EntryIC = Array.ConvertAll(value.Split(new char[] { ' ' }), s => double.Parse(s, NumberFormatInfo.InvariantInfo) / 255);

[VB]

Dim annot As New LineAnnotationElement(AnnotationElement.Object)
annot.EntryIC = Array.ConvertAll(value.Split(New Char() { " "c }), Function(s) Double.Parse(s, NumberFormatInfo.InvariantInfo) / 255)


ZZ Elements LineAnnotationElement EntryL Property

EntryL Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "L" entry of the line annotation object.

Notes

Represents the "L" entry of the line annotation object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 175, page 398.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 178, page 482.


ZZ Elements LineAnnotationElement EntryBS Property

EntryBS Property

Type | Default Value | Read Only | Description
[C#] BorderStyleElement [Visual Basic] BorderStyleElement | null | No | Represents the "BS" entry of the line annotation object.

Notes

Represents the "BS" entry of the line annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a BorderStyleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 175, page 398.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 178, page 482.


ZZ Elements LineAnnotationElement EntryLE Property

EntryLE Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "LE" entry of the line annotation object.

Notes

Represents the "LE" entry of the line annotation object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains an array which contains strings, representing PDF name objects.

Items in this array may take one of the following valid values:.

  • Square
  • Circle
  • Diamond
  • OpenArrow
  • ClosedArrow
  • None
  • Butt
  • ROpenArrow
  • RClosedArrow
  • Slash

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 175, page 398.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 178, page 482.


ZZ Elements LineAnnotationElement EntryIC Property

EntryIC Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "IC" entry of the line annotation object.

Notes

Represents the "IC" entry of the line annotation object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 175, page 398.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 178, page 483.


ZZ Elements LineAnnotationElement EntryLL Property

EntryLL Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "LL" entry of the line annotation object.

Notes

Represents the "LL" entry of the line annotation object.

It is defined as part of the PDF 1.6 specification.

It contains a double representing a PDF numeric object.

It should have a positive value.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 175, page 398.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 178, page 483.


ZZ Elements LineAnnotationElement EntryLLE Property

EntryLLE Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "LLE" entry of the line annotation object.

Notes

Represents the "LLE" entry of the line annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a double representing a PDF numeric object.

It should have a minimum value of 0.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 175, page 398.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 178, page 483.


ZZ Elements LineAnnotationElement EntryCap Property

EntryCap Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "Cap" entry of the line annotation object.

Notes

Represents the "Cap" entry of the line annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 175, page 398.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 178, page 483.


ZZ Elements LineAnnotationElement EntryIT Property

EntryIT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "IT" entry of the line annotation object.

Notes

Represents the "IT" entry of the line annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • LineArrow
  • LineDimension

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 175, page 398.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 178, page 483.


ZZ Elements LineAnnotationElement EntryLLO Property

EntryLLO Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "LLO" entry of the line annotation object.

Notes

Represents the "LLO" entry of the line annotation object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a double representing a PDF numeric object.

It should have a minimum value of 0.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 175, page 399.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 178, page 483.


ZZ Elements LineAnnotationElement EntryCP Property

EntryCP Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "CP" entry of the line annotation object.

Notes

Represents the "CP" entry of the line annotation object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Inline" if no value has been provided.

This item may take one of the following valid values:.

  • Inline
  • Top

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 175, page 399.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 178, page 483.


ZZ Elements LineAnnotationElement EntryMeasure Property

EntryMeasure Property

Type | Default Value | Read Only | Description
[C#] MeasureElement [Visual Basic] MeasureElement | null | No | Represents the "Measure" entry of the line annotation object.

Notes

Represents the "Measure" entry of the line annotation object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a MeasureElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 175, page 399.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 178, page 483.


ZZ Elements LineAnnotationElement EntryCO Property

EntryCO Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "CO" entry of the line annotation object.

Notes

Represents the "CO" entry of the line annotation object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a positive value.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 175, page 399.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 178, page 484.


ZZ Elements CircleAnnotationElement

CircleAnnotationElement Class

This class represents the circle annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 177, page 401.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 180, page 486.

This class is always an indirect object because it inherits from MarkupAnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.MarkupAnnotationElement
            WebSupergoo.ABCpdf12.Elements.CircleAnnotationElement

Method | Description
CircleAnnotationElement | Create a new CircleAnnotationElement.
 | inherited methods...

Property | Description
EntryBS | Represents the "BS" entry of the circle annotation object.
EntryIC | Represents the "IC" entry of the circle annotation object.
EntryBE | Represents the "BE" entry of the circle annotation object.
EntryRD | Represents the "RD" entry of the circle annotation object.
EntryIT | Represents the "IT" entry of the circle annotation object.
 | inherited properties...


ZZ Elements CircleAnnotationElement Constructor Function

CircleAnnotationElement Function

Create a new CircleAnnotationElement.

Syntax

[C#]
CircleAnnotationElement()
CircleAnnotationElement(Atom atom, IndirectObject host)
CircleAnnotationElement(IndirectObject obj)
CircleAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
CircleAnnotationElement()
CircleAnnotationElement(atom As Atom, host As IndirectObject)
CircleAnnotationElement(obj As IndirectObject)
CircleAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CircleAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 90 in the Annotations example project.

[C#]

// The BS entry is not applicable for all Annotation types. However we coerce it into a type which supports it.
CircleAnnotationElement element = new CircleAnnotationElement(AnnotationElement.Object);
if (element.EntryBS == null)
  element.EntryBS = new BorderStyleElement(AnnotationElement);
return element.EntryBS;

[VB]

' The BS entry is not applicable for all Annotation types. However we coerce it into a type which supports it.
Dim element As New CircleAnnotationElement(AnnotationElement.Object)
If element.EntryBS Is Nothing Then
  element.EntryBS = New BorderStyleElement(AnnotationElement)
End If
Return element.EntryBS


ZZ Elements CircleAnnotationElement EntryBS Property

EntryBS Property

Type | Default Value | Read Only | Description
[C#] BorderStyleElement [Visual Basic] BorderStyleElement | null | No | Represents the "BS" entry of the circle annotation object.

Notes

Represents the "BS" entry of the circle annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a BorderStyleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 177, page 401.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 180, page 486.


ZZ Elements CircleAnnotationElement EntryIC Property

EntryIC Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "IC" entry of the circle annotation object.

Notes

Represents the "IC" entry of the circle annotation object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 177, page 402.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 180, page 487.


ZZ Elements CircleAnnotationElement EntryBE Property

EntryBE Property

Type | Default Value | Read Only | Description
[C#] BorderEffectElement [Visual Basic] BorderEffectElement | null | No | Represents the "BE" entry of the circle annotation object.

Notes

Represents the "BE" entry of the circle annotation object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a BorderEffectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 177, page 402.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 180, page 487.


ZZ Elements CircleAnnotationElement EntryRD Property

EntryRD Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "RD" entry of the circle annotation object.

Notes

Represents the "RD" entry of the circle annotation object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 177, page 402.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 180, page 487.


ZZ Elements CircleAnnotationElement EntryIT Property

EntryIT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "IT" entry of the circle annotation object.

Notes

Represents the "IT" entry of the circle annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 177, page 401.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 180, page 486.


ZZ Elements SquareAnnotationElement

SquareAnnotationElement Class

This class represents the square annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 177, page 401.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 180, page 486.

This class is always an indirect object because it inherits from MarkupAnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.MarkupAnnotationElement
            WebSupergoo.ABCpdf12.Elements.SquareAnnotationElement

Method | Description
SquareAnnotationElement | Create a new SquareAnnotationElement.
 | inherited methods...

Property | Description
EntryBS | Represents the "BS" entry of the square annotation object.
EntryIC | Represents the "IC" entry of the square annotation object.
EntryBE | Represents the "BE" entry of the square annotation object.
EntryRD | Represents the "RD" entry of the square annotation object.
EntryIT | Represents the "IT" entry of the square annotation object.
 | inherited properties...


ZZ Elements SquareAnnotationElement Constructor Function

SquareAnnotationElement Function

Create a new SquareAnnotationElement.

Syntax

[C#]
SquareAnnotationElement()
SquareAnnotationElement(Atom atom, IndirectObject host)
SquareAnnotationElement(IndirectObject obj)
SquareAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
SquareAnnotationElement()
SquareAnnotationElement(atom As Atom, host As IndirectObject)
SquareAnnotationElement(obj As IndirectObject)
SquareAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SquareAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1519 in the Annotations example project.

[C#]

SquareAnnotationElement annot = new SquareAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "Square";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);
annot.EntryC = Array.ConvertAll(borderColor.Split(new char[] { ' ' }), s => double.Parse(s, NumberFormatInfo.InvariantInfo) / 255.0);
annot.EntryIC = Array.ConvertAll(fillColor.Split(new char[] { ' ' }), s => double.Parse(s, NumberFormatInfo.InvariantInfo) / 255.0);
AnnotationElement = annot;

[VB]

Dim annot As New SquareAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "Square"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)
annot.EntryC = Array.ConvertAll(borderColor.Split(New Char() { " "c }), Function(s) Double.Parse(s, NumberFormatInfo.InvariantInfo) / 255.0)
annot.EntryIC = Array.ConvertAll(fillColor.Split(New Char() { " "c }), Function(s) Double.Parse(s, NumberFormatInfo.InvariantInfo) / 255.0)
AnnotationElement = annot


ZZ Elements SquareAnnotationElement EntryBS Property

EntryBS Property

Type | Default Value | Read Only | Description
[C#] BorderStyleElement [Visual Basic] BorderStyleElement | null | No | Represents the "BS" entry of the square annotation object.

Notes

Represents the "BS" entry of the square annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a BorderStyleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 177, page 401.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 180, page 486.


ZZ Elements SquareAnnotationElement EntryIC Property

EntryIC Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "IC" entry of the square annotation object.

Notes

Represents the "IC" entry of the square annotation object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 177, page 402.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 180, page 487.


ZZ Elements SquareAnnotationElement EntryBE Property

EntryBE Property

Type | Default Value | Read Only | Description
[C#] BorderEffectElement [Visual Basic] BorderEffectElement | null | No | Represents the "BE" entry of the square annotation object.

Notes

Represents the "BE" entry of the square annotation object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a BorderEffectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 177, page 402.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 180, page 487.


ZZ Elements SquareAnnotationElement EntryRD Property

EntryRD Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "RD" entry of the square annotation object.

Notes

Represents the "RD" entry of the square annotation object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 177, page 402.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 180, page 487.


ZZ Elements SquareAnnotationElement EntryIT Property

EntryIT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "IT" entry of the square annotation object.

Notes

Represents the "IT" entry of the square annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 177, page 401.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 180, page 486.


ZZ Elements PolygonAnnotationElement

PolygonAnnotationElement Class

This class represents the polygon annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 178, page 402.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 181, page 487.

This class is always an indirect object because it inherits from MarkupAnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.MarkupAnnotationElement
            WebSupergoo.ABCpdf12.Elements.PolygonAnnotationElement

Method | Description
PolygonAnnotationElement | Create a new PolygonAnnotationElement.
 | inherited methods...

Property | Description
EntryVertices | Represents the "Vertices" entry of the polygon annotation object.
EntryLE | Represents the "LE" entry of the polygon annotation object.
EntryBS | Represents the "BS" entry of the polygon annotation object.
EntryIC | Represents the "IC" entry of the polygon annotation object.
EntryBE | Represents the "BE" entry of the polygon annotation object.
EntryIT | Represents the "IT" entry of the polygon annotation object.
EntryMeasure | Represents the "Measure" entry of the polygon annotation object.
EntryPath | Represents the "Path" entry of the polygon annotation object.
 | inherited properties...


ZZ Elements PolygonAnnotationElement Constructor Function

PolygonAnnotationElement Function

Create a new PolygonAnnotationElement.

Syntax

[C#]
PolygonAnnotationElement()
PolygonAnnotationElement(Atom atom, IndirectObject host)
PolygonAnnotationElement(IndirectObject obj)
PolygonAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
PolygonAnnotationElement()
PolygonAnnotationElement(atom As Atom, host As IndirectObject)
PolygonAnnotationElement(obj As IndirectObject)
PolygonAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new PolygonAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1326 in the Annotations example project.

[C#]

PolygonAnnotationElement annot = new PolygonAnnotationElement(AnnotationElement.Object);
double[] vertices = Array.ConvertAll(polygon.Split(new char[] { ' ' }), s => double.Parse(s, NumberFormatInfo.InvariantInfo));
annot.EntrySubtype = "Polygon";
annot.EntryVertices = vertices;
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(InteractiveForm.GetBoundingRect(vertices)), annot.Host);
annot.EntryC = Array.ConvertAll(borderColor.Split(new char[] { ' ' }), s => double.Parse(s, NumberFormatInfo.InvariantInfo) / 255);
annot.EntryIC = Array.ConvertAll(fillColor.Split(new char[] { ' ' }), s => double.Parse(s, NumberFormatInfo.InvariantInfo) / 255);
AnnotationElement = annot;

[VB]

Dim annot As New PolygonAnnotationElement(AnnotationElement.Object)
Dim vertices() As Double = Array.ConvertAll(polygon.Split(New Char() { " "c }), Function(s) Double.Parse(s, NumberFormatInfo.InvariantInfo))
annot.EntrySubtype = "Polygon"
annot.EntryVertices = vertices
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(InteractiveForm.GetBoundingRect(vertices)), annot.Host)
annot.EntryC = Array.ConvertAll(borderColor.Split(New Char() { " "c }), Function(s) Double.Parse(s, NumberFormatInfo.InvariantInfo) / 255)
annot.EntryIC = Array.ConvertAll(fillColor.Split(New Char() { " "c }), Function(s) Double.Parse(s, NumberFormatInfo.InvariantInfo) / 255)
AnnotationElement = annot


ZZ Elements PolygonAnnotationElement EntryVertices Property

EntryVertices Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Vertices" entry of the polygon annotation object.

Notes

Represents the "Vertices" entry of the polygon annotation object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 178, page 402.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 181, page 487.


ZZ Elements PolygonAnnotationElement EntryLE Property

EntryLE Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "LE" entry of the polygon annotation object.

Notes

Represents the "LE" entry of the polygon annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 178, page 402.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 181, page 487.


ZZ Elements PolygonAnnotationElement EntryBS Property

EntryBS Property

Type | Default Value | Read Only | Description
[C#] BorderStyleElement [Visual Basic] BorderStyleElement | null | No | Represents the "BS" entry of the polygon annotation object.

Notes

Represents the "BS" entry of the polygon annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a BorderStyleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 178, page 402.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 181, page 488.


ZZ Elements PolygonAnnotationElement EntryIC Property

EntryIC Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "IC" entry of the polygon annotation object.

Notes

Represents the "IC" entry of the polygon annotation object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 178, page 403.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 181, page 488.


ZZ Elements PolygonAnnotationElement EntryBE Property

EntryBE Property

Type | Default Value | Read Only | Description
[C#] BorderEffectElement [Visual Basic] BorderEffectElement | null | No | Represents the "BE" entry of the polygon annotation object.

Notes

Represents the "BE" entry of the polygon annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a BorderEffectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 178, page 403.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 181, page 488.


ZZ Elements PolygonAnnotationElement EntryIT Property

EntryIT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "IT" entry of the polygon annotation object.

Notes

Represents the "IT" entry of the polygon annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • PolygonCloud
  • PolyLineDimension
  • PolygonDimension

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 178, page 403.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 181, page 488.


ZZ Elements PolygonAnnotationElement EntryMeasure Property

EntryMeasure Property

Type | Default Value | Read Only | Description
[C#] MeasureElement [Visual Basic] MeasureElement | null | No | Represents the "Measure" entry of the polygon annotation object.

Notes

Represents the "Measure" entry of the polygon annotation object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a MeasureElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 178, page 403.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 181, page 488.


ZZ Elements PolygonAnnotationElement EntryPath Property

EntryPath Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "Path" entry of the polygon annotation object.

Notes

Represents the "Path" entry of the polygon annotation object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 178, page 402.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 181, page 488.


ZZ Elements PolylineAnnotationElement

PolylineAnnotationElement Class

This class represents the polyline annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 178, page 402.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 181, page 487.

This class is always an indirect object because it inherits from MarkupAnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.MarkupAnnotationElement
            WebSupergoo.ABCpdf12.Elements.PolylineAnnotationElement

Method | Description
PolylineAnnotationElement | Create a new PolylineAnnotationElement.
 | inherited methods...

Property | Description
EntryVertices | Represents the "Vertices" entry of the polyline annotation object.
EntryLE | Represents the "LE" entry of the polyline annotation object.
EntryBS | Represents the "BS" entry of the polyline annotation object.
EntryIC | Represents the "IC" entry of the polyline annotation object.
EntryBE | Represents the "BE" entry of the polyline annotation object.
EntryIT | Represents the "IT" entry of the polyline annotation object.
EntryMeasure | Represents the "Measure" entry of the polyline annotation object.
EntryPath | Represents the "Path" entry of the polyline annotation object.
 | inherited properties...


ZZ Elements PolylineAnnotationElement Constructor Function

PolylineAnnotationElement Function

Create a new PolylineAnnotationElement.

Syntax

[C#]
PolylineAnnotationElement()
PolylineAnnotationElement(Atom atom, IndirectObject host)
PolylineAnnotationElement(IndirectObject obj)
PolylineAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
PolylineAnnotationElement()
PolylineAnnotationElement(atom As Atom, host As IndirectObject)
PolylineAnnotationElement(obj As IndirectObject)
PolylineAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new PolylineAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1298 in the Annotations example project.

[C#]

PolylineAnnotationElement annot = new PolylineAnnotationElement(AnnotationElement.Object);
double[] vertices = Array.ConvertAll(polygon.Split(new char[] { ' ' }), s => double.Parse(s, NumberFormatInfo.InvariantInfo));
annot.EntrySubtype = "PolyLine";
annot.EntryVertices = vertices;
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(InteractiveForm.GetBoundingRect(vertices)), annot.Host);
annot.EntryC = Array.ConvertAll(borderColor.Split(new char[] { ' ' }), s => double.Parse(s, NumberFormatInfo.InvariantInfo) / 255);
AnnotationElement = annot;

[VB]

Dim annot As New PolylineAnnotationElement(AnnotationElement.Object)
Dim vertices() As Double = Array.ConvertAll(polygon.Split(New Char() { " "c }), Function(s) Double.Parse(s, NumberFormatInfo.InvariantInfo))
annot.EntrySubtype = "PolyLine"
annot.EntryVertices = vertices
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(InteractiveForm.GetBoundingRect(vertices)), annot.Host)
annot.EntryC = Array.ConvertAll(borderColor.Split(New Char() { " "c }), Function(s) Double.Parse(s, NumberFormatInfo.InvariantInfo) / 255)
AnnotationElement = annot


ZZ Elements PolylineAnnotationElement EntryVertices Property

EntryVertices Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Vertices" entry of the polyline annotation object.

Notes

Represents the "Vertices" entry of the polyline annotation object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 178, page 402.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 181, page 487.


ZZ Elements PolylineAnnotationElement EntryLE Property

EntryLE Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "LE" entry of the polyline annotation object.

Notes

Represents the "LE" entry of the polyline annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF name objects.

Items in this array may take one of the following valid values:.

  • Square
  • Circle
  • Diamond
  • OpenArrow
  • ClosedArrow
  • None
  • Butt
  • ROpenArrow
  • RClosedArrow
  • Slash

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 178, page 402.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 181, page 487.


ZZ Elements PolylineAnnotationElement EntryBS Property

EntryBS Property

Type | Default Value | Read Only | Description
[C#] BorderStyleElement [Visual Basic] BorderStyleElement | null | No | Represents the "BS" entry of the polyline annotation object.

Notes

Represents the "BS" entry of the polyline annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a BorderStyleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 178, page 402.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 181, page 488.


ZZ Elements PolylineAnnotationElement EntryIC Property

EntryIC Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "IC" entry of the polyline annotation object.

Notes

Represents the "IC" entry of the polyline annotation object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 178, page 403.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 181, page 488.


ZZ Elements PolylineAnnotationElement EntryBE Property

EntryBE Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "BE" entry of the polyline annotation object.

Notes

Represents the "BE" entry of the polyline annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 178, page 403.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 181, page 488.


ZZ Elements PolylineAnnotationElement EntryIT Property

EntryIT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "IT" entry of the polyline annotation object.

Notes

Represents the "IT" entry of the polyline annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • PolygonCloud
  • PolyLineDimension
  • PolygonDimension

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 178, page 403.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 181, page 488.


ZZ Elements PolylineAnnotationElement EntryMeasure Property

EntryMeasure Property

Type | Default Value | Read Only | Description
[C#] MeasureElement [Visual Basic] MeasureElement | null | No | Represents the "Measure" entry of the polyline annotation object.

Notes

Represents the "Measure" entry of the polyline annotation object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a MeasureElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 178, page 403.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 181, page 488.


ZZ Elements PolylineAnnotationElement EntryPath Property

EntryPath Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "Path" entry of the polyline annotation object.

Notes

Represents the "Path" entry of the polyline annotation object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 178, page 402.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 181, page 488.


ZZ Elements TextMarkupAnnotationElement

TextMarkupAnnotationElement Class

This class represents the text markup annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 179, page 403.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 182, page 489.

This class is always an indirect object because it inherits from MarkupAnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.MarkupAnnotationElement
            WebSupergoo.ABCpdf12.Elements.TextMarkupAnnotationElement

Method | Description
TextMarkupAnnotationElement | Create a new TextMarkupAnnotationElement.
 | inherited methods...

Property | Description
EntryQuadPoints | Represents the "QuadPoints" entry of the text markup annotation object.
EntryIT | Represents the "IT" entry of the text markup annotation object.
 | inherited properties...


ZZ Elements TextMarkupAnnotationElement Constructor Function

TextMarkupAnnotationElement Function

Create a new TextMarkupAnnotationElement.

Syntax

[C#]
TextMarkupAnnotationElement()
TextMarkupAnnotationElement(Atom atom, IndirectObject host)
TextMarkupAnnotationElement(IndirectObject obj)
TextMarkupAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
TextMarkupAnnotationElement()
TextMarkupAnnotationElement(atom As Atom, host As IndirectObject)
TextMarkupAnnotationElement(obj As IndirectObject)
TextMarkupAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new TextMarkupAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1746 in the Annotations example project.

[C#]

TextMarkupAnnotationElement annot = new TextMarkupAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = markupType;
annot.EntryQuadPoints = Array.ConvertAll(quadPoints.Split(new char[] { ' ' }), s => double.Parse(s, NumberFormatInfo.InvariantInfo));
AnnotationElement = annot;
Color = color;

[VB]

Dim annot As New TextMarkupAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = markupType
annot.EntryQuadPoints = Array.ConvertAll(quadPoints.Split(New Char() { " "c }), Function(s) Double.Parse(s, NumberFormatInfo.InvariantInfo))
AnnotationElement = annot
Color = color

This code snippet is taken from Annotations.cs line 1767 in the Annotations example project.

[C#]

XRect rect = new XRect(Form.Doc.GetInfo(id, "Rect"));
TextMarkupAnnotationElement annot = new TextMarkupAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = markupType;
annot.EntryQuadPoints = new double[] { rect.Left, rect.Top, rect.Right, rect.Top, rect.Left, rect.Bottom, rect.Right, rect.Bottom };
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(rect), annot.Host);
AnnotationElement = annot;
Color = color;

[VB]

Dim rect As New XRect(Form.Doc.GetInfo(id, "Rect"))
Dim annot As New TextMarkupAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = markupType
annot.EntryQuadPoints = New Double() { rect.Left, rect.Top, rect.Right, rect.Top, rect.Left, rect.Bottom, rect.Right, rect.Bottom }
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(rect), annot.Host)
AnnotationElement = annot
Color = color

This code snippet is taken from Annotations.cs line 1784 in the Annotations example project.

[C#]

XRect rect = Form.Doc.Rect;
TextMarkupAnnotationElement annot = new TextMarkupAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = markupType;
annot.EntryQuadPoints = new double[] { rect.Left, rect.Top, rect.Right, rect.Top, rect.Left, rect.Bottom, rect.Right, rect.Bottom };
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(rect), annot.Host);
AnnotationElement = annot;
Color = color;

[VB]

Dim rect As XRect = Form.Doc.Rect
Dim annot As New TextMarkupAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = markupType
annot.EntryQuadPoints = New Double() { rect.Left, rect.Top, rect.Right, rect.Top, rect.Left, rect.Bottom, rect.Right, rect.Bottom }
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(rect), annot.Host)
AnnotationElement = annot
Color = color


ZZ Elements TextMarkupAnnotationElement EntryQuadPoints Property

EntryQuadPoints Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "QuadPoints" entry of the text markup annotation object.

Notes

Represents the "QuadPoints" entry of the text markup annotation object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 179, page 403.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 182, page 489.


ZZ Elements TextMarkupAnnotationElement EntryIT Property

EntryIT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "IT" entry of the text markup annotation object.

Notes

Represents the "IT" entry of the text markup annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 179, page 403.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 182, page 489.


ZZ Elements CaretAnnotationElement

CaretAnnotationElement Class

This class represents the caret annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 180, page 404.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 183, page 489.

This class is always an indirect object because it inherits from MarkupAnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.MarkupAnnotationElement
            WebSupergoo.ABCpdf12.Elements.CaretAnnotationElement

Method | Description
CaretAnnotationElement | Create a new CaretAnnotationElement.
 | inherited methods...

Property | Description
EntryRD | Represents the "RD" entry of the caret annotation object.
EntrySy | Represents the "Sy" entry of the caret annotation object.
EntryIT | Represents the "IT" entry of the caret annotation object.
 | inherited properties...


ZZ Elements CaretAnnotationElement Constructor Function

CaretAnnotationElement Function

Create a new CaretAnnotationElement.

Syntax

[C#]
CaretAnnotationElement()
CaretAnnotationElement(Atom atom, IndirectObject host)
CaretAnnotationElement(IndirectObject obj)
CaretAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
CaretAnnotationElement()
CaretAnnotationElement(atom As Atom, host As IndirectObject)
CaretAnnotationElement(obj As IndirectObject)
CaretAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CaretAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CaretAnnotationElement EntryRD Property

EntryRD Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "RD" entry of the caret annotation object.

Notes

Represents the "RD" entry of the caret annotation object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 180, page 404.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 183, page 490.


ZZ Elements CaretAnnotationElement EntrySy Property

EntrySy Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Sy" entry of the caret annotation object.

Notes

Represents the "Sy" entry of the caret annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "None" if no value has been provided.

This item may take one of the following valid values:.

  • P
  • None

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 180, page 404.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 183, page 490.


ZZ Elements CaretAnnotationElement EntryIT Property

EntryIT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "IT" entry of the caret annotation object.

Notes

Represents the "IT" entry of the caret annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 180, page 404.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 183, page 489.


ZZ Elements InkAnnotationElement

InkAnnotationElement Class

This class represents the ink annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 182, page 405.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 185, page 491.

This class is always an indirect object because it inherits from MarkupAnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.MarkupAnnotationElement
            WebSupergoo.ABCpdf12.Elements.InkAnnotationElement

Method | Description
InkAnnotationElement | Create a new InkAnnotationElement.
 | inherited methods...

Property | Description
EntryInkList | Represents the "InkList" entry of the ink annotation object.
EntryBS | Represents the "BS" entry of the ink annotation object.
EntryIT | Represents the "IT" entry of the ink annotation object.
EntryPath | Represents the "Path" entry of the ink annotation object.
 | inherited properties...


ZZ Elements InkAnnotationElement Constructor Function

InkAnnotationElement Function

Create a new InkAnnotationElement.

Syntax

[C#]
InkAnnotationElement()
InkAnnotationElement(Atom atom, IndirectObject host)
InkAnnotationElement(IndirectObject obj)
InkAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
InkAnnotationElement()
InkAnnotationElement(atom As Atom, host As IndirectObject)
InkAnnotationElement(obj As IndirectObject)
InkAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new InkAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements InkAnnotationElement EntryInkList Property

EntryInkList Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "InkList" entry of the ink annotation object.

Notes

Represents the "InkList" entry of the ink annotation object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 182, page 405.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 185, page 491.


ZZ Elements InkAnnotationElement EntryBS Property

EntryBS Property

Type | Default Value | Read Only | Description
[C#] BorderStyleElement [Visual Basic] BorderStyleElement | null | No | Represents the "BS" entry of the ink annotation object.

Notes

Represents the "BS" entry of the ink annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a BorderStyleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 182, page 405.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 185, page 491.


ZZ Elements InkAnnotationElement EntryIT Property

EntryIT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "IT" entry of the ink annotation object.

Notes

Represents the "IT" entry of the ink annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 182, page 405.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 185, page 491.


ZZ Elements InkAnnotationElement EntryPath Property

EntryPath Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "Path" entry of the ink annotation object.

Notes

Represents the "Path" entry of the ink annotation object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 182, page 405.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 185, page 491.


ZZ Elements RubberStampAnnotationElement

RubberStampAnnotationElement Class

This class represents the rubber stamp annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 181, page 405.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 184, page 490.

This class is always an indirect object because it inherits from MarkupAnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.MarkupAnnotationElement
            WebSupergoo.ABCpdf12.Elements.RubberStampAnnotationElement

Method | Description
RubberStampAnnotationElement | Create a new RubberStampAnnotationElement.
 | inherited methods...

Property | Description
EntryName | Represents the "Name" entry of the rubber stamp annotation object.
EntryIT | Represents the "IT" entry of the rubber stamp annotation object.
 | inherited properties...


ZZ Elements RubberStampAnnotationElement Constructor Function

RubberStampAnnotationElement Function

Create a new RubberStampAnnotationElement.

Syntax

[C#]
RubberStampAnnotationElement()
RubberStampAnnotationElement(Atom atom, IndirectObject host)
RubberStampAnnotationElement(IndirectObject obj)
RubberStampAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
RubberStampAnnotationElement()
RubberStampAnnotationElement(atom As Atom, host As IndirectObject)
RubberStampAnnotationElement(obj As IndirectObject)
RubberStampAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RubberStampAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1370 in the Annotations example project.

[C#]

double aspectRatio;
FormXObject formXObject = GenerateAppearanceStream(form.Doc, caption, color, out aspectRatio);
XRect xrect = new XRect(rect);
xrect.Width = xrect.Height * aspectRatio;
RubberStampAnnotationElement annot = new RubberStampAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "Stamp";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(xrect), annot.Host);
annot.EntryContents = caption;
annot.EntryAP = new AppearanceElement(annot);
annot.EntryAP.EntryN = new FormXObjectElement(formXObject);
AnnotationElement = annot;

[VB]

Dim aspectRatio As Double = Nothing
Dim formXObject As FormXObject = GenerateAppearanceStream(form.Doc, caption, color, aspectRatio)
Dim xrect As New XRect(rect)
xrect.Width = xrect.Height * aspectRatio
Dim annot As New RubberStampAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "Stamp"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(xrect), annot.Host)
annot.EntryContents = caption
annot.EntryAP = New AppearanceElement(annot)
annot.EntryAP.EntryN = New FormXObjectElement(formXObject)
AnnotationElement = annot


ZZ Elements RubberStampAnnotationElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Name" entry of the rubber stamp annotation object.

Notes

Represents the "Name" entry of the rubber stamp annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Draft" if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 181, page 405.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 184, page 490.


ZZ Elements RubberStampAnnotationElement EntryIT Property

EntryIT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "IT" entry of the rubber stamp annotation object.

Notes

Represents the "IT" entry of the rubber stamp annotation object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Stamp" if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 181, page 405.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 184, page 491.


ZZ Elements FileAttachmentAnnotationElement

FileAttachmentAnnotationElement Class

This class represents the file attachment annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 184, page 406.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 187, page 492.

This class is always an indirect object because it inherits from MarkupAnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.MarkupAnnotationElement
            WebSupergoo.ABCpdf12.Elements.FileAttachmentAnnotationElement

Method | Description
FileAttachmentAnnotationElement | Create a new FileAttachmentAnnotationElement.
 | inherited methods...

Property | Description
EntryFS | Represents the "FS" entry of the file attachment annotation object.
EntryName | Represents the "Name" entry of the file attachment annotation object.
EntryIT | Represents the "IT" entry of the file attachment annotation object.
 | inherited properties...


ZZ Elements FileAttachmentAnnotationElement Constructor Function

FileAttachmentAnnotationElement Function

Create a new FileAttachmentAnnotationElement.

Syntax

[C#]
FileAttachmentAnnotationElement()
FileAttachmentAnnotationElement(Atom atom, IndirectObject host)
FileAttachmentAnnotationElement(IndirectObject obj)
FileAttachmentAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
FileAttachmentAnnotationElement()
FileAttachmentAnnotationElement(atom As Atom, host As IndirectObject)
FileAttachmentAnnotationElement(obj As IndirectObject)
FileAttachmentAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FileAttachmentAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1656 in the Annotations example project.

[C#]

FileAttachmentAnnotationElement annot = new FileAttachmentAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "FileAttachment";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);
FullFileSpecificationElement fileSpec = new FullFileSpecificationElement(annot);
fileSpec.EntryType = "Filespec";
FileInfo fileInfo = new FileInfo(filePath);
fileSpec.EntryF = fileInfo.Name;
fileSpec.EntryUF = fileInfo.Name;
fileSpec.EntryEF = new EmbeddedFileSetElement(annot);
fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo);
annot.EntryFS = fileSpec;
AnnotationElement = annot;

[VB]

Dim annot As New FileAttachmentAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "FileAttachment"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)
Dim fileSpec As New FullFileSpecificationElement(annot)
fileSpec.EntryType = "Filespec"
Dim fileInfo As New FileInfo(filePath)
fileSpec.EntryF = fileInfo.Name
fileSpec.EntryUF = fileInfo.Name
fileSpec.EntryEF = New EmbeddedFileSetElement(annot)
fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo)
annot.EntryFS = fileSpec
AnnotationElement = annot


ZZ Elements FileAttachmentAnnotationElement EntryFS Property

EntryFS Property

Type | Default Value | Read Only | Description
[C#] FileSpecificationElement [Visual Basic] FileSpecificationElement | null | No | Represents the "FS" entry of the file attachment annotation object.

Notes

Represents the "FS" entry of the file attachment annotation object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a FileSpecificationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 184, page 406.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 187, page 492.


ZZ Elements FileAttachmentAnnotationElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Name" entry of the file attachment annotation object.

Notes

Represents the "Name" entry of the file attachment annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "PushPin" if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 184, page 406.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 187, page 492.


ZZ Elements FileAttachmentAnnotationElement EntryIT Property

EntryIT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "IT" entry of the file attachment annotation object.

Notes

Represents the "IT" entry of the file attachment annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 184, page 406.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 187, page 492.


ZZ Elements PopUpAnnotationElement

PopUpAnnotationElement Class

This class represents the pop-up annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 183, page 406.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 186, page 492.

This class is always an indirect object because MarkupAnnotationElement.EntryPopup requires it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.PopUpAnnotationElement

Method | Description
PopUpAnnotationElement | Create a new PopUpAnnotationElement.
 | inherited methods...

Property | Description
EntryParent | Represents the "Parent" entry of the pop-up annotation object.
EntryOpen | Represents the "Open" entry of the pop-up annotation object.
 | inherited properties...


ZZ Elements PopUpAnnotationElement Constructor Function

PopUpAnnotationElement Function

Create a new PopUpAnnotationElement.

Syntax

[C#]
PopUpAnnotationElement()
PopUpAnnotationElement(Atom atom, IndirectObject host)
PopUpAnnotationElement(IndirectObject obj)
PopUpAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
PopUpAnnotationElement()
PopUpAnnotationElement(atom As Atom, host As IndirectObject)
PopUpAnnotationElement(obj As IndirectObject)
PopUpAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new PopUpAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1688 in the Annotations example project.

[C#]

PopUpAnnotationElement annot = new PopUpAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "Popup";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);
annot.EntryParent = parentID != 0 ? new AnnotationElement(form.Doc.ObjectSoup[parentID]) : null;
annot.EntryOpen = true;
AnnotationElement = annot;

[VB]

Dim annot As New PopUpAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "Popup"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)
annot.EntryParent = If(parentID <> 0, New AnnotationElement(form.Doc.ObjectSoup(parentID)), Nothing)
annot.EntryOpen = True
AnnotationElement = annot


ZZ Elements PopUpAnnotationElement EntryParent Property

EntryParent Property

Type | Default Value | Read Only | Description
[C#] AnnotationElement [Visual Basic] AnnotationElement | null | No | Represents the "Parent" entry of the pop-up annotation object.

Notes

Represents the "Parent" entry of the pop-up annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an AnnotationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 183, page 406.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 186, page 492.


ZZ Elements PopUpAnnotationElement EntryOpen Property

EntryOpen Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "Open" entry of the pop-up annotation object.

Notes

Represents the "Open" entry of the pop-up annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 183, page 406.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 186, page 492.


ZZ Elements MovieAnnotationElement

MovieAnnotationElement Class

This class represents the movie annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 186, page 407.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 189, page 493.

This class is always an indirect object because MovieActionElement.EntryAnnotation requires it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.MovieAnnotationElement

Method | Description
MovieAnnotationElement | Create a new MovieAnnotationElement.
 | inherited methods...

Property | Description
EntryT | Represents the "T" entry of the movie annotation object.
EntryMovie | Represents the "Movie" entry of the movie annotation object.
EntryA | Represents the "A" entry of the movie annotation object.
 | inherited properties...


ZZ Elements MovieAnnotationElement Constructor Function

MovieAnnotationElement Function

Create a new MovieAnnotationElement.

Syntax

[C#]
MovieAnnotationElement()
MovieAnnotationElement(Atom atom, IndirectObject host)
MovieAnnotationElement(IndirectObject obj)
MovieAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
MovieAnnotationElement()
MovieAnnotationElement(atom As Atom, host As IndirectObject)
MovieAnnotationElement(obj As IndirectObject)
MovieAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MovieAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MovieAnnotationElement EntryT Property

EntryT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "T" entry of the movie annotation object.

Notes

Represents the "T" entry of the movie annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 186, page 407.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 189, page 493.


ZZ Elements MovieAnnotationElement EntryMovie Property

EntryMovie Property

Type | Default Value | Read Only | Description
[C#] MovieElement [Visual Basic] MovieElement | null | No | Represents the "Movie" entry of the movie annotation object.

Notes

Represents the "Movie" entry of the movie annotation object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a MovieElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 186, page 407.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 189, page 493.


ZZ Elements MovieAnnotationElement EntryA Property

EntryA Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "A" entry of the movie annotation object.

Notes

Represents the "A" entry of the movie annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of true if no value has been provided.

2) A MovieActivationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 186, page 407.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 189, page 494.


ZZ Elements ScreenAnnotationElement

ScreenAnnotationElement Class

This class represents the screen annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 187, page 407.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 190, page 494.

This class is always an indirect object because RenditionActionElement.EntryAN requires it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.ScreenAnnotationElement

Method | Description
ScreenAnnotationElement | Create a new ScreenAnnotationElement.
 | inherited methods...

Property | Description
EntryT | Represents the "T" entry of the screen annotation object.
EntryMK | Represents the "MK" entry of the screen annotation object.
EntryA | Represents the "A" entry of the screen annotation object.
EntryAA | Represents the "AA" entry of the screen annotation object.
 | inherited properties...


ZZ Elements ScreenAnnotationElement Constructor Function

ScreenAnnotationElement Function

Create a new ScreenAnnotationElement.

Syntax

[C#]
ScreenAnnotationElement()
ScreenAnnotationElement(Atom atom, IndirectObject host)
ScreenAnnotationElement(IndirectObject obj)
ScreenAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
ScreenAnnotationElement()
ScreenAnnotationElement(atom As Atom, host As IndirectObject)
ScreenAnnotationElement(obj As IndirectObject)
ScreenAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ScreenAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1584 in the Annotations example project.

[C#]

bool isUrl = filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase);
if (contentType == null) {
  int end = -1;
  if (isUrl)
    end = filePathOrUrl.IndexOfAny(new char[] { '?', '#' });
  if (end < 0)
    end = filePathOrUrl.Length;
  contentType = GetContentType(filePathOrUrl, end);
  if (contentType == null)
    throw new NotSupportedException("Movie content type is not supported.");
}

ScreenAnnotationElement annot = new ScreenAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "Screen";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);

FullFileSpecificationElement fileSpec = new FullFileSpecificationElement(annot);
fileSpec.EntryType = "Filespec";
if (isUrl) {
  fileSpec.EntryFS = "URL";
  fileSpec.EntryF = filePathOrUrl;
}
else {
  FileInfo fileInfo = new FileInfo(filePathOrUrl);
  fileSpec.EntryF = fileInfo.Name;
  fileSpec.EntryUF = fileInfo.Name;
  fileSpec.EntryEF = new EmbeddedFileSetElement(annot);
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo);
}

MediaClipDataElement mediaClip = new MediaClipDataElement(annot, CreationOptions.Indirect);
mediaClip.EntryS = "MCD";
mediaClip.EntryP = new MediaPermissionsElement(annot);
mediaClip.EntryP.EntryTF = "TEMPACCESS";
mediaClip.EntryCT = contentType;
mediaClip.EntryD = fileSpec;

MediaRenditionElement rendition = new MediaRenditionElement(annot, CreationOptions.Indirect);
rendition.EntryS = "MR";
rendition.EntryC = mediaClip;

RenditionActionElement pageVisibleAction = new RenditionActionElement(annot, CreationOptions.Indirect);
pageVisibleAction.EntryS = "Rendition";
pageVisibleAction.EntryOP = 4;
pageVisibleAction.EntryAN = annot;
pageVisibleAction.EntryR = rendition;

annot.EntryAA = new AnnotationAdditionalActionsElement(annot);
annot.EntryAA.EntryPV = pageVisibleAction;
AnnotationElement = annot;

[VB]

Dim isUrl As Boolean = filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase)
If contentType Is Nothing Then
  Dim [end] As Integer = -1
  If isUrl Then
    [end] = filePathOrUrl.IndexOfAny(New Char() { "?"c, "#"c })
  End If
  If [end] < 0 Then
    [end] = filePathOrUrl.Length
  End If
  contentType = GetContentType(filePathOrUrl, [end])
  If contentType Is Nothing Then
    Throw New NotSupportedException("Movie content type is not supported.")
  End If
End If

Dim annot As New ScreenAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "Screen"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)

Dim fileSpec As New FullFileSpecificationElement(annot)
fileSpec.EntryType = "Filespec"
If isUrl Then
  fileSpec.EntryFS = "URL"
  fileSpec.EntryF = filePathOrUrl
Else
  Dim fileInfo As New FileInfo(filePathOrUrl)
  fileSpec.EntryF = fileInfo.Name
  fileSpec.EntryUF = fileInfo.Name
  fileSpec.EntryEF = New EmbeddedFileSetElement(annot)
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo)
End If

Dim mediaClip As New MediaClipDataElement(annot, CreationOptions.Indirect)
mediaClip.EntryS = "MCD"
mediaClip.EntryP = New MediaPermissionsElement(annot)
mediaClip.EntryP.EntryTF = "TEMPACCESS"
mediaClip.EntryCT = contentType
mediaClip.EntryD = fileSpec

Dim rendition As New MediaRenditionElement(annot, CreationOptions.Indirect)
rendition.EntryS = "MR"
rendition.EntryC = mediaClip

Dim pageVisibleAction As New RenditionActionElement(annot, CreationOptions.Indirect)
pageVisibleAction.EntryS = "Rendition"
pageVisibleAction.EntryOP = 4
pageVisibleAction.EntryAN = annot
pageVisibleAction.EntryR = rendition

annot.EntryAA = New AnnotationAdditionalActionsElement(annot)
annot.EntryAA.EntryPV = pageVisibleAction
AnnotationElement = annot


ZZ Elements ScreenAnnotationElement EntryT Property

EntryT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "T" entry of the screen annotation object.

Notes

Represents the "T" entry of the screen annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 187, page 407.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 190, page 494.


ZZ Elements ScreenAnnotationElement EntryMK Property

EntryMK Property

Type | Default Value | Read Only | Description
[C#] AppearanceCharacteristicsElement [Visual Basic] AppearanceCharacteristicsElement | null | No | Represents the "MK" entry of the screen annotation object.

Notes

Represents the "MK" entry of the screen annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an AppearanceCharacteristicsElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 187, page 407.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 190, page 494.


ZZ Elements ScreenAnnotationElement EntryA Property

EntryA Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "A" entry of the screen annotation object.

Notes

Represents the "A" entry of the screen annotation object.

It is an optional entry defined as part of the PDF 1.1 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 187, page 408.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 190, page 494.


ZZ Elements ScreenAnnotationElement EntryAA Property

EntryAA Property

Type | Default Value | Read Only | Description
[C#] AnnotationAdditionalActionsElement [Visual Basic] AnnotationAdditionalActionsElement | null | No | Represents the "AA" entry of the screen annotation object.

Notes

Represents the "AA" entry of the screen annotation object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains an AnnotationAdditionalActionsElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 187, page 408.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 190, page 494.


ZZ Elements SoundAnnotationElement

SoundAnnotationElement Class

This class represents the sound annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 185, page 407.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 188, page 493.

This class is always an indirect object because it inherits from MarkupAnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.MarkupAnnotationElement
            WebSupergoo.ABCpdf12.Elements.SoundAnnotationElement

Method | Description
SoundAnnotationElement | Create a new SoundAnnotationElement.
 | inherited methods...

Property | Description
EntrySound | Represents the "Sound" entry of the sound annotation object.
EntryName | Represents the "Name" entry of the sound annotation object.
 | inherited properties...


ZZ Elements SoundAnnotationElement Constructor Function

SoundAnnotationElement Function

Create a new SoundAnnotationElement.

Syntax

[C#]
SoundAnnotationElement()
SoundAnnotationElement(Atom atom, IndirectObject host)
SoundAnnotationElement(IndirectObject obj)
SoundAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
SoundAnnotationElement()
SoundAnnotationElement(atom As Atom, host As IndirectObject)
SoundAnnotationElement(obj As IndirectObject)
SoundAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SoundAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements SoundAnnotationElement EntrySound Property

EntrySound Property

Type | Default Value | Read Only | Description
[C#] SoundObjectStreamElement [Visual Basic] SoundObjectStreamElement | null | No | Represents the "Sound" entry of the sound annotation object.

Notes

Represents the "Sound" entry of the sound annotation object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a SoundObjectStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 185, page 407.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 188, page 493.


ZZ Elements SoundAnnotationElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Name" entry of the sound annotation object.

Notes

Represents the "Name" entry of the sound annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Speaker" if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 185, page 407.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 188, page 493.


ZZ Elements WidgetAnnotationElement

WidgetAnnotationElement Class

This class represents the widget annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 188, page 408.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 191, page 495.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39, page 39.

This class is always an indirect object because FieldElement.EntryKids requires it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.WidgetAnnotationElement

Method | Description
WidgetAnnotationElement | Create a new WidgetAnnotationElement.
 | inherited methods...

Property | Description
FieldElement | Any FieldElement associated with this Widget Annotation.
EntryH | Represents the "H" entry of the widget annotation object.
EntryMK | Represents the "MK" entry of the widget annotation object.
EntryA | Represents the "A" entry of the widget annotation object.
EntryAA | Represents the "AA" entry of the widget annotation object.
EntryBS | Represents the "BS" entry of the widget annotation object.
EntryParent | Represents the "Parent" entry of the widget annotation object.
EntryPMD | Represents the "PMD" entry of the widget annotation object.
 | inherited properties...


ZZ Elements WidgetAnnotationElement Constructor Function

WidgetAnnotationElement Function

Create a new WidgetAnnotationElement.

Syntax

[C#]
WidgetAnnotationElement()
WidgetAnnotationElement(Atom atom, IndirectObject host)
WidgetAnnotationElement(IndirectObject obj)
WidgetAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
WidgetAnnotationElement()
WidgetAnnotationElement(atom As Atom, host As IndirectObject)
WidgetAnnotationElement(obj As IndirectObject)
WidgetAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new WidgetAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1164 in the Annotations example project.

[C#]

WidgetAnnotationElement annot = new WidgetAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "Widget";
AnnotationElement = annot;

[VB]

Dim annot As New WidgetAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "Widget"
AnnotationElement = annot

This code snippet is taken from Annotations.cs line 1171 in the Annotations example project.

[C#]

WidgetAnnotationElement annot = new WidgetAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "Widget";
AnnotationElement = annot;

[VB]

Dim annot As New WidgetAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "Widget"
AnnotationElement = annot


ZZ Elements WidgetAnnotationElement FieldElement Property

FieldElement Property

Type | Default Value | Read Only | Description
[C#] FieldElement [Visual Basic] FieldElement | null | Yes | Any FieldElement associated with this Widget Annotation.

Notes

Any FieldElement associated with this Widget Annotation.


ZZ Elements WidgetAnnotationElement EntryH Property

EntryH Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "H" entry of the widget annotation object.

Notes

Represents the "H" entry of the widget annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "I" if no value has been provided.

This item may take one of the following valid values:.

  • N
  • I
  • O
  • P
  • T

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 188, page 408.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39, page 39.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 191, page 495.


ZZ Elements WidgetAnnotationElement EntryMK Property

EntryMK Property

Type | Default Value | Read Only | Description
[C#] AppearanceCharacteristicsElement [Visual Basic] AppearanceCharacteristicsElement | null | No | Represents the "MK" entry of the widget annotation object.

Notes

Represents the "MK" entry of the widget annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an AppearanceCharacteristicsElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 188, page 408.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39, page 39.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 191, page 495.


ZZ Elements WidgetAnnotationElement EntryA Property

EntryA Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "A" entry of the widget annotation object.

Notes

Represents the "A" entry of the widget annotation object.

It is an optional entry defined as part of the PDF 1.1 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 188, page 409.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39, page 39.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 191, page 495.


ZZ Elements WidgetAnnotationElement EntryAA Property

EntryAA Property

Type | Default Value | Read Only | Description
[C#] AnnotationAdditionalActionsElement [Visual Basic] AnnotationAdditionalActionsElement | null | No | Represents the "AA" entry of the widget annotation object.

Notes

Represents the "AA" entry of the widget annotation object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains an AnnotationAdditionalActionsElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 188, page 409.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39, page 39.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 191, page 495.


ZZ Elements WidgetAnnotationElement EntryBS Property

EntryBS Property

Type | Default Value | Read Only | Description
[C#] BorderStyleElement [Visual Basic] BorderStyleElement | null | No | Represents the "BS" entry of the widget annotation object.

Notes

Represents the "BS" entry of the widget annotation object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains a BorderStyleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 188, page 409.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39, page 39.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 191, page 496.


ZZ Elements WidgetAnnotationElement EntryParent Property

EntryParent Property

Type | Default Value | Read Only | Description
[C#] FieldElement [Visual Basic] FieldElement | null | No | Represents the "Parent" entry of the widget annotation object.

Notes

Represents the "Parent" entry of the widget annotation object.

It is defined as part of the PDF 1.0 specification.

It contains a FieldElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 188, page 409.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39, page 39.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 191, page 496.


ZZ Elements WidgetAnnotationElement EntryPMD Property

EntryPMD Property

Type | Default Value | Read Only | Description
[C#] PaperMetaDataGenerationParametersElement [Visual Basic] PaperMetaDataGenerationParametersElement | null | No | Represents the "PMD" entry of the widget annotation object.

Notes

Represents the "PMD" entry of the widget annotation object.

It is defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a PaperMetaDataGenerationParametersElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 188, page 408.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39, page 39.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 191, page 495.


ZZ Elements AppearanceCharacteristicsElement

AppearanceCharacteristicsElement Class

This class represents the appearance characteristics dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 189, page 409.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 192, page 496.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AppearanceCharacteristicsElement

Method | Description
AppearanceCharacteristicsElement | Create a new AppearanceCharacteristicsElement.
 | inherited methods...

Property | Description
EntryR | Represents the "R" entry of the appearance characteristics dictionary object.
EntryBC | Represents the "BC" entry of the appearance characteristics dictionary object.
EntryBG | Represents the "BG" entry of the appearance characteristics dictionary object.
EntryCA | Represents the "CA" entry of the appearance characteristics dictionary object.
EntryRC | Represents the "RC" entry of the appearance characteristics dictionary object.
EntryAC | Represents the "AC" entry of the appearance characteristics dictionary object.
EntryI | Represents the "I" entry of the appearance characteristics dictionary object.
EntryRI | Represents the "RI" entry of the appearance characteristics dictionary object.
EntryIX | Represents the "IX" entry of the appearance characteristics dictionary object.
EntryIF | Represents the "IF" entry of the appearance characteristics dictionary object.
EntryTP | Represents the "TP" entry of the appearance characteristics dictionary object.
 | inherited properties...


ZZ Elements AppearanceCharacteristicsElement Constructor Function

AppearanceCharacteristicsElement Function

Create a new AppearanceCharacteristicsElement.

Syntax

[C#]
AppearanceCharacteristicsElement()
AppearanceCharacteristicsElement(Atom atom, IndirectObject host)
AppearanceCharacteristicsElement(IndirectObject obj)
AppearanceCharacteristicsElement(Element relation, CreationOptions options)

[Visual Basic]
AppearanceCharacteristicsElement()
AppearanceCharacteristicsElement(atom As Atom, host As IndirectObject)
AppearanceCharacteristicsElement(obj As IndirectObject)
AppearanceCharacteristicsElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new AppearanceCharacteristicsElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1190 in the Annotations example project.

[C#]

WidgetAnnotationElement annot = WidgetElement;
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);
annot.EntryMK = new AppearanceCharacteristicsElement(annot);
annot.EntryMK.EntryBG = new double[] { 1 };
annot.EntryMK.EntryBC = new double[] { 0, 0, 0 };

[VB]

Dim annot As WidgetAnnotationElement = WidgetElement
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)
annot.EntryMK = New AppearanceCharacteristicsElement(annot)
annot.EntryMK.EntryBG = New Double() { 1 }
annot.EntryMK.EntryBC = New Double() { 0, 0, 0 }

This code snippet is taken from Annotations.cs line 1226 in the Annotations example project.

[C#]

WidgetAnnotationElement annot = WidgetElement;
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);
annot.EntryMK = new AppearanceCharacteristicsElement(annot);
annot.EntryMK.EntryBG = new double[] { 0.752930 };
annot.EntryMK.EntryCA = caption;

[VB]

Dim annot As WidgetAnnotationElement = WidgetElement
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)
annot.EntryMK = New AppearanceCharacteristicsElement(annot)
annot.EntryMK.EntryBG = New Double() { 0.752930 }
annot.EntryMK.EntryCA = caption

This code snippet is taken from Annotations.cs line 1246 in the Annotations example project.

[C#]

WidgetAnnotationElement annot = WidgetElement;
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);
DictElement<FormXObjectElement> appearance = new DictElement<FormXObjectElement>(annot);
appearance["Yes"] = Form.YesCheckBoxAppearance;
appearance["Off"] = Form.OffCheckBoxAppearance;
annot.EntryAP = new AppearanceElement(annot);
annot.EntryAP.EntryN = appearance;
annot.EntryMK = new AppearanceCharacteristicsElement(annot);
annot.EntryMK.EntryCA = Form.YesCheckBoxCharacter;
annot.EntryAS = selected ? "Yes" : "Off";

[VB]

Dim annot As WidgetAnnotationElement = WidgetElement
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)
Dim appearance As New DictElement(Of FormXObjectElement)(annot)
appearance("Yes") = Form.YesCheckBoxAppearance
appearance("Off") = Form.OffCheckBoxAppearance
annot.EntryAP = New AppearanceElement(annot)
annot.EntryAP.EntryN = appearance
annot.EntryMK = New AppearanceCharacteristicsElement(annot)
annot.EntryMK.EntryCA = Form.YesCheckBoxCharacter
annot.EntryAS = If(selected, "Yes", "Off")

This code snippet is taken from Annotations.cs line 1271 in the Annotations example project.

[C#]

WidgetAnnotationElement annot = WidgetElement;
annot.EntrySubtype = "Widget";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);
annot.EntryMK = new AppearanceCharacteristicsElement(annot);
annot.EntryMK.EntryBC = new double[] { 0 };
annot.EntryMK.EntryBG = new double[] { 1 };
annot.EntryAS = selected ? inName : "Off";
DictElement<FormXObjectElement> appearance = new DictElement<FormXObjectElement>(annot);
appearance[inName] = Form.YesRadioBtnAppearance;
appearance["Off"] = Form.OffRadioBtnAppearance;
annot.EntryAP = new AppearanceElement(annot);
annot.EntryAP.EntryN = appearance;

[VB]

Dim annot As WidgetAnnotationElement = WidgetElement
annot.EntrySubtype = "Widget"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)
annot.EntryMK = New AppearanceCharacteristicsElement(annot)
annot.EntryMK.EntryBC = New Double() { 0 }
annot.EntryMK.EntryBG = New Double() { 1 }
annot.EntryAS = If(selected, inName, "Off")
Dim appearance As New DictElement(Of FormXObjectElement)(annot)
appearance(inName) = Form.YesRadioBtnAppearance
appearance("Off") = Form.OffRadioBtnAppearance
annot.EntryAP = New AppearanceElement(annot)
annot.EntryAP.EntryN = appearance

This code snippet is taken from Test.cs line 92 in the Annotations example project.

[C#]

theDoc.Font = theDoc.AddFont("Helvetica");
theDoc.FontSize = 36;

EmbeddedFileTree fileTree = new EmbeddedFileTree(theDoc);
fileTree.EmbedFile("MyFile1", Server.MapPath("ABCpdf.swf"), "attachment without annotation");
theDoc.SetInfo(theDoc.Root, "/PageMode:Name", "UseAttachments");

// Create interactive form
InteractiveForm form = new InteractiveForm(theDoc);
theDoc.Pos.X = 40;
theDoc.Pos.Y = theDoc.MediaBox.Top - 40;
theDoc.AddText("Interactive Form annotations");

// Radio buttons
form.AddRadioButtonGroup(new string[2] { "40 610 80 650", "40 660 80 700" }, "RadioGroupField", 0);
theDoc.Pos.String = "100 696";
theDoc.AddText("RadioButton 1");
theDoc.Pos.String = "100 646";
theDoc.AddText("RadioButton 2");

// Text fields
FormField text = form.AddTextField("40 530 300 580", "TextField1", "Hello World!");
text.FieldElement.EntryDA = "/TimesRoman 36 Tf 0 0 1 rg";
text.Widget.WidgetElement.EntryMK = new AppearanceCharacteristicsElement(text.FieldElement);
text.Widget.WidgetElement.EntryMK.EntryBC = new double[] { 0, 0, 0 };
text.Widget.WidgetElement.EntryMK.EntryBG = new double[] { 220.0 / 255.0, 220.0 / 255.0, 220.0 / 255.0 };
text.FieldElement.EntryQ = 0; // Left alignment

text = form.AddTextField("40 460 300 510", "TextField2", "Text Field");
text.Widget.WidgetElement.EntryMK = new AppearanceCharacteristicsElement(text.FieldElement);
text.Widget.WidgetElement.EntryMK.EntryBC = new double[] { 0, 0, 0 };
text.FieldElement.EntryDA = "/TimesRoman 36 Tf 0 0 1 rg";
text.FieldElement.EntryQ = 0; // Left alignment
text.FieldElement.EntryFf |= (int)Field.FieldFlags.Password;

text = form.AddTextField("320 460 370 580", "TextField3", "Vertical");
text.Widget.WidgetElement.EntryMK = new AppearanceCharacteristicsElement(text.FieldElement);
text.Widget.WidgetElement.EntryMK.EntryBC = new double[] { 0, 0, 0 };
text.FieldElement.EntryDA = "/TimesRoman 36 Tf 0 0 0 rg";
text.Widget.WidgetElement.EntryMK.EntryR = 90; // Rotation

// Combobox field
FormField combo = form.AddChoiceField("ComboBox", "40 390 300 440", "ComboBoxField");
combo.FieldElement.EntryDA = "/TimesRoman 24 Tf 0 0 0 rg";
combo.SetOptions(new string[] { "ComboBox Item 1", "ComboBox Item 2", "ComboBox Item 3" }, null);

// Listbox field
FormField listbox = form.AddChoiceField("ListBox", "40 280 300 370", "ListBoxField");
listbox.FieldElement.EntryDA = "/TimesRoman 24 Tf 0 0 0 rg";
listbox.SetOptions(new string[] { "ListBox Item 1", "ListBox Item 2", "ListBox Item 3" }, null);

// Checkbox field
form.AddCheckbox("40 220 80 260", "CheckBoxField", true);
theDoc.Pos.String = "100 256";
theDoc.AddText("Check Box");

// Pushbutton field
FormField button = form.AddButton("40 160 200 200", "ButtonField", "Button");
button.Widget.WidgetElement.EntryMK = new AppearanceCharacteristicsElement(text.FieldElement);
button.Widget.WidgetElement.EntryMK.EntryBC = new double[] { 0, 0, 0 };
button.Widget.BorderStyle = "Beveled";

// Markup annotations
theDoc.Page = theDoc.AddPage();
theDoc.Pos.X = 40;
theDoc.Pos.Y = theDoc.MediaBox.Top - 40;
theDoc.AddText("Markup annotations");

SquareAnnotation square = new SquareAnnotation(form, "40 560 300 670", "255 0 0", "0 0 255");
square.BorderWidth = 8;

LineAnnotation line = new LineAnnotation(form, "100 565 220 665", "255 0 0");
line.BorderWidth = 12;
line.RichTextCaption = "<span style= \"font-size:36pt; color:#FF0000\">Line</span>";

theDoc.FontSize = 24;
theDoc.Pos.String = "400 670";
int id = theDoc.AddText("Underline");
TextMarkupAnnotation markup = new TextMarkupAnnotation(form, id, "Underline", "0 255 0");

theDoc.Pos.String = "400 640";
id = theDoc.AddText("Highlight");
markup = new TextMarkupAnnotation(form, id, "Highlight", "255 255 0");

theDoc.Pos.String = "400 610";
id = theDoc.AddText("StrikeOut");
markup = new TextMarkupAnnotation(form, id, "StrikeOut", "255 0 0");

theDoc.Pos.String = "400 580";
id = theDoc.AddText("Squiggly");
markup = new TextMarkupAnnotation(form, id, "Squiggly", "0 0 255");

CircleAnnotation circle = new CircleAnnotation(form, "80 320 285 525", "255 255 0", "255 128 0");
circle.BorderWidth = 20;
circle.BorderStyle = "Dashed";
circle.BorderDash = "[3 2]";

LineAnnotation arrowLine = new LineAnnotation(form, "385 330 540 520", "255 0 0");
arrowLine.LineEndingsStyle = "ClosedArrow ClosedArrow";
arrowLine.BorderWidth = 6;
arrowLine.FillColor = "255 0 0";

PolygonAnnotation polygon = new PolygonAnnotation(form, "100 70 50 120 50 220 100 270 200 270 250 220 250 120 200 70", "255 0 0", "0 255 0");
PolygonAnnotation cloudyPolygon = new PolygonAnnotation(form, "400 70 350 120 350 220 400 270 500 270 550 220 550 120 500 70", "255 0 0", "64 85 255");
cloudyPolygon.CloudyEffect = 1;

// Movie annotations
// WMV is courtesy of NASA - http://www.nasa.gov/wmv/30873main_cardiovascular_300.wmv
theDoc.Page = theDoc.AddPage();
theDoc.Pos.X = 40;
theDoc.Pos.Y = theDoc.MediaBox.Top - 40;
theDoc.AddText("Multimedia features");

theDoc.FontSize = 24;

theDoc.Pos.String = "40 690";
theDoc.AddText("Flash movie:");
MovieAnnotation movie1 = new MovieAnnotation(form, "40 420 300 650", Server.MapPath("ABCpdf.swf"));

theDoc.Pos.String = "312 690";
theDoc.AddText("Flash rich media:");
RichMediaAnnotation media1 = new RichMediaAnnotation(form, "312 420 572 650", Server.MapPath("ABCpdf.swf"), "Flash");

theDoc.Pos.String = "40 400";
theDoc.AddText("Video File:");
MovieAnnotation movie2 = new MovieAnnotation(form, "80 40 520 360", Server.MapPath("video.wmv"));

theDoc.Page = theDoc.AddPage();
theDoc.FontSize = 36;
theDoc.Pos.X = 40;
theDoc.Pos.Y = theDoc.MediaBox.Top - 40;
theDoc.AddText("Other types of annotations");

// Sticky note annotation
theDoc.FontSize = 24;
theDoc.Pos.String = "40 680";
theDoc.AddText("Text annotation");
TextAnnotation textAnnotation = new TextAnnotation(form, "340 660 360 680", "550 650 600 750", "6 sets of 13 pages. Trim to 5X7.");

// File attachment annotation
theDoc.Pos.String = "40 640";
theDoc.AddText("File Attachment annotation");
FileAttachmentAnnotation fileAttachment = new FileAttachmentAnnotation(form, "340 620 360 640", Server.MapPath("video.WMV"));

// StampAnnotations
theDoc.Pos.String = "40 600";
theDoc.AddText("Stamp annotations");
StampAnnotation stamp1 = new StampAnnotation(form, "340 560 540 600", "DRAFT", "0 0 128");
StampAnnotation stamp2 = new StampAnnotation(form, "340 505 540 545", "FINAL", " 0 128 0");
StampAnnotation stamp3 = new StampAnnotation(form, "340 450 540 490", "NOT APPROVED", "128 0 0");

theDoc.PageNumber = 1;

// Signature fields
// Add signature fields last so that entire document is signed

// Note: For maximum portability, it is recommended
// that you create all the signature fields before
// signing any one of them (as is demonstrated below).
//
// The reason is that adding a signature field
// changes the document. Although this is legal, not all
// versions of Acrobat are happy with all types of updates.
// As such, they may report existing valid signatures to be
// invalid.
//
// In the past, the "SigFlags" entry allowed contents to be
// appended to signed documents using incremental updates.
// However, the entry's treatment seems to have changed in
// Adobe Reader X. For example, Adobe Reader X will
// report the signatures in `SignedThenAppended.pdf` to
// be invalid whereas Acrobat 8 will report
// "signatures are valid, but document has been changed
// since it was signed." This is a document created using
// Acrobat Professional 8.

// We add the first signature field unsigned
form.AddSignature("40 100 240 150", "Signature1");

// And the second signature field unsigned (to be signed
// below)
form.AddSignature("340 100 540 150", "Signature2");
X509Certificate2 userCert = PromptUserForCert();
if (userCert != null) {
  Signature sig2 = (Signature)theDoc.Form.Fields["Signature2"];
  sig2.Signer = DisplayNameFromCert(userCert);

  // We need not call sig2.Commit() as sig2 is not signed yet.
  //sig2.Commit();
}

// We can add the last signature field signed.
// Note: Certifying the document makes all but the last signed
// signature invalid, especially after clicking on the signatures.
form.Certify = true;
form.ShowSignatureValidity = true;
form.AddSignature("340 160 540 220", "Signature3",
  Server.MapPath("JohnSmith.pfx"), "1234", "I am the author",
  "New York", "Digitally signed by {0}\nReason: {2}\n" +
  "Location: {3}\nDate: {1:yyyy.MM.dd}", false);
form.Certify = false;

// Go back and sign the second signature placeholder
// if interactive user has supplied the signing key
if (userCert != null) {
  // We are about to sign a signature outside the
  // InteractiveForm class. Commit the previous signature.
  form.CommitSignature();

  // We need to obtain the field afresh because
  // Signature.Commit invalidates all IndirectObject's
  Signature sig2 = (Signature)theDoc.Form.Fields["Signature2"];
  sig2.Sign(userCert, true);
  // This is the last signature so we need not commit it
  // using sig2.Commit();
}

theDoc.SaveOptions.Linearize = false;
theDoc.SaveOptions.Remap = false;
theDoc.Save(outputFile);

[VB]

theDoc.Font = theDoc.AddFont("Helvetica")
theDoc.FontSize = 36

Dim fileTree As New EmbeddedFileTree(theDoc)
fileTree.EmbedFile("MyFile1", Server.MapPath("ABCpdf.swf"), "attachment without annotation")
theDoc.SetInfo(theDoc.Root, "/PageMode:Name", "UseAttachments")

' Create interactive form
Dim form As New InteractiveForm(theDoc)
theDoc.Pos.X = 40
theDoc.Pos.Y = theDoc.MediaBox.Top - 40
theDoc.AddText("Interactive Form annotations")

' Radio buttons
form.AddRadioButtonGroup(New String(1) { "40 610 80 650", "40 660 80 700" }, "RadioGroupField", 0)
theDoc.Pos.String = "100 696"
theDoc.AddText("RadioButton 1")
theDoc.Pos.String = "100 646"
theDoc.AddText("RadioButton 2")

' Text fields
Dim text As FormField = form.AddTextField("40 530 300 580", "TextField1", "Hello World!")
text.FieldElement.EntryDA = "/TimesRoman 36 Tf 0 0 1 rg"
text.Widget.WidgetElement.EntryMK = New AppearanceCharacteristicsElement(text.FieldElement)
text.Widget.WidgetElement.EntryMK.EntryBC = New Double() { 0, 0, 0 }
text.Widget.WidgetElement.EntryMK.EntryBG = New Double() { 220.0 / 255.0, 220.0 / 255.0, 220.0 / 255.0 }
text.FieldElement.EntryQ = 0 ' Left alignment

text = form.AddTextField("40 460 300 510", "TextField2", "Text Field")
text.Widget.WidgetElement.EntryMK = New AppearanceCharacteristicsElement(text.FieldElement)
text.Widget.WidgetElement.EntryMK.EntryBC = New Double() { 0, 0, 0 }
text.FieldElement.EntryDA = "/TimesRoman 36 Tf 0 0 1 rg"
text.FieldElement.EntryQ = 0 ' Left alignment
text.FieldElement.EntryFf = text.FieldElement.EntryFf Or CInt(Math.Truncate(Field.FieldFlags.Password))

text = form.AddTextField("320 460 370 580", "TextField3", "Vertical")
text.Widget.WidgetElement.EntryMK = New AppearanceCharacteristicsElement(text.FieldElement)
text.Widget.WidgetElement.EntryMK.EntryBC = New Double() { 0, 0, 0 }
text.FieldElement.EntryDA = "/TimesRoman 36 Tf 0 0 0 rg"
text.Widget.WidgetElement.EntryMK.EntryR = 90 ' Rotation

' Combobox field
Dim combo As FormField = form.AddChoiceField("ComboBox", "40 390 300 440", "ComboBoxField")
combo.FieldElement.EntryDA = "/TimesRoman 24 Tf 0 0 0 rg"
combo.SetOptions(New String() { "ComboBox Item 1", "ComboBox Item 2", "ComboBox Item 3" }, Nothing)

' Listbox field
Dim listbox As FormField = form.AddChoiceField("ListBox", "40 280 300 370", "ListBoxField")
listbox.FieldElement.EntryDA = "/TimesRoman 24 Tf 0 0 0 rg"
listbox.SetOptions(New String() { "ListBox Item 1", "ListBox Item 2", "ListBox Item 3" }, Nothing)

' Checkbox field
form.AddCheckbox("40 220 80 260", "CheckBoxField", True)
theDoc.Pos.String = "100 256"
theDoc.AddText("Check Box")

' Pushbutton field
Dim button As FormField = form.AddButton("40 160 200 200", "ButtonField", "Button")
button.Widget.WidgetElement.EntryMK = New AppearanceCharacteristicsElement(text.FieldElement)
button.Widget.WidgetElement.EntryMK.EntryBC = New Double() { 0, 0, 0 }
button.Widget.BorderStyle = "Beveled"

' Markup annotations
theDoc.Page = theDoc.AddPage()
theDoc.Pos.X = 40
theDoc.Pos.Y = theDoc.MediaBox.Top - 40
theDoc.AddText("Markup annotations")

Dim square As New SquareAnnotation(form, "40 560 300 670", "255 0 0", "0 0 255")
square.BorderWidth = 8

Dim line As New LineAnnotation(form, "100 565 220 665", "255 0 0")
line.BorderWidth = 12
line.RichTextCaption = "<span style= ""font-size:36pt; color:#FF0000"">Line</span>"

theDoc.FontSize = 24
theDoc.Pos.String = "400 670"
Dim id As Integer = theDoc.AddText("Underline")
Dim markup As New TextMarkupAnnotation(form, id, "Underline", "0 255 0")

theDoc.Pos.String = "400 640"
id = theDoc.AddText("Highlight")
markup = New TextMarkupAnnotation(form, id, "Highlight", "255 255 0")

theDoc.Pos.String = "400 610"
id = theDoc.AddText("StrikeOut")
markup = New TextMarkupAnnotation(form, id, "StrikeOut", "255 0 0")

theDoc.Pos.String = "400 580"
id = theDoc.AddText("Squiggly")
markup = New TextMarkupAnnotation(form, id, "Squiggly", "0 0 255")

Dim circle As New CircleAnnotation(form, "80 320 285 525", "255 255 0", "255 128 0")
circle.BorderWidth = 20
circle.BorderStyle = "Dashed"
circle.BorderDash = "[3 2]"

Dim arrowLine As New LineAnnotation(form, "385 330 540 520", "255 0 0")
arrowLine.LineEndingsStyle = "ClosedArrow ClosedArrow"
arrowLine.BorderWidth = 6
arrowLine.FillColor = "255 0 0"

Dim polygon As New PolygonAnnotation(form, "100 70 50 120 50 220 100 270 200 270 250 220 250 120 200 70", "255 0 0", "0 255 0")
Dim cloudyPolygon As New PolygonAnnotation(form, "400 70 350 120 350 220 400 270 500 270 550 220 550 120 500 70", "255 0 0", "64 85 255")
cloudyPolygon.CloudyEffect = 1

' Movie annotations
' WMV is courtesy of NASA - http://www.nasa.gov/wmv/30873main_cardiovascular_300.wmv
theDoc.Page = theDoc.AddPage()
theDoc.Pos.X = 40
theDoc.Pos.Y = theDoc.MediaBox.Top - 40
theDoc.AddText("Multimedia features")

theDoc.FontSize = 24

theDoc.Pos.String = "40 690"
theDoc.AddText("Flash movie:")
Dim movie1 As New MovieAnnotation(form, "40 420 300 650", Server.MapPath("ABCpdf.swf"))

theDoc.Pos.String = "312 690"
theDoc.AddText("Flash rich media:")
Dim media1 As New RichMediaAnnotation(form, "312 420 572 650", Server.MapPath("ABCpdf.swf"), "Flash")

theDoc.Pos.String = "40 400"
theDoc.AddText("Video File:")
Dim movie2 As New MovieAnnotation(form, "80 40 520 360", Server.MapPath("video.wmv"))

theDoc.Page = theDoc.AddPage()
theDoc.FontSize = 36
theDoc.Pos.X = 40
theDoc.Pos.Y = theDoc.MediaBox.Top - 40
theDoc.AddText("Other types of annotations")

' Sticky note annotation
theDoc.FontSize = 24
theDoc.Pos.String = "40 680"
theDoc.AddText("Text annotation")
Dim textAnnotation As New TextAnnotation(form, "340 660 360 680", "550 650 600 750", "6 sets of 13 pages. Trim to 5X7.")

' File attachment annotation
theDoc.Pos.String = "40 640"
theDoc.AddText("File Attachment annotation")
Dim fileAttachment As New FileAttachmentAnnotation(form, "340 620 360 640", Server.MapPath("video.WMV"))

' StampAnnotations
theDoc.Pos.String = "40 600"
theDoc.AddText("Stamp annotations")
Dim stamp1 As New StampAnnotation(form, "340 560 540 600", "DRAFT", "0 0 128")
Dim stamp2 As New StampAnnotation(form, "340 505 540 545", "FINAL", " 0 128 0")
Dim stamp3 As New StampAnnotation(form, "340 450 540 490", "NOT APPROVED", "128 0 0")

theDoc.PageNumber = 1

' Signature fields
' Add signature fields last so that entire document is signed

' Note: For maximum portability, it is recommended
' that you create all the signature fields before
' signing any one of them (as is demonstrated below).
'
' The reason is that adding a signature field
' changes the document. Although this is legal, not all
' versions of Acrobat are happy with all types of updates.
' As such, they may report existing valid signatures to be
' invalid.
'
' In the past, the "SigFlags" entry allowed contents to be
' appended to signed documents using incremental updates.
' However, the entry's treatment seems to have changed in
' Adobe Reader X. For example, Adobe Reader X will
' report the signatures in `SignedThenAppended.pdf` to
' be invalid whereas Acrobat 8 will report
' "signatures are valid, but document has been changed
' since it was signed." This is a document created using
' Acrobat Professional 8.

' We add the first signature field unsigned
form.AddSignature("40 100 240 150", "Signature1")

' And the second signature field unsigned (to be signed
' below)
form.AddSignature("340 100 540 150", "Signature2")
Dim userCert As X509Certificate2 = PromptUserForCert()
If userCert IsNot Nothing Then
  Dim sig2 As Signature = CType(theDoc.Form.Fields("Signature2"), Signature)
  sig2.Signer = DisplayNameFromCert(userCert)

  ' We need not call sig2.Commit() as sig2 is not signed yet.
  'sig2.Commit();
End If

' We can add the last signature field signed.
' Note: Certifying the document makes all but the last signed
' signature invalid, especially after clicking on the signatures.
form.Certify = True
form.ShowSignatureValidity = True
form.AddSignature("340 160 540 220", "Signature3", Server.MapPath("JohnSmith.pfx"), "1234", "I am the author", "New York", "Digitally signed by {0}" & vbLf & "Reason: {2}" & vbLf & "Location: {3}" & vbLf & "Date: {1:yyyy.MM.dd}", False)
form.Certify = False

' Go back and sign the second signature placeholder
' if interactive user has supplied the signing key
If userCert IsNot Nothing Then
  ' We are about to sign a signature outside the
  ' InteractiveForm class. Commit the previous signature.
  form.CommitSignature()

  ' We need to obtain the field afresh because
  ' Signature.Commit invalidates all IndirectObject's
  Dim sig2 As Signature = CType(theDoc.Form.Fields("Signature2"), Signature)
  sig2.Sign(userCert, True)
  ' This is the last signature so we need not commit it
  ' using sig2.Commit();
End If

theDoc.SaveOptions.Linearize = False
theDoc.SaveOptions.Remap = False
theDoc.Save(outputFile)

This code snippet is taken from Test.cs line 328 in the Annotations example project.

[C#]

theDoc.Read(inputFile);

theDoc.Font = theDoc.AddFont("Helvetica");
theDoc.FontSize = 36;

// Create interactive form
InteractiveForm form = new InteractiveForm(theDoc);

// Add Radio buttons
form.AddRadioButtonGroup(new string[2] { "40 610 80 650", "40 660 80 700" }, "RadioGroupField", 0);
theDoc.Pos.String = "100 696";
theDoc.AddText("RadioButton 1");
theDoc.Pos.String = "100 646";
theDoc.AddText("RadioButton 2");

// Fields cannot have the same name. If we are going to add duplicate field name then later
// we will need to rationalize the document structure so that the two fields will synchronize.
string textFieldName = "TextField1";
bool fieldAlreadyExists = theDoc.Form[textFieldName] != null;

// Add Text field
FormField text = form.AddTextField("40 530 300 580", textFieldName, "Hello World!");
text.FieldElement.EntryDA = "/TimesRoman 36 Tf 0 0 1 rg";
text.Widget.WidgetElement.EntryMK = new AppearanceCharacteristicsElement(text.FieldElement);
text.Widget.WidgetElement.EntryMK.EntryBC = new double[] { 0, 0, 0 };
text.Widget.WidgetElement.EntryMK.EntryBG = new double[] { 220.0 / 255.0, 220.0 / 255.0, 220.0 / 255.0 };
text.FieldElement.EntryQ = 0; // Left alignment

// Here we need rationalize if necessary
if (fieldAlreadyExists)
  form.MakeFieldIntoGroup(text, true);

// Add Synchronized Text Fields
List<WidgetAnnotation> kids = new List<WidgetAnnotation>();
kids.Add(form.AddTextField("40 230 300 280", null, null).Widget);
kids.Add(form.AddTextField("40 170 300 220", null, null).Widget);
FormField textGroup = form.AddGroupField(kids, "Group Field", "Synchronized");

// make sure form is up to date
theDoc.Form.Refresh();

// Delete Pre-Existing Fields (ones that appear to relate to text)
bool fieldsDeleted = false;
string[] names = theDoc.Form.GetFieldNames();
foreach (string name in names) {
  if (name.Contains("Text")) {
    Field field = theDoc.Form[name];
    form.DeleteField(field);
    fieldsDeleted = true;
  }
}
if (fieldsDeleted)
  theDoc.Form.Refresh();

// Move Pre-Existing Fields (ones that appear to relate to names)
foreach (string name in names) {
  if (name.Contains("Name")) {
    Field field = theDoc.Form[name];
    List<Annotation> annots = form.GetAnnotations(field);
    foreach (Annotation annot in annots) {
      XRect rect = annot.Rect;
      rect.Move(0, -200); // move down
      rect.Magnify(2, 2); // amd make bigger
      annot.Rect = rect;
    }
  }
}

EBUG
// these options make PDF files more diff-able
theDoc.SaveOptions.Linearize = false;
theDoc.SaveOptions.Remap = false;
f
theDoc.Save(outputFile);

[VB]

theDoc.Read(inputFile)

theDoc.Font = theDoc.AddFont("Helvetica")
theDoc.FontSize = 36

' Create interactive form
Dim form As New InteractiveForm(theDoc)

' Add Radio buttons
form.AddRadioButtonGroup(New String(1) { "40 610 80 650", "40 660 80 700" }, "RadioGroupField", 0)
theDoc.Pos.String = "100 696"
theDoc.AddText("RadioButton 1")
theDoc.Pos.String = "100 646"
theDoc.AddText("RadioButton 2")

' Fields cannot have the same name. If we are going to add duplicate field name then later
' we will need to rationalize the document structure so that the two fields will synchronize.
Dim textFieldName As String = "TextField1"
Dim fieldAlreadyExists As Boolean = theDoc.Form(textFieldName) IsNot Nothing

' Add Text field
Dim text As FormField = form.AddTextField("40 530 300 580", textFieldName, "Hello World!")
text.FieldElement.EntryDA = "/TimesRoman 36 Tf 0 0 1 rg"
text.Widget.WidgetElement.EntryMK = New AppearanceCharacteristicsElement(text.FieldElement)
text.Widget.WidgetElement.EntryMK.EntryBC = New Double() { 0, 0, 0 }
text.Widget.WidgetElement.EntryMK.EntryBG = New Double() { 220.0 / 255.0, 220.0 / 255.0, 220.0 / 255.0 }
text.FieldElement.EntryQ = 0 ' Left alignment

' Here we need rationalize if necessary
If fieldAlreadyExists Then
  form.MakeFieldIntoGroup(text, True)
End If

' Add Synchronized Text Fields
Dim kids As New List(Of WidgetAnnotation)()
kids.Add(form.AddTextField("40 230 300 280", Nothing, Nothing).Widget)
kids.Add(form.AddTextField("40 170 300 220", Nothing, Nothing).Widget)
Dim textGroup As FormField = form.AddGroupField(kids, "Group Field", "Synchronized")

' make sure form is up to date
theDoc.Form.Refresh()

' Delete Pre-Existing Fields (ones that appear to relate to text)
Dim fieldsDeleted As Boolean = False
Dim names() As String = theDoc.Form.GetFieldNames()
For Each name As String In names
  If name.Contains("Text") Then
    Dim field As Field = theDoc.Form(name)
    form.DeleteField(field)
    fieldsDeleted = True
  End If
Next name
If fieldsDeleted Then
  theDoc.Form.Refresh()
End If

' Move Pre-Existing Fields (ones that appear to relate to names)
For Each name As String In names
  If name.Contains("Name") Then
    Dim field As Field = theDoc.Form(name)
    Dim annots As List(Of Annotation) = form.GetAnnotations(field)
    For Each annot As Annotation In annots
      Dim rect As XRect = annot.Rect
      rect.Move(0, -200) ' move down
      rect.Magnify(2, 2) ' amd make bigger
      annot.Rect = rect
    Next annot
  End If
Next name

EBUG theDoc.SaveOptions.Linearize = False
' these options make PDF files more diff-able
theDoc.SaveOptions.Remap = False
f theDoc.Save(outputFile)


ZZ Elements AppearanceCharacteristicsElement EntryR Property

EntryR Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "R" entry of the appearance characteristics dictionary object.

Notes

Represents the "R" entry of the appearance characteristics dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 189, page 409.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 192, page 496.


ZZ Elements AppearanceCharacteristicsElement EntryBC Property

EntryBC Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "BC" entry of the appearance characteristics dictionary object.

Notes

Represents the "BC" entry of the appearance characteristics dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 189, page 409.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 192, page 496.


ZZ Elements AppearanceCharacteristicsElement EntryBG Property

EntryBG Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "BG" entry of the appearance characteristics dictionary object.

Notes

Represents the "BG" entry of the appearance characteristics dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 189, page 409.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 192, page 496.


ZZ Elements AppearanceCharacteristicsElement EntryCA Property

EntryCA Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "CA" entry of the appearance characteristics dictionary object.

Notes

Represents the "CA" entry of the appearance characteristics dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 189, page 409.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 192, page 496.


ZZ Elements AppearanceCharacteristicsElement EntryRC Property

EntryRC Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "RC" entry of the appearance characteristics dictionary object.

Notes

Represents the "RC" entry of the appearance characteristics dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 189, page 409.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 192, page 496.


ZZ Elements AppearanceCharacteristicsElement EntryAC Property

EntryAC Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "AC" entry of the appearance characteristics dictionary object.

Notes

Represents the "AC" entry of the appearance characteristics dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 189, page 409.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 192, page 496.


ZZ Elements AppearanceCharacteristicsElement EntryI Property

EntryI Property

Type | Default Value | Read Only | Description
[C#] FormXObjectElement [Visual Basic] FormXObjectElement | null | No | Represents the "I" entry of the appearance characteristics dictionary object.

Notes

Represents the "I" entry of the appearance characteristics dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a FormXObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 189, page 410.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 192, page 497.


ZZ Elements AppearanceCharacteristicsElement EntryRI Property

EntryRI Property

Type | Default Value | Read Only | Description
[C#] FormXObjectElement [Visual Basic] FormXObjectElement | null | No | Represents the "RI" entry of the appearance characteristics dictionary object.

Notes

Represents the "RI" entry of the appearance characteristics dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a FormXObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 189, page 410.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 192, page 497.


ZZ Elements AppearanceCharacteristicsElement EntryIX Property

EntryIX Property

Type | Default Value | Read Only | Description
[C#] FormXObjectElement [Visual Basic] FormXObjectElement | null | No | Represents the "IX" entry of the appearance characteristics dictionary object.

Notes

Represents the "IX" entry of the appearance characteristics dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a FormXObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 189, page 410.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 192, page 497.


ZZ Elements AppearanceCharacteristicsElement EntryIF Property

EntryIF Property

Type | Default Value | Read Only | Description
[C#] IconFitElement [Visual Basic] IconFitElement | null | No | Represents the "IF" entry of the appearance characteristics dictionary object.

Notes

Represents the "IF" entry of the appearance characteristics dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an IconFitElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 189, page 410.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 192, page 497.


ZZ Elements AppearanceCharacteristicsElement EntryTP Property

EntryTP Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "TP" entry of the appearance characteristics dictionary object.

Notes

Represents the "TP" entry of the appearance characteristics dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 189, page 410.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 192, page 497.


ZZ Elements FixedPrintElement

FixedPrintElement Class

This class represents the fixed print dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 191, page 411.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 194, page 498.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FixedPrintElement

Method | Description
FixedPrintElement | Create a new FixedPrintElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the fixed print dictionary object.
EntryMatrix | Represents the "Matrix" entry of the fixed print dictionary object.
EntryH | Represents the "H" entry of the fixed print dictionary object.
EntryV | Represents the "V" entry of the fixed print dictionary object.
 | inherited properties...


ZZ Elements FixedPrintElement Constructor Function

FixedPrintElement Function

Create a new FixedPrintElement.

Syntax

[C#]
FixedPrintElement()
FixedPrintElement(Atom atom, IndirectObject host)
FixedPrintElement(IndirectObject obj)
FixedPrintElement(Element relation, CreationOptions options)

[Visual Basic]
FixedPrintElement()
FixedPrintElement(atom As Atom, host As IndirectObject)
FixedPrintElement(obj As IndirectObject)
FixedPrintElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FixedPrintElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FixedPrintElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the fixed print dictionary object.

Notes

Represents the "Type" entry of the fixed print dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "FixedPrint".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 191, page 411.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 194, page 498.


ZZ Elements FixedPrintElement EntryMatrix Property

EntryMatrix Property

Type | Default Value | Read Only | Description
[C#] MatrixElement [Visual Basic] MatrixElement | null | No | Represents the "Matrix" entry of the fixed print dictionary object.

Notes

Represents the "Matrix" entry of the fixed print dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a MatrixElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 191, page 411.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 194, page 498.


ZZ Elements FixedPrintElement EntryH Property

EntryH Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "H" entry of the fixed print dictionary object.

Notes

Represents the "H" entry of the fixed print dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 191, page 411.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 194, page 498.


ZZ Elements FixedPrintElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "V" entry of the fixed print dictionary object.

Notes

Represents the "V" entry of the fixed print dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 191, page 411.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 194, page 499.


ZZ Elements WatermarkAnnotationElement

WatermarkAnnotationElement Class

This class represents the watermark annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 190, page 411.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 193, page 498.

This class is always an indirect object because it inherits from AnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.WatermarkAnnotationElement

Method | Description
WatermarkAnnotationElement | Create a new WatermarkAnnotationElement.
 | inherited methods...

Property | Description
EntryFixedPrint | Represents the "FixedPrint" entry of the watermark annotation object.
 | inherited properties...


ZZ Elements WatermarkAnnotationElement Constructor Function

WatermarkAnnotationElement Function

Create a new WatermarkAnnotationElement.

Syntax

[C#]
WatermarkAnnotationElement()
WatermarkAnnotationElement(Atom atom, IndirectObject host)
WatermarkAnnotationElement(IndirectObject obj)
WatermarkAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
WatermarkAnnotationElement()
WatermarkAnnotationElement(atom As Atom, host As IndirectObject)
WatermarkAnnotationElement(obj As IndirectObject)
WatermarkAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new WatermarkAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements WatermarkAnnotationElement EntryFixedPrint Property

EntryFixedPrint Property

Type | Default Value | Read Only | Description
[C#] FixedPrintElement [Visual Basic] FixedPrintElement | null | No | Represents the "FixedPrint" entry of the watermark annotation object.

Notes

Represents the "FixedPrint" entry of the watermark annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a FixedPrintElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 190, page 411.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 193, page 498.


ZZ Elements RedactionAnnotationElement

RedactionAnnotationElement Class

This class represents the redaction annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 192, page 413.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 195, page 500.

This class is always an indirect object because it inherits from AnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.MarkupAnnotationElement
            WebSupergoo.ABCpdf12.Elements.RedactionAnnotationElement

Method | Description
RedactionAnnotationElement | Create a new RedactionAnnotationElement.
 | inherited methods...

Property | Description
EntryQuadPoints | Represents the "QuadPoints" entry of the redaction annotation object.
EntryIC | Represents the "IC" entry of the redaction annotation object.
EntryRO | Represents the "RO" entry of the redaction annotation object.
EntryOverlayText | Represents the "OverlayText" entry of the redaction annotation object.
EntryRepeat | Represents the "Repeat" entry of the redaction annotation object.
EntryDA | Represents the "DA" entry of the redaction annotation object.
EntryQ | Represents the "Q" entry of the redaction annotation object.
 | inherited properties...


ZZ Elements RedactionAnnotationElement Constructor Function

RedactionAnnotationElement Function

Create a new RedactionAnnotationElement.

Syntax

[C#]
RedactionAnnotationElement()
RedactionAnnotationElement(Atom atom, IndirectObject host)
RedactionAnnotationElement(IndirectObject obj)
RedactionAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
RedactionAnnotationElement()
RedactionAnnotationElement(atom As Atom, host As IndirectObject)
RedactionAnnotationElement(obj As IndirectObject)
RedactionAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RedactionAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements RedactionAnnotationElement EntryQuadPoints Property

EntryQuadPoints Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "QuadPoints" entry of the redaction annotation object.

Notes

Represents the "QuadPoints" entry of the redaction annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 192, page 413.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 195, page 501.


ZZ Elements RedactionAnnotationElement EntryIC Property

EntryIC Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "IC" entry of the redaction annotation object.

Notes

Represents the "IC" entry of the redaction annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 192, page 413.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 195, page 501.


ZZ Elements RedactionAnnotationElement EntryRO Property

EntryRO Property

Type | Default Value | Read Only | Description
[C#] FormXObjectElement [Visual Basic] FormXObjectElement | null | No | Represents the "RO" entry of the redaction annotation object.

Notes

Represents the "RO" entry of the redaction annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a FormXObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 192, page 413.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 195, page 501.


ZZ Elements RedactionAnnotationElement EntryOverlayText Property

EntryOverlayText Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "OverlayText" entry of the redaction annotation object.

Notes

Represents the "OverlayText" entry of the redaction annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 192, page 413.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 195, page 501.


ZZ Elements RedactionAnnotationElement EntryRepeat Property

EntryRepeat Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "Repeat" entry of the redaction annotation object.

Notes

Represents the "Repeat" entry of the redaction annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 192, page 413.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 195, page 501.


ZZ Elements RedactionAnnotationElement EntryDA Property

EntryDA Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "DA" entry of the redaction annotation object.

Notes

Represents the "DA" entry of the redaction annotation object.

It is defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 192, page 413.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 195, page 501.


ZZ Elements RedactionAnnotationElement EntryQ Property

EntryQ Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Q" entry of the redaction annotation object.

Notes

Represents the "Q" entry of the redaction annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

It should have a minimum value of 0 and a maximum of 2.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 192, page 414.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 195, page 501.


ZZ Elements ActionElement

ActionElement Class

This class represents the action dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 193, page 414.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 196, page 502.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.DocumentPartGoToActionElement
         WebSupergoo.ABCpdf12.Elements.EmbeddedGoToActionElement
         WebSupergoo.ABCpdf12.Elements.GoTo3DViewActionElement
         WebSupergoo.ABCpdf12.Elements.GoToActionElement
         WebSupergoo.ABCpdf12.Elements.HideActionElement
         WebSupergoo.ABCpdf12.Elements.ImportDataActionElement
         WebSupergoo.ABCpdf12.Elements.JavaScriptActionElement
         WebSupergoo.ABCpdf12.Elements.LaunchActionElement
         WebSupergoo.ABCpdf12.Elements.MovieActionElement
         WebSupergoo.ABCpdf12.Elements.NamedActionElement
         WebSupergoo.ABCpdf12.Elements.RemoteGoToActionElement
         WebSupergoo.ABCpdf12.Elements.RenditionActionElement
         WebSupergoo.ABCpdf12.Elements.ResetFormActionElement
         WebSupergoo.ABCpdf12.Elements.RichMediaExecuteActionElement
         WebSupergoo.ABCpdf12.Elements.SetOcgStateActionElement
         WebSupergoo.ABCpdf12.Elements.SoundActionElement
         WebSupergoo.ABCpdf12.Elements.SubmitFormActionElement
         WebSupergoo.ABCpdf12.Elements.ThreadActionElement
         WebSupergoo.ABCpdf12.Elements.TransitionActionElement
         WebSupergoo.ABCpdf12.Elements.UriActionElement

Method | Description
ActionElement | Create a new ActionElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the action dictionary object.
EntryS | Represents the "S" entry of the action dictionary object.
EntryNext | Represents the "Next" entry of the action dictionary object.
 | inherited properties...


ZZ Elements ActionElement Constructor Function

ActionElement Function

Create a new ActionElement.

Syntax

[C#]
ActionElement()
ActionElement(Atom atom, IndirectObject host)
ActionElement(IndirectObject obj)
ActionElement(Element relation, CreationOptions options)

[Visual Basic]
ActionElement()
ActionElement(atom As Atom, host As IndirectObject)
ActionElement(obj As IndirectObject)
ActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ActionElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the action dictionary object.

Notes

Represents the "Type" entry of the action dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Action".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 193, page 414.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 196, page 502.


ZZ Elements ActionElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the action dictionary object.

Notes

Represents the "S" entry of the action dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • GoTo
  • GoToR
  • GoToE
  • Launch
  • Thread
  • URI
  • Sound
  • Movie
  • Hide
  • Named
  • SubmitForm
  • ResetForm
  • ImportData
  • JavaScript
  • SetOCGState
  • Rendition
  • Trans
  • GoTo3DView
  • RichMediaExecute
  • GoToDp

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 193, page 414.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 196, page 502.


ZZ Elements ActionElement EntryNext Property

EntryNext Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<ActionElement> [Visual Basic] ArrayElement<ActionElement> | null | No | Represents the "Next" entry of the action dictionary object.

Notes

Represents the "Next" entry of the action dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains an array which contains ActionElements.

If you read the specification you will see that an array of one ActionElement may be represented as a single ActionElement rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 193, page 414.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 196, page 503.


ZZ Elements AnnotationAdditionalActionsElement

AnnotationAdditionalActionsElement Class

This class represents the annotation additional-actions dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 194, page 415.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 197, page 504.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationAdditionalActionsElement

Method | Description
AnnotationAdditionalActionsElement | Create a new AnnotationAdditionalActionsElement.
 | inherited methods...

Property | Description
EntryE | Represents the "E" entry of the annotation additional-actions dictionary object.
EntryX | Represents the "X" entry of the annotation additional-actions dictionary object.
EntryD | Represents the "D" entry of the annotation additional-actions dictionary object.
EntryU | Represents the "U" entry of the annotation additional-actions dictionary object.
EntryFo | Represents the "Fo" entry of the annotation additional-actions dictionary object.
EntryBl | Represents the "Bl" entry of the annotation additional-actions dictionary object.
EntryPO | Represents the "PO" entry of the annotation additional-actions dictionary object.
EntryPC | Represents the "PC" entry of the annotation additional-actions dictionary object.
EntryPV | Represents the "PV" entry of the annotation additional-actions dictionary object.
EntryPI | Represents the "PI" entry of the annotation additional-actions dictionary object.
 | inherited properties...


ZZ Elements AnnotationAdditionalActionsElement Constructor Function

AnnotationAdditionalActionsElement Function

Create a new AnnotationAdditionalActionsElement.

Syntax

[C#]
AnnotationAdditionalActionsElement()
AnnotationAdditionalActionsElement(Atom atom, IndirectObject host)
AnnotationAdditionalActionsElement(IndirectObject obj)
AnnotationAdditionalActionsElement(Element relation, CreationOptions options)

[Visual Basic]
AnnotationAdditionalActionsElement()
AnnotationAdditionalActionsElement(atom As Atom, host As IndirectObject)
AnnotationAdditionalActionsElement(obj As IndirectObject)
AnnotationAdditionalActionsElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new AnnotationAdditionalActionsElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1584 in the Annotations example project.

[C#]

bool isUrl = filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase);
if (contentType == null) {
  int end = -1;
  if (isUrl)
    end = filePathOrUrl.IndexOfAny(new char[] { '?', '#' });
  if (end < 0)
    end = filePathOrUrl.Length;
  contentType = GetContentType(filePathOrUrl, end);
  if (contentType == null)
    throw new NotSupportedException("Movie content type is not supported.");
}

ScreenAnnotationElement annot = new ScreenAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "Screen";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);

FullFileSpecificationElement fileSpec = new FullFileSpecificationElement(annot);
fileSpec.EntryType = "Filespec";
if (isUrl) {
  fileSpec.EntryFS = "URL";
  fileSpec.EntryF = filePathOrUrl;
}
else {
  FileInfo fileInfo = new FileInfo(filePathOrUrl);
  fileSpec.EntryF = fileInfo.Name;
  fileSpec.EntryUF = fileInfo.Name;
  fileSpec.EntryEF = new EmbeddedFileSetElement(annot);
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo);
}

MediaClipDataElement mediaClip = new MediaClipDataElement(annot, CreationOptions.Indirect);
mediaClip.EntryS = "MCD";
mediaClip.EntryP = new MediaPermissionsElement(annot);
mediaClip.EntryP.EntryTF = "TEMPACCESS";
mediaClip.EntryCT = contentType;
mediaClip.EntryD = fileSpec;

MediaRenditionElement rendition = new MediaRenditionElement(annot, CreationOptions.Indirect);
rendition.EntryS = "MR";
rendition.EntryC = mediaClip;

RenditionActionElement pageVisibleAction = new RenditionActionElement(annot, CreationOptions.Indirect);
pageVisibleAction.EntryS = "Rendition";
pageVisibleAction.EntryOP = 4;
pageVisibleAction.EntryAN = annot;
pageVisibleAction.EntryR = rendition;

annot.EntryAA = new AnnotationAdditionalActionsElement(annot);
annot.EntryAA.EntryPV = pageVisibleAction;
AnnotationElement = annot;

[VB]

Dim isUrl As Boolean = filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase)
If contentType Is Nothing Then
  Dim [end] As Integer = -1
  If isUrl Then
    [end] = filePathOrUrl.IndexOfAny(New Char() { "?"c, "#"c })
  End If
  If [end] < 0 Then
    [end] = filePathOrUrl.Length
  End If
  contentType = GetContentType(filePathOrUrl, [end])
  If contentType Is Nothing Then
    Throw New NotSupportedException("Movie content type is not supported.")
  End If
End If

Dim annot As New ScreenAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "Screen"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)

Dim fileSpec As New FullFileSpecificationElement(annot)
fileSpec.EntryType = "Filespec"
If isUrl Then
  fileSpec.EntryFS = "URL"
  fileSpec.EntryF = filePathOrUrl
Else
  Dim fileInfo As New FileInfo(filePathOrUrl)
  fileSpec.EntryF = fileInfo.Name
  fileSpec.EntryUF = fileInfo.Name
  fileSpec.EntryEF = New EmbeddedFileSetElement(annot)
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo)
End If

Dim mediaClip As New MediaClipDataElement(annot, CreationOptions.Indirect)
mediaClip.EntryS = "MCD"
mediaClip.EntryP = New MediaPermissionsElement(annot)
mediaClip.EntryP.EntryTF = "TEMPACCESS"
mediaClip.EntryCT = contentType
mediaClip.EntryD = fileSpec

Dim rendition As New MediaRenditionElement(annot, CreationOptions.Indirect)
rendition.EntryS = "MR"
rendition.EntryC = mediaClip

Dim pageVisibleAction As New RenditionActionElement(annot, CreationOptions.Indirect)
pageVisibleAction.EntryS = "Rendition"
pageVisibleAction.EntryOP = 4
pageVisibleAction.EntryAN = annot
pageVisibleAction.EntryR = rendition

annot.EntryAA = New AnnotationAdditionalActionsElement(annot)
annot.EntryAA.EntryPV = pageVisibleAction
AnnotationElement = annot


ZZ Elements AnnotationAdditionalActionsElement EntryE Property

EntryE Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "E" entry of the annotation additional-actions dictionary object.

Notes

Represents the "E" entry of the annotation additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 194, page 415.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 197, page 504.


ZZ Elements AnnotationAdditionalActionsElement EntryX Property

EntryX Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "X" entry of the annotation additional-actions dictionary object.

Notes

Represents the "X" entry of the annotation additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 194, page 415.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 197, page 504.


ZZ Elements AnnotationAdditionalActionsElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "D" entry of the annotation additional-actions dictionary object.

Notes

Represents the "D" entry of the annotation additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 194, page 415.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 197, page 504.


ZZ Elements AnnotationAdditionalActionsElement EntryU Property

EntryU Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "U" entry of the annotation additional-actions dictionary object.

Notes

Represents the "U" entry of the annotation additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 194, page 415.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 197, page 504.


ZZ Elements AnnotationAdditionalActionsElement EntryFo Property

EntryFo Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "Fo" entry of the annotation additional-actions dictionary object.

Notes

Represents the "Fo" entry of the annotation additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 194, page 415.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 197, page 504.


ZZ Elements AnnotationAdditionalActionsElement EntryBl Property

EntryBl Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "Bl" entry of the annotation additional-actions dictionary object.

Notes

Represents the "Bl" entry of the annotation additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 194, page 415.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 197, page 504.


ZZ Elements AnnotationAdditionalActionsElement EntryPO Property

EntryPO Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "PO" entry of the annotation additional-actions dictionary object.

Notes

Represents the "PO" entry of the annotation additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 194, page 415.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 197, page 504.


ZZ Elements AnnotationAdditionalActionsElement EntryPC Property

EntryPC Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "PC" entry of the annotation additional-actions dictionary object.

Notes

Represents the "PC" entry of the annotation additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 194, page 416.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 197, page 504.


ZZ Elements AnnotationAdditionalActionsElement EntryPV Property

EntryPV Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "PV" entry of the annotation additional-actions dictionary object.

Notes

Represents the "PV" entry of the annotation additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 194, page 416.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 197, page 504.


ZZ Elements AnnotationAdditionalActionsElement EntryPI Property

EntryPI Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "PI" entry of the annotation additional-actions dictionary object.

Notes

Represents the "PI" entry of the annotation additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 194, page 416.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 197, page 504.


ZZ Elements FormFieldAdditionalActionsElement

FormFieldAdditionalActionsElement Class

This class represents the form field additional-actions dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 196, page 416.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 199, page 505.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FormFieldAdditionalActionsElement

Method | Description
FormFieldAdditionalActionsElement | Create a new FormFieldAdditionalActionsElement.
 | inherited methods...

Property | Description
EntryK | Represents the "K" entry of the form field additional-actions dictionary object.
EntryF | Represents the "F" entry of the form field additional-actions dictionary object.
EntryV | Represents the "V" entry of the form field additional-actions dictionary object.
EntryC | Represents the "C" entry of the form field additional-actions dictionary object.
 | inherited properties...


ZZ Elements FormFieldAdditionalActionsElement Constructor Function

FormFieldAdditionalActionsElement Function

Create a new FormFieldAdditionalActionsElement.

Syntax

[C#]
FormFieldAdditionalActionsElement()
FormFieldAdditionalActionsElement(Atom atom, IndirectObject host)
FormFieldAdditionalActionsElement(IndirectObject obj)
FormFieldAdditionalActionsElement(Element relation, CreationOptions options)

[Visual Basic]
FormFieldAdditionalActionsElement()
FormFieldAdditionalActionsElement(atom As Atom, host As IndirectObject)
FormFieldAdditionalActionsElement(obj As IndirectObject)
FormFieldAdditionalActionsElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FormFieldAdditionalActionsElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FormFieldAdditionalActionsElement EntryK Property

EntryK Property

Type | Default Value | Read Only | Description
[C#] JavaScriptActionElement [Visual Basic] JavaScriptActionElement | null | No | Represents the "K" entry of the form field additional-actions dictionary object.

Notes

Represents the "K" entry of the form field additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a JavaScriptActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 196, page 416.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 199, page 505.


ZZ Elements FormFieldAdditionalActionsElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] JavaScriptActionElement [Visual Basic] JavaScriptActionElement | null | No | Represents the "F" entry of the form field additional-actions dictionary object.

Notes

Represents the "F" entry of the form field additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a JavaScriptActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 196, page 416.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 199, page 505.


ZZ Elements FormFieldAdditionalActionsElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] JavaScriptActionElement [Visual Basic] JavaScriptActionElement | null | No | Represents the "V" entry of the form field additional-actions dictionary object.

Notes

Represents the "V" entry of the form field additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a JavaScriptActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 196, page 416.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 199, page 505.


ZZ Elements FormFieldAdditionalActionsElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] JavaScriptActionElement [Visual Basic] JavaScriptActionElement | null | No | Represents the "C" entry of the form field additional-actions dictionary object.

Notes

Represents the "C" entry of the form field additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a JavaScriptActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 196, page 416.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 199, page 505.


ZZ Elements PageObjectAdditionalActionsElement

PageObjectAdditionalActionsElement Class

This class represents the page object additional-actions dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 195, page 416.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 198, page 505.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.PageObjectAdditionalActionsElement

Method | Description
PageObjectAdditionalActionsElement | Create a new PageObjectAdditionalActionsElement.
 | inherited methods...

Property | Description
EntryO | Represents the "O" entry of the page object additional-actions dictionary object.
EntryC | Represents the "C" entry of the page object additional-actions dictionary object.
 | inherited properties...


ZZ Elements PageObjectAdditionalActionsElement Constructor Function

PageObjectAdditionalActionsElement Function

Create a new PageObjectAdditionalActionsElement.

Syntax

[C#]
PageObjectAdditionalActionsElement()
PageObjectAdditionalActionsElement(Atom atom, IndirectObject host)
PageObjectAdditionalActionsElement(IndirectObject obj)
PageObjectAdditionalActionsElement(Element relation, CreationOptions options)

[Visual Basic]
PageObjectAdditionalActionsElement()
PageObjectAdditionalActionsElement(atom As Atom, host As IndirectObject)
PageObjectAdditionalActionsElement(obj As IndirectObject)
PageObjectAdditionalActionsElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new PageObjectAdditionalActionsElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements PageObjectAdditionalActionsElement EntryO Property

EntryO Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "O" entry of the page object additional-actions dictionary object.

Notes

Represents the "O" entry of the page object additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 195, page 416.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 198, page 505.


ZZ Elements PageObjectAdditionalActionsElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "C" entry of the page object additional-actions dictionary object.

Notes

Represents the "C" entry of the page object additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 195, page 416.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 198, page 505.


ZZ Elements DocumentCatalogAdditionalActionsElement

DocumentCatalogAdditionalActionsElement Class

This class represents the document catalog additional-actions dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 197, page 417.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 200, page 505.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.DocumentCatalogAdditionalActionsElement

Method | Description
DocumentCatalogAdditionalActionsElement | Create a new DocumentCatalogAdditionalActionsElement.
 | inherited methods...

Property | Description
EntryWC | Represents the "WC" entry of the document catalog additional-actions dictionary object.
EntryWS | Represents the "WS" entry of the document catalog additional-actions dictionary object.
EntryDS | Represents the "DS" entry of the document catalog additional-actions dictionary object.
EntryWP | Represents the "WP" entry of the document catalog additional-actions dictionary object.
EntryDP | Represents the "DP" entry of the document catalog additional-actions dictionary object.
 | inherited properties...


ZZ Elements DocumentCatalogAdditionalActionsElement Constructor Function

DocumentCatalogAdditionalActionsElement Function

Create a new DocumentCatalogAdditionalActionsElement.

Syntax

[C#]
DocumentCatalogAdditionalActionsElement()
DocumentCatalogAdditionalActionsElement(Atom atom, IndirectObject host)
DocumentCatalogAdditionalActionsElement(IndirectObject obj)
DocumentCatalogAdditionalActionsElement(Element relation, CreationOptions options)

[Visual Basic]
DocumentCatalogAdditionalActionsElement()
DocumentCatalogAdditionalActionsElement(atom As Atom, host As IndirectObject)
DocumentCatalogAdditionalActionsElement(obj As IndirectObject)
DocumentCatalogAdditionalActionsElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new DocumentCatalogAdditionalActionsElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements DocumentCatalogAdditionalActionsElement EntryWC Property

EntryWC Property

Type | Default Value | Read Only | Description
[C#] JavaScriptActionElement [Visual Basic] JavaScriptActionElement | null | No | Represents the "WC" entry of the document catalog additional-actions dictionary object.

Notes

Represents the "WC" entry of the document catalog additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a JavaScriptActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 197, page 417.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 200, page 505.


ZZ Elements DocumentCatalogAdditionalActionsElement EntryWS Property

EntryWS Property

Type | Default Value | Read Only | Description
[C#] JavaScriptActionElement [Visual Basic] JavaScriptActionElement | null | No | Represents the "WS" entry of the document catalog additional-actions dictionary object.

Notes

Represents the "WS" entry of the document catalog additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a JavaScriptActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 197, page 417.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 200, page 505.


ZZ Elements DocumentCatalogAdditionalActionsElement EntryDS Property

EntryDS Property

Type | Default Value | Read Only | Description
[C#] JavaScriptActionElement [Visual Basic] JavaScriptActionElement | null | No | Represents the "DS" entry of the document catalog additional-actions dictionary object.

Notes

Represents the "DS" entry of the document catalog additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a JavaScriptActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 197, page 417.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 200, page 505.


ZZ Elements DocumentCatalogAdditionalActionsElement EntryWP Property

EntryWP Property

Type | Default Value | Read Only | Description
[C#] JavaScriptActionElement [Visual Basic] JavaScriptActionElement | null | No | Represents the "WP" entry of the document catalog additional-actions dictionary object.

Notes

Represents the "WP" entry of the document catalog additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a JavaScriptActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 197, page 417.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 200, page 505.


ZZ Elements DocumentCatalogAdditionalActionsElement EntryDP Property

EntryDP Property

Type | Default Value | Read Only | Description
[C#] JavaScriptActionElement [Visual Basic] JavaScriptActionElement | null | No | Represents the "DP" entry of the document catalog additional-actions dictionary object.

Notes

Represents the "DP" entry of the document catalog additional-actions dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a JavaScriptActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 197, page 417.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 200, page 506.


ZZ Elements GoToActionElement

GoToActionElement Class

This class represents the go-to action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 199, page 418.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 202, page 507.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.GoToActionElement

Method | Description
GoToActionElement | Create a new GoToActionElement.
 | inherited methods...

Property | Description
EntryD | Represents the "D" entry of the go-to action object.
EntrySD | Represents the "SD" entry of the go-to action object.
 | inherited properties...


ZZ Elements GoToActionElement Constructor Function

GoToActionElement Function

Create a new GoToActionElement.

Syntax

[C#]
GoToActionElement()
GoToActionElement(Atom atom, IndirectObject host)
GoToActionElement(IndirectObject obj)
GoToActionElement(Element relation, CreationOptions options)

[Visual Basic]
GoToActionElement()
GoToActionElement(atom As Atom, host As IndirectObject)
GoToActionElement(obj As IndirectObject)
GoToActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new GoToActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements GoToActionElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "D" entry of the go-to action object.

Notes

Represents the "D" entry of the go-to action object.

It is a required entry defined as part of the PDF 1.0 specification.

This property may contain one of three different types:.

1) A string representing a PDF name object.

2) A string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

3) A DestinationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 199, page 418.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 202, page 507.


ZZ Elements GoToActionElement EntrySD Property

EntrySD Property

Type | Default Value | Read Only | Description
[C#] DestinationElement [Visual Basic] DestinationElement | null | No | Represents the "SD" entry of the go-to action object.

Notes

Represents the "SD" entry of the go-to action object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a DestinationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 199, page 418.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 202, page 508.


ZZ Elements RemoteGoToActionElement

RemoteGoToActionElement Class

This class represents the remote go-to action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 200, page 419.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 203, page 508.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.RemoteGoToActionElement

Method | Description
RemoteGoToActionElement | Create a new RemoteGoToActionElement.
 | inherited methods...

Property | Description
EntryF | Represents the "F" entry of the remote go-to action object.
EntryD | Represents the "D" entry of the remote go-to action object.
EntryNewWindow | Represents the "NewWindow" entry of the remote go-to action object.
EntrySD | Represents the "SD" entry of the remote go-to action object.
 | inherited properties...


ZZ Elements RemoteGoToActionElement Constructor Function

RemoteGoToActionElement Function

Create a new RemoteGoToActionElement.

Syntax

[C#]
RemoteGoToActionElement()
RemoteGoToActionElement(Atom atom, IndirectObject host)
RemoteGoToActionElement(IndirectObject obj)
RemoteGoToActionElement(Element relation, CreationOptions options)

[Visual Basic]
RemoteGoToActionElement()
RemoteGoToActionElement(atom As Atom, host As IndirectObject)
RemoteGoToActionElement(obj As IndirectObject)
RemoteGoToActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RemoteGoToActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements RemoteGoToActionElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] FileSpecificationElement [Visual Basic] FileSpecificationElement | null | No | Represents the "F" entry of the remote go-to action object.

Notes

Represents the "F" entry of the remote go-to action object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a FileSpecificationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 200, page 419.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 203, page 508.


ZZ Elements RemoteGoToActionElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "D" entry of the remote go-to action object.

Notes

Represents the "D" entry of the remote go-to action object.

It is a required entry defined as part of the PDF 1.0 specification.

This property may contain one of three different types:.

1) A string representing a PDF name object.

2) A string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

3) A DestinationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 200, page 419.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 203, page 508.


ZZ Elements RemoteGoToActionElement EntryNewWindow Property

EntryNewWindow Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "NewWindow" entry of the remote go-to action object.

Notes

Represents the "NewWindow" entry of the remote go-to action object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 200, page 419.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 203, page 509.


ZZ Elements RemoteGoToActionElement EntrySD Property

EntrySD Property

Type | Default Value | Read Only | Description
[C#] DestinationElement [Visual Basic] DestinationElement | null | No | Represents the "SD" entry of the remote go-to action object.

Notes

Represents the "SD" entry of the remote go-to action object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a DestinationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 200, page 419.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 203, page 509.


ZZ Elements EmbeddedGoToActionElement

EmbeddedGoToActionElement Class

This class represents the embedded go-to action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 201, page 420.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 204, page 510.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.EmbeddedGoToActionElement

Method | Description
EmbeddedGoToActionElement | Create a new EmbeddedGoToActionElement.
 | inherited methods...

Property | Description
EntryF | Represents the "F" entry of the embedded go-to action object.
EntryD | Represents the "D" entry of the embedded go-to action object.
EntryNewWindow | Represents the "NewWindow" entry of the embedded go-to action object.
EntryT | Represents the "T" entry of the embedded go-to action object.
 | inherited properties...


ZZ Elements EmbeddedGoToActionElement Constructor Function

EmbeddedGoToActionElement Function

Create a new EmbeddedGoToActionElement.

Syntax

[C#]
EmbeddedGoToActionElement()
EmbeddedGoToActionElement(Atom atom, IndirectObject host)
EmbeddedGoToActionElement(IndirectObject obj)
EmbeddedGoToActionElement(Element relation, CreationOptions options)

[Visual Basic]
EmbeddedGoToActionElement()
EmbeddedGoToActionElement(atom As Atom, host As IndirectObject)
EmbeddedGoToActionElement(obj As IndirectObject)
EmbeddedGoToActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new EmbeddedGoToActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements EmbeddedGoToActionElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] FileSpecificationElement [Visual Basic] FileSpecificationElement | null | No | Represents the "F" entry of the embedded go-to action object.

Notes

Represents the "F" entry of the embedded go-to action object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a FileSpecificationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 201, page 420.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 204, page 510.


ZZ Elements EmbeddedGoToActionElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "D" entry of the embedded go-to action object.

Notes

Represents the "D" entry of the embedded go-to action object.

It is a required entry defined as part of the PDF 1.0 specification.

This property may contain one of three different types:.

1) A string representing a PDF name object.

2) A string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

3) A DestinationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 201, page 420.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 204, page 510.


ZZ Elements EmbeddedGoToActionElement EntryNewWindow Property

EntryNewWindow Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "NewWindow" entry of the embedded go-to action object.

Notes

Represents the "NewWindow" entry of the embedded go-to action object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 201, page 420.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 204, page 510.


ZZ Elements EmbeddedGoToActionElement EntryT Property

EntryT Property

Type | Default Value | Read Only | Description
[C#] TargetElement [Visual Basic] TargetElement | null | No | Represents the "T" entry of the embedded go-to action object.

Notes

Represents the "T" entry of the embedded go-to action object.

It is defined as part of the PDF 1.0 specification.

It contains a TargetElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 201, page 420.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 204, page 510.


ZZ Elements TargetElement

TargetElement Class

This class represents the target dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 202, page 420.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 205, page 510.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.TargetElement

Method | Description
TargetElement | Create a new TargetElement.
 | inherited methods...

Property | Description
EntryR | Represents the "R" entry of the target dictionary object.
EntryN | Represents the "N" entry of the target dictionary object.
EntryP | Represents the "P" entry of the target dictionary object.
EntryA | Represents the "A" entry of the target dictionary object.
EntryT | Represents the "T" entry of the target dictionary object.
 | inherited properties...


ZZ Elements TargetElement Constructor Function

TargetElement Function

Create a new TargetElement.

Syntax

[C#]
TargetElement()
TargetElement(Atom atom, IndirectObject host)
TargetElement(IndirectObject obj)
TargetElement(Element relation, CreationOptions options)

[Visual Basic]
TargetElement()
TargetElement(atom As Atom, host As IndirectObject)
TargetElement(obj As IndirectObject)
TargetElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new TargetElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements TargetElement EntryR Property

EntryR Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "R" entry of the target dictionary object.

Notes

Represents the "R" entry of the target dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • P
  • C

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 202, page 420.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 205, page 510.


ZZ Elements TargetElement EntryN Property

EntryN Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "N" entry of the target dictionary object.

Notes

Represents the "N" entry of the target dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 202, page 420.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 205, page 510.


ZZ Elements TargetElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "P" entry of the target dictionary object.

Notes

Represents the "P" entry of the target dictionary object.

It is defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) An integer representing a PDF numeric object.

2) A string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 202, page 420.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 205, page 510.


ZZ Elements TargetElement EntryA Property

EntryA Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "A" entry of the target dictionary object.

Notes

Represents the "A" entry of the target dictionary object.

It is defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) An integer representing a PDF numeric object.

2) A string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 202, page 420.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 205, page 510.


ZZ Elements TargetElement EntryT Property

EntryT Property

Type | Default Value | Read Only | Description
[C#] TargetElement [Visual Basic] TargetElement | null | No | Represents the "T" entry of the target dictionary object.

Notes

Represents the "T" entry of the target dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a TargetElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 202, page 420.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 205, page 510.


ZZ Elements LaunchActionElement

LaunchActionElement Class

This class represents the launch action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 203, page 422.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 207, page 513.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.LaunchActionElement

Method | Description
LaunchActionElement | Create a new LaunchActionElement.
 | inherited methods...

Property | Description
EntryF | Represents the "F" entry of the launch action object.
EntryWin | Represents the "Win" entry of the launch action object.
EntryMac | Represents the "Mac" entry of the launch action object.
EntryUnix | Represents the "Unix" entry of the launch action object.
EntryNewWindow | Represents the "NewWindow" entry of the launch action object.
 | inherited properties...


ZZ Elements LaunchActionElement Constructor Function

LaunchActionElement Function

Create a new LaunchActionElement.

Syntax

[C#]
LaunchActionElement()
LaunchActionElement(Atom atom, IndirectObject host)
LaunchActionElement(IndirectObject obj)
LaunchActionElement(Element relation, CreationOptions options)

[Visual Basic]
LaunchActionElement()
LaunchActionElement(atom As Atom, host As IndirectObject)
LaunchActionElement(obj As IndirectObject)
LaunchActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new LaunchActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements LaunchActionElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] FileSpecificationElement [Visual Basic] FileSpecificationElement | null | No | Represents the "F" entry of the launch action object.

Notes

Represents the "F" entry of the launch action object.

It is defined as part of the PDF 1.0 specification.

It contains a FileSpecificationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 203, page 422.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 207, page 513.


ZZ Elements LaunchActionElement EntryWin Property

EntryWin Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Win" entry of the launch action object.

Notes

Represents the "Win" entry of the launch action object.

It is an optional entry defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 203, page 422.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 207, page 513.


ZZ Elements LaunchActionElement EntryMac Property

EntryMac Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Mac" entry of the launch action object.

Notes

Represents the "Mac" entry of the launch action object.

It is an optional entry defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

The specification defines this property as being of undefined type. So the type of atom or data contained is not part of the specification. For practical purposes this means it may be of any type.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 203, page 422.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 207, page 513.


ZZ Elements LaunchActionElement EntryUnix Property

EntryUnix Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Unix" entry of the launch action object.

Notes

Represents the "Unix" entry of the launch action object.

It is an optional entry defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

The specification defines this property as being of undefined type. So the type of atom or data contained is not part of the specification. For practical purposes this means it may be of any type.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 203, page 422.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 207, page 513.


ZZ Elements LaunchActionElement EntryNewWindow Property

EntryNewWindow Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "NewWindow" entry of the launch action object.

Notes

Represents the "NewWindow" entry of the launch action object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 203, page 422.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 207, page 513.


ZZ Elements WindowsLaunchParameterElement

WindowsLaunchParameterElement Class

This class represents the windows launch parameter dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 204, page 422.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 208, page 513.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.WindowsLaunchParameterElement

Method | Description
WindowsLaunchParameterElement | Create a new WindowsLaunchParameterElement.
 | inherited methods...

Property | Description
EntryF | Represents the "F" entry of the windows launch parameter dictionary object.
EntryD | Represents the "D" entry of the windows launch parameter dictionary object.
EntryO | Represents the "O" entry of the windows launch parameter dictionary object.
EntryP | Represents the "P" entry of the windows launch parameter dictionary object.
 | inherited properties...


ZZ Elements WindowsLaunchParameterElement Constructor Function

WindowsLaunchParameterElement Function

Create a new WindowsLaunchParameterElement.

Syntax

[C#]
WindowsLaunchParameterElement()
WindowsLaunchParameterElement(Atom atom, IndirectObject host)
WindowsLaunchParameterElement(IndirectObject obj)
WindowsLaunchParameterElement(Element relation, CreationOptions options)

[Visual Basic]
WindowsLaunchParameterElement()
WindowsLaunchParameterElement(atom As Atom, host As IndirectObject)
WindowsLaunchParameterElement(obj As IndirectObject)
WindowsLaunchParameterElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new WindowsLaunchParameterElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements WindowsLaunchParameterElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "F" entry of the windows launch parameter dictionary object.

Notes

Represents the "F" entry of the windows launch parameter dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 204, page 422.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 208, page 513.


ZZ Elements WindowsLaunchParameterElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "D" entry of the windows launch parameter dictionary object.

Notes

Represents the "D" entry of the windows launch parameter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 204, page 423.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 208, page 513.


ZZ Elements WindowsLaunchParameterElement EntryO Property

EntryO Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "O" entry of the windows launch parameter dictionary object.

Notes

Represents the "O" entry of the windows launch parameter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

The PDF specification states that this item assumes a value of "open" if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 204, page 423.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 208, page 513.


ZZ Elements WindowsLaunchParameterElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "P" entry of the windows launch parameter dictionary object.

Notes

Represents the "P" entry of the windows launch parameter dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 204, page 423.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 208, page 514.


ZZ Elements ThreadActionElement

ThreadActionElement Class

This class represents the thread action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 205, page 423.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 209, page 514.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.ThreadActionElement

Method | Description
ThreadActionElement | Create a new ThreadActionElement.
 | inherited methods...

Property | Description
EntryF | Represents the "F" entry of the thread action object.
EntryD | Represents the "D" entry of the thread action object.
EntryB | Represents the "B" entry of the thread action object.
 | inherited properties...


ZZ Elements ThreadActionElement Constructor Function

ThreadActionElement Function

Create a new ThreadActionElement.

Syntax

[C#]
ThreadActionElement()
ThreadActionElement(Atom atom, IndirectObject host)
ThreadActionElement(IndirectObject obj)
ThreadActionElement(Element relation, CreationOptions options)

[Visual Basic]
ThreadActionElement()
ThreadActionElement(atom As Atom, host As IndirectObject)
ThreadActionElement(obj As IndirectObject)
ThreadActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ThreadActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ThreadActionElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] FileSpecificationElement [Visual Basic] FileSpecificationElement | null | No | Represents the "F" entry of the thread action object.

Notes

Represents the "F" entry of the thread action object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a FileSpecificationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 205, page 423.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 209, page 514.


ZZ Elements ThreadActionElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "D" entry of the thread action object.

Notes

Represents the "D" entry of the thread action object.

It is a required entry defined as part of the PDF 1.0 specification.

This property may contain one of three different types:.

1) An integer representing a PDF numeric object.

2) A string representing a PDF string object.

3) A ThreadElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 205, page 423.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 209, page 514.


ZZ Elements ThreadActionElement EntryB Property

EntryB Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "B" entry of the thread action object.

Notes

Represents the "B" entry of the thread action object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) An integer representing a PDF numeric object.

2) A BeadElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 205, page 423.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 209, page 514.


ZZ Elements CatalogUriElement

CatalogUriElement Class

This class represents the catalog uri dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 207, page 424.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 211, page 515.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CatalogUriElement

Method | Description
CatalogUriElement | Create a new CatalogUriElement.
 | inherited methods...

Property | Description
EntryBase | Represents the "Base" entry of the catalog uri dictionary object.
 | inherited properties...


ZZ Elements CatalogUriElement Constructor Function

CatalogUriElement Function

Create a new CatalogUriElement.

Syntax

[C#]
CatalogUriElement()
CatalogUriElement(Atom atom, IndirectObject host)
CatalogUriElement(IndirectObject obj)
CatalogUriElement(Element relation, CreationOptions options)

[Visual Basic]
CatalogUriElement()
CatalogUriElement(atom As Atom, host As IndirectObject)
CatalogUriElement(obj As IndirectObject)
CatalogUriElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CatalogUriElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CatalogUriElement EntryBase Property

EntryBase Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Base" entry of the catalog uri dictionary object.

Notes

Represents the "Base" entry of the catalog uri dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 207, page 424.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 211, page 515.


ZZ Elements UriActionElement

UriActionElement Class

This class represents the uri action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 206, page 424.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 210, page 515.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.UriActionElement

Method | Description
UriActionElement | Create a new UriActionElement.
 | inherited methods...

Property | Description
EntryURI | Represents the "URI" entry of the uri action object.
EntryIsMap | Represents the "IsMap" entry of the uri action object.
 | inherited properties...


ZZ Elements UriActionElement Constructor Function

UriActionElement Function

Create a new UriActionElement.

Syntax

[C#]
UriActionElement()
UriActionElement(Atom atom, IndirectObject host)
UriActionElement(IndirectObject obj)
UriActionElement(Element relation, CreationOptions options)

[Visual Basic]
UriActionElement()
UriActionElement(atom As Atom, host As IndirectObject)
UriActionElement(obj As IndirectObject)
UriActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new UriActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements UriActionElement EntryURI Property

EntryURI Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "URI" entry of the uri action object.

Notes

Represents the "URI" entry of the uri action object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 206, page 424.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 210, page 515.


ZZ Elements UriActionElement EntryIsMap Property

EntryIsMap Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "IsMap" entry of the uri action object.

Notes

Represents the "IsMap" entry of the uri action object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 206, page 424.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 210, page 515.


ZZ Elements MovieActionElement

MovieActionElement Class

This class represents the movie action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 209, page 425.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 213, page 517.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.MovieActionElement

Method | Description
MovieActionElement | Create a new MovieActionElement.
 | inherited methods...

Property | Description
EntryAnnotation | Represents the "Annotation" entry of the movie action object.
EntryT | Represents the "T" entry of the movie action object.
EntryOperation | Represents the "Operation" entry of the movie action object.
 | inherited properties...


ZZ Elements MovieActionElement Constructor Function

MovieActionElement Function

Create a new MovieActionElement.

Syntax

[C#]
MovieActionElement()
MovieActionElement(Atom atom, IndirectObject host)
MovieActionElement(IndirectObject obj)
MovieActionElement(Element relation, CreationOptions options)

[Visual Basic]
MovieActionElement()
MovieActionElement(atom As Atom, host As IndirectObject)
MovieActionElement(obj As IndirectObject)
MovieActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MovieActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MovieActionElement EntryAnnotation Property

EntryAnnotation Property

Type | Default Value | Read Only | Description
[C#] MovieAnnotationElement [Visual Basic] MovieAnnotationElement | null | No | Represents the "Annotation" entry of the movie action object.

Notes

Represents the "Annotation" entry of the movie action object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a MovieAnnotationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 209, page 425.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 213, page 517.


ZZ Elements MovieActionElement EntryT Property

EntryT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "T" entry of the movie action object.

Notes

Represents the "T" entry of the movie action object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 209, page 425.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 213, page 517.


ZZ Elements MovieActionElement EntryOperation Property

EntryOperation Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Operation" entry of the movie action object.

Notes

Represents the "Operation" entry of the movie action object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Play" if no value has been provided.

This item may take one of the following valid values:.

  • Play
  • Stop
  • Pause
  • Resume

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 209, page 426.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 213, page 517.


ZZ Elements SoundActionElement

SoundActionElement Class

This class represents the sound action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 208, page 425.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 212, page 516.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.SoundActionElement

Method | Description
SoundActionElement | Create a new SoundActionElement.
 | inherited methods...

Property | Description
EntrySound | Represents the "Sound" entry of the sound action object.
EntryVolume | Represents the "Volume" entry of the sound action object.
EntrySynchronous | Represents the "Synchronous" entry of the sound action object.
EntryRepeat | Represents the "Repeat" entry of the sound action object.
EntryMix | Represents the "Mix" entry of the sound action object.
 | inherited properties...


ZZ Elements SoundActionElement Constructor Function

SoundActionElement Function

Create a new SoundActionElement.

Syntax

[C#]
SoundActionElement()
SoundActionElement(Atom atom, IndirectObject host)
SoundActionElement(IndirectObject obj)
SoundActionElement(Element relation, CreationOptions options)

[Visual Basic]
SoundActionElement()
SoundActionElement(atom As Atom, host As IndirectObject)
SoundActionElement(obj As IndirectObject)
SoundActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SoundActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements SoundActionElement EntrySound Property

EntrySound Property

Type | Default Value | Read Only | Description
[C#] SoundObjectStreamElement [Visual Basic] SoundObjectStreamElement | null | No | Represents the "Sound" entry of the sound action object.

Notes

Represents the "Sound" entry of the sound action object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a SoundObjectStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 208, page 425.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 212, page 516.


ZZ Elements SoundActionElement EntryVolume Property

EntryVolume Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Volume" entry of the sound action object.

Notes

Represents the "Volume" entry of the sound action object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

It should have a minimum value of 0 and a maximum of 1.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 208, page 425.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 212, page 516.


ZZ Elements SoundActionElement EntrySynchronous Property

EntrySynchronous Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "Synchronous" entry of the sound action object.

Notes

Represents the "Synchronous" entry of the sound action object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 208, page 425.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 212, page 516.


ZZ Elements SoundActionElement EntryRepeat Property

EntryRepeat Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "Repeat" entry of the sound action object.

Notes

Represents the "Repeat" entry of the sound action object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 208, page 425.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 212, page 516.


ZZ Elements SoundActionElement EntryMix Property

EntryMix Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "Mix" entry of the sound action object.

Notes

Represents the "Mix" entry of the sound action object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 208, page 425.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 212, page 516.


ZZ Elements HideActionElement

HideActionElement Class

This class represents the hide action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 210, page 426.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 214, page 518.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.HideActionElement

Method | Description
HideActionElement | Create a new HideActionElement.
 | inherited methods...

Property | Description
EntryT | Represents the "T" entry of the hide action object.
EntryH | Represents the "H" entry of the hide action object.
 | inherited properties...


ZZ Elements HideActionElement Constructor Function

HideActionElement Function

Create a new HideActionElement.

Syntax

[C#]
HideActionElement()
HideActionElement(Atom atom, IndirectObject host)
HideActionElement(IndirectObject obj)
HideActionElement(Element relation, CreationOptions options)

[Visual Basic]
HideActionElement()
HideActionElement(atom As Atom, host As IndirectObject)
HideActionElement(obj As IndirectObject)
HideActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new HideActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements HideActionElement EntryT Property

EntryT Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "T" entry of the hide action object.

Notes

Represents the "T" entry of the hide action object.

It is a required entry defined as part of the PDF 1.0 specification.

This property may contain one of three different types:.

1) A string representing a PDF string object.

2) An array which contains Elements.

3) An AnnotationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 210, page 426.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 214, page 518.


ZZ Elements HideActionElement EntryH Property

EntryH Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "H" entry of the hide action object.

Notes

Represents the "H" entry of the hide action object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of true if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 210, page 426.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 214, page 518.


ZZ Elements NamedActionElement

NamedActionElement Class

This class represents the named action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 212, page 427.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 216, page 518.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.NamedActionElement

Method | Description
NamedActionElement | Create a new NamedActionElement.
 | inherited methods...

Property | Description
EntryN | Represents the "N" entry of the named action object.
 | inherited properties...


ZZ Elements NamedActionElement Constructor Function

NamedActionElement Function

Create a new NamedActionElement.

Syntax

[C#]
NamedActionElement()
NamedActionElement(Atom atom, IndirectObject host)
NamedActionElement(IndirectObject obj)
NamedActionElement(Element relation, CreationOptions options)

[Visual Basic]
NamedActionElement()
NamedActionElement(atom As Atom, host As IndirectObject)
NamedActionElement(obj As IndirectObject)
NamedActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new NamedActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements NamedActionElement EntryN Property

EntryN Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "N" entry of the named action object.

Notes

Represents the "N" entry of the named action object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • NextPage
  • PrevPage
  • FirstPage
  • LastPage

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 212, page 427.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 216, page 518.


ZZ Elements SetOcgStateActionElement

SetOcgStateActionElement Class

This class represents the set-ocg-state action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 213, page 427.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 217, page 519.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.SetOcgStateActionElement

Method | Description
SetOcgStateActionElement | Create a new SetOcgStateActionElement.
 | inherited methods...

Property | Description
EntryState | Represents the "State" entry of the set-ocg-state action object.
EntryPreserveRB | Represents the "PreserveRB" entry of the set-ocg-state action object.
 | inherited properties...


ZZ Elements SetOcgStateActionElement Constructor Function

SetOcgStateActionElement Function

Create a new SetOcgStateActionElement.

Syntax

[C#]
SetOcgStateActionElement()
SetOcgStateActionElement(Atom atom, IndirectObject host)
SetOcgStateActionElement(IndirectObject obj)
SetOcgStateActionElement(Element relation, CreationOptions options)

[Visual Basic]
SetOcgStateActionElement()
SetOcgStateActionElement(atom As Atom, host As IndirectObject)
SetOcgStateActionElement(obj As IndirectObject)
SetOcgStateActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SetOcgStateActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements SetOcgStateActionElement EntryState Property

EntryState Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "State" entry of the set-ocg-state action object.

Notes

Represents the "State" entry of the set-ocg-state action object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 213, page 427.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 217, page 519.


ZZ Elements SetOcgStateActionElement EntryPreserveRB Property

EntryPreserveRB Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "PreserveRB" entry of the set-ocg-state action object.

Notes

Represents the "PreserveRB" entry of the set-ocg-state action object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of true if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 213, page 427.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 217, page 519.


ZZ Elements RenditionActionElement

RenditionActionElement Class

This class represents the rendition action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 214, page 428.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 218, page 520.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.RenditionActionElement

Method | Description
RenditionActionElement | Create a new RenditionActionElement.
 | inherited methods...

Property | Description
EntryR | Represents the "R" entry of the rendition action object.
EntryAN | Represents the "AN" entry of the rendition action object.
EntryOP | Represents the "OP" entry of the rendition action object.
EntryJS | Represents the "JS" entry of the rendition action object.
 | inherited properties...


ZZ Elements RenditionActionElement Constructor Function

RenditionActionElement Function

Create a new RenditionActionElement.

Syntax

[C#]
RenditionActionElement()
RenditionActionElement(Atom atom, IndirectObject host)
RenditionActionElement(IndirectObject obj)
RenditionActionElement(Element relation, CreationOptions options)

[Visual Basic]
RenditionActionElement()
RenditionActionElement(atom As Atom, host As IndirectObject)
RenditionActionElement(obj As IndirectObject)
RenditionActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RenditionActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1584 in the Annotations example project.

[C#]

bool isUrl = filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase);
if (contentType == null) {
  int end = -1;
  if (isUrl)
    end = filePathOrUrl.IndexOfAny(new char[] { '?', '#' });
  if (end < 0)
    end = filePathOrUrl.Length;
  contentType = GetContentType(filePathOrUrl, end);
  if (contentType == null)
    throw new NotSupportedException("Movie content type is not supported.");
}

ScreenAnnotationElement annot = new ScreenAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "Screen";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);

FullFileSpecificationElement fileSpec = new FullFileSpecificationElement(annot);
fileSpec.EntryType = "Filespec";
if (isUrl) {
  fileSpec.EntryFS = "URL";
  fileSpec.EntryF = filePathOrUrl;
}
else {
  FileInfo fileInfo = new FileInfo(filePathOrUrl);
  fileSpec.EntryF = fileInfo.Name;
  fileSpec.EntryUF = fileInfo.Name;
  fileSpec.EntryEF = new EmbeddedFileSetElement(annot);
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo);
}

MediaClipDataElement mediaClip = new MediaClipDataElement(annot, CreationOptions.Indirect);
mediaClip.EntryS = "MCD";
mediaClip.EntryP = new MediaPermissionsElement(annot);
mediaClip.EntryP.EntryTF = "TEMPACCESS";
mediaClip.EntryCT = contentType;
mediaClip.EntryD = fileSpec;

MediaRenditionElement rendition = new MediaRenditionElement(annot, CreationOptions.Indirect);
rendition.EntryS = "MR";
rendition.EntryC = mediaClip;

RenditionActionElement pageVisibleAction = new RenditionActionElement(annot, CreationOptions.Indirect);
pageVisibleAction.EntryS = "Rendition";
pageVisibleAction.EntryOP = 4;
pageVisibleAction.EntryAN = annot;
pageVisibleAction.EntryR = rendition;

annot.EntryAA = new AnnotationAdditionalActionsElement(annot);
annot.EntryAA.EntryPV = pageVisibleAction;
AnnotationElement = annot;

[VB]

Dim isUrl As Boolean = filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase)
If contentType Is Nothing Then
  Dim [end] As Integer = -1
  If isUrl Then
    [end] = filePathOrUrl.IndexOfAny(New Char() { "?"c, "#"c })
  End If
  If [end] < 0 Then
    [end] = filePathOrUrl.Length
  End If
  contentType = GetContentType(filePathOrUrl, [end])
  If contentType Is Nothing Then
    Throw New NotSupportedException("Movie content type is not supported.")
  End If
End If

Dim annot As New ScreenAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "Screen"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)

Dim fileSpec As New FullFileSpecificationElement(annot)
fileSpec.EntryType = "Filespec"
If isUrl Then
  fileSpec.EntryFS = "URL"
  fileSpec.EntryF = filePathOrUrl
Else
  Dim fileInfo As New FileInfo(filePathOrUrl)
  fileSpec.EntryF = fileInfo.Name
  fileSpec.EntryUF = fileInfo.Name
  fileSpec.EntryEF = New EmbeddedFileSetElement(annot)
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo)
End If

Dim mediaClip As New MediaClipDataElement(annot, CreationOptions.Indirect)
mediaClip.EntryS = "MCD"
mediaClip.EntryP = New MediaPermissionsElement(annot)
mediaClip.EntryP.EntryTF = "TEMPACCESS"
mediaClip.EntryCT = contentType
mediaClip.EntryD = fileSpec

Dim rendition As New MediaRenditionElement(annot, CreationOptions.Indirect)
rendition.EntryS = "MR"
rendition.EntryC = mediaClip

Dim pageVisibleAction As New RenditionActionElement(annot, CreationOptions.Indirect)
pageVisibleAction.EntryS = "Rendition"
pageVisibleAction.EntryOP = 4
pageVisibleAction.EntryAN = annot
pageVisibleAction.EntryR = rendition

annot.EntryAA = New AnnotationAdditionalActionsElement(annot)
annot.EntryAA.EntryPV = pageVisibleAction
AnnotationElement = annot


ZZ Elements RenditionActionElement EntryR Property

EntryR Property

Type | Default Value | Read Only | Description
[C#] RenditionElement [Visual Basic] RenditionElement | null | No | Represents the "R" entry of the rendition action object.

Notes

Represents the "R" entry of the rendition action object.

It is defined as part of the PDF 1.0 specification.

It contains a RenditionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 214, page 428.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 218, page 520.


ZZ Elements RenditionActionElement EntryAN Property

EntryAN Property

Type | Default Value | Read Only | Description
[C#] ScreenAnnotationElement [Visual Basic] ScreenAnnotationElement | null | No | Represents the "AN" entry of the rendition action object.

Notes

Represents the "AN" entry of the rendition action object.

It is defined as part of the PDF 1.0 specification.

It contains a ScreenAnnotationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 214, page 428.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 218, page 520.


ZZ Elements RenditionActionElement EntryOP Property

EntryOP Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "OP" entry of the rendition action object.

Notes

Represents the "OP" entry of the rendition action object.

It is defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

It should have a minimum value of 0 and a maximum of 4.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 214, page 428.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 218, page 520.


ZZ Elements RenditionActionElement EntryJS Property

EntryJS Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "JS" entry of the rendition action object.

Notes

Represents the "JS" entry of the rendition action object.

It is defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF string object.

2) A StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 214, page 428.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 218, page 521.


ZZ Elements GoTo3DViewActionElement

GoTo3DViewActionElement Class

This class represents the go-to-3D-view action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 216, page 429.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 220, page 522.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.GoTo3DViewActionElement

Method | Description
GoTo3DViewActionElement | Create a new GoTo3DViewActionElement.
 | inherited methods...

Property | Description
EntryTA | Represents the "TA" entry of the go-to-3d-view action object.
EntryV | Represents the "V" entry of the go-to-3d-view action object.
 | inherited properties...


ZZ Elements GoTo3DViewActionElement Constructor Function

GoTo3DViewActionElement Function

Create a new GoTo3DViewActionElement.

Syntax

[C#]
GoTo3DViewActionElement()
GoTo3DViewActionElement(Atom atom, IndirectObject host)
GoTo3DViewActionElement(IndirectObject obj)
GoTo3DViewActionElement(Element relation, CreationOptions options)

[Visual Basic]
GoTo3DViewActionElement()
GoTo3DViewActionElement(atom As Atom, host As IndirectObject)
GoTo3DViewActionElement(obj As IndirectObject)
GoTo3DViewActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new GoTo3DViewActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements GoTo3DViewActionElement EntryTA Property

EntryTA Property

Type | Default Value | Read Only | Description
[C#] AnnotationElement [Visual Basic] AnnotationElement | null | No | Represents the "TA" entry of the go-to-3d-view action object.

Notes

Represents the "TA" entry of the go-to-3d-view action object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an AnnotationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 216, page 429.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 220, page 522.


ZZ Elements GoTo3DViewActionElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "V" entry of the go-to-3d-view action object.

Notes

Represents the "V" entry of the go-to-3d-view action object.

It is a required entry defined as part of the PDF 1.0 specification.

This property may contain one of four different types:.

1) An integer representing a PDF numeric object.

2) A string representing a PDF name object.

This item may take one of the following valid values:.

  • F
  • L
  • N
  • P
  • D
.

3) A string representing a PDF string object.

4) A D3DViewElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 216, page 429.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 220, page 522.


ZZ Elements TransitionActionElement

TransitionActionElement Class

This class represents the transition action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 215, page 429.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 219, page 521.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.TransitionActionElement

Method | Description
TransitionActionElement | Create a new TransitionActionElement.
 | inherited methods...

Property | Description
EntryTrans | Represents the "Trans" entry of the transition action object.
 | inherited properties...


ZZ Elements TransitionActionElement Constructor Function

TransitionActionElement Function

Create a new TransitionActionElement.

Syntax

[C#]
TransitionActionElement()
TransitionActionElement(Atom atom, IndirectObject host)
TransitionActionElement(IndirectObject obj)
TransitionActionElement(Element relation, CreationOptions options)

[Visual Basic]
TransitionActionElement()
TransitionActionElement(atom As Atom, host As IndirectObject)
TransitionActionElement(obj As IndirectObject)
TransitionActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new TransitionActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements TransitionActionElement EntryTrans Property

EntryTrans Property

Type | Default Value | Read Only | Description
[C#] TransitionElement [Visual Basic] TransitionElement | null | No | Represents the "Trans" entry of the transition action object.

Notes

Represents the "Trans" entry of the transition action object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a TransitionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 215, page 429.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 219, page 521.


ZZ Elements JavaScriptActionElement

JavaScriptActionElement Class

This class represents the javascript action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 217, page 430.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 221, page 523.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.JavaScriptActionElement

Method | Description
JavaScriptActionElement | Create a new JavaScriptActionElement.
 | inherited methods...

Property | Description
EntryJS | Represents the "JS" entry of the javascript action object.
 | inherited properties...


ZZ Elements JavaScriptActionElement Constructor Function

JavaScriptActionElement Function

Create a new JavaScriptActionElement.

Syntax

[C#]
JavaScriptActionElement()
JavaScriptActionElement(Atom atom, IndirectObject host)
JavaScriptActionElement(IndirectObject obj)
JavaScriptActionElement(Element relation, CreationOptions options)

[Visual Basic]
JavaScriptActionElement()
JavaScriptActionElement(atom As Atom, host As IndirectObject)
JavaScriptActionElement(obj As IndirectObject)
JavaScriptActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new JavaScriptActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from NameTree.cs line 115 in the Annotations example project.

[C#]

CatalogElement cat = new CatalogElement(doc.ObjectSoup.Catalog);
if (cat.EntryNames == null)
  cat.EntryNames = new NameDictionaryElement(cat);
if (cat.EntryNames.EntryJavaScript == null) {
  cat.EntryNames.EntryJavaScript = new NameTreeNodeElement<JavaScriptActionElement>(cat);
  cat.EntryNames.EntryJavaScript.EntryNames = new ArrayElement<Element>(cat);
}
Root = cat.EntryNames.EntryJavaScript;

[VB]

Dim cat As New CatalogElement(doc.ObjectSoup.Catalog)
If cat.EntryNames Is Nothing Then
  cat.EntryNames = New NameDictionaryElement(cat)
End If
If cat.EntryNames.EntryJavaScript Is Nothing Then
  cat.EntryNames.EntryJavaScript = New NameTreeNodeElement(Of JavaScriptActionElement)(cat)
  cat.EntryNames.EntryJavaScript.EntryNames = New ArrayElement(Of Element)(cat)
End If
Root = cat.EntryNames.EntryJavaScript

This code snippet is taken from NameTree.cs line 137 in the Annotations example project.

[C#]

JavaScriptActionElement action = new JavaScriptActionElement(Root);
action.EntryType = "Action";
action.EntryS = "JavaScript";
if (!useStream)
  action.EntryJS = new Element(new StringAtom(script), action.Host);
else {
  StreamObject stream = new StreamObject(action.Host.Soup);
  stream.SetText(script);
  if (stream.Length > 64)
    stream.CompressFlate();
  action.EntryJS = new Element(stream);
}
Add(key, action);

[VB]

Dim action As New JavaScriptActionElement(Root)
action.EntryType = "Action"
action.EntryS = "JavaScript"
If Not useStream Then
  action.EntryJS = New Element(New StringAtom(script), action.Host)
Else
  Dim stream As New StreamObject(action.Host.Soup)
  stream.SetText(script)
  If stream.Length > 64 Then
    stream.CompressFlate()
  End If
  action.EntryJS = New Element(stream)
End If
Add(key, action)


ZZ Elements JavaScriptActionElement EntryJS Property

EntryJS Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "JS" entry of the javascript action object.

Notes

Represents the "JS" entry of the javascript action object.

It is a required entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF string object.

2) A TextStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 217, page 430.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 221, page 523.


ZZ Elements InteractiveFormElement

InteractiveFormElement Class

This class represents the interactive form dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 218, page 431.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 224, page 525.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.InteractiveFormElement

Method | Description
InteractiveFormElement | Create a new InteractiveFormElement.
 | inherited methods...

Property | Description
EntryFields | Represents the "Fields" entry of the interactive form dictionary object.
EntryNeedAppearances | Represents the "NeedAppearances" entry of the interactive form dictionary object.
EntrySigFlags | Represents the "SigFlags" entry of the interactive form dictionary object.
EntryCO | Represents the "CO" entry of the interactive form dictionary object.
EntryDR | Represents the "DR" entry of the interactive form dictionary object.
EntryDA | Represents the "DA" entry of the interactive form dictionary object.
EntryQ | Represents the "Q" entry of the interactive form dictionary object.
EntryXFA | Represents the "XFA" entry of the interactive form dictionary object.
 | inherited properties...


ZZ Elements InteractiveFormElement Constructor Function

InteractiveFormElement Function

Create a new InteractiveFormElement.

Syntax

[C#]
InteractiveFormElement()
InteractiveFormElement(Atom atom, IndirectObject host)
InteractiveFormElement(IndirectObject obj)
InteractiveFormElement(Element relation, CreationOptions options)

[Visual Basic]
InteractiveFormElement()
InteractiveFormElement(atom As Atom, host As IndirectObject)
InteractiveFormElement(obj As IndirectObject)
InteractiveFormElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new InteractiveFormElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 373 in the Annotations example project.

[C#]

Doc = inDoc;
CatalogElement cat = new CatalogElement(Doc.ObjectSoup.Catalog);
if (cat.EntryAcroForm == null) {
  cat.EntryAcroForm = new InteractiveFormElement(cat, CreationOptions.Indirect);
  cat.EntryAcroForm.EntryFields = new ArrayElement<FieldElement>(cat);
}
else { // convert indirect reference to direct one
  if (cat.EntryAcroForm.EntryFields.Ref != null)
    cat.EntryAcroForm.EntryFields = cat.EntryAcroForm.EntryFields;
}
// add font for text fields
IndirectObject times = Doc.ObjectSoup[Doc.AddFont("Times-Roman")];
if (cat.EntryAcroForm.EntryDR == null)
  cat.EntryAcroForm.EntryDR = new ResourceElement(cat);
if (cat.EntryAcroForm.EntryDR.EntryFont == null)
  cat.EntryAcroForm.EntryDR.EntryFont = new DictElement<FontElement>(cat);
cat.EntryAcroForm.EntryDR.EntryFont["TimesRoman"] = new FontElement(times);
FormElement = cat.EntryAcroForm;

[VB]

Doc = inDoc
Dim cat As New CatalogElement(Doc.ObjectSoup.Catalog)
If cat.EntryAcroForm Is Nothing Then
  cat.EntryAcroForm = New InteractiveFormElement(cat, CreationOptions.Indirect)
  cat.EntryAcroForm.EntryFields = New ArrayElement(Of FieldElement)(cat)
Else ' convert indirect reference to direct one
  If cat.EntryAcroForm.EntryFields.Ref IsNot Nothing Then
    cat.EntryAcroForm.EntryFields = cat.EntryAcroForm.EntryFields
  End If
End If
' add font for text fields
Dim times As IndirectObject = Doc.ObjectSoup(Doc.AddFont("Times-Roman"))
If cat.EntryAcroForm.EntryDR Is Nothing Then
  cat.EntryAcroForm.EntryDR = New ResourceElement(cat)
End If
If cat.EntryAcroForm.EntryDR.EntryFont Is Nothing Then
  cat.EntryAcroForm.EntryDR.EntryFont = New DictElement(Of FontElement)(cat)
End If
cat.EntryAcroForm.EntryDR.EntryFont("TimesRoman") = New FontElement(times)
FormElement = cat.EntryAcroForm


ZZ Elements InteractiveFormElement EntryFields Property

EntryFields Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FieldElement> [Visual Basic] ArrayElement<FieldElement> | null | No | Represents the "Fields" entry of the interactive form dictionary object.

Notes

Represents the "Fields" entry of the interactive form dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains FieldElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 218, page 431.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 224, page 525.


ZZ Elements InteractiveFormElement EntryNeedAppearances Property

EntryNeedAppearances Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "NeedAppearances" entry of the interactive form dictionary object.

Notes

Represents the "NeedAppearances" entry of the interactive form dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 218, page 431.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 224, page 525.


ZZ Elements InteractiveFormElement EntrySigFlags Property

EntrySigFlags Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "SigFlags" entry of the interactive form dictionary object.

Notes

Represents the "SigFlags" entry of the interactive form dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 218, page 431.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 224, page 525.


ZZ Elements InteractiveFormElement EntryCO Property

EntryCO Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FieldElement> [Visual Basic] ArrayElement<FieldElement> | null | No | Represents the "CO" entry of the interactive form dictionary object.

Notes

Represents the "CO" entry of the interactive form dictionary object.

It is defined as part of the PDF 1.3 specification.

It contains an array which contains FieldElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 218, page 431.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 224, page 525.


ZZ Elements InteractiveFormElement EntryDR Property

EntryDR Property

Type | Default Value | Read Only | Description
[C#] ResourceElement [Visual Basic] ResourceElement | null | No | Represents the "DR" entry of the interactive form dictionary object.

Notes

Represents the "DR" entry of the interactive form dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a ResourceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 218, page 431.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 224, page 525.


ZZ Elements InteractiveFormElement EntryDA Property

EntryDA Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "DA" entry of the interactive form dictionary object.

Notes

Represents the "DA" entry of the interactive form dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 218, page 431.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 224, page 525.


ZZ Elements InteractiveFormElement EntryQ Property

EntryQ Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Q" entry of the interactive form dictionary object.

Notes

Represents the "Q" entry of the interactive form dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 218, page 431.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 224, page 526.


ZZ Elements InteractiveFormElement EntryXFA Property

EntryXFA Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "XFA" entry of the interactive form dictionary object.

Notes

Represents the "XFA" entry of the interactive form dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification. It was deprecated in PDF 2.0.

This property may contain one of two different types:.

1) An array which contains Elements.

2) A StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 218, page 431.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 224, page 526.


ZZ Elements FieldElement

FieldElement Class

This class represents the field dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 220, page 432.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 222, page 434.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 226, page 527.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 228, page 529.

This class is always an indirect object because FDFFieldElement.EntryKids, FDFTemplateElement.EntryFields, FieldElement.EntryKids, InteractiveFormElement.EntryCO, InteractiveFormElement.EntryFields, ResetFormActionElement.EntryFields, SubmitFormActionElement.EntryFields and WidgetAnnotationElement.EntryParent require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FieldElement
         WebSupergoo.ABCpdf12.Elements.CheckboxFieldElement
         WebSupergoo.ABCpdf12.Elements.ComboFieldElement
         WebSupergoo.ABCpdf12.Elements.ListFieldElement
         WebSupergoo.ABCpdf12.Elements.PushbuttonFieldElement
         WebSupergoo.ABCpdf12.Elements.RadioFieldElement
         WebSupergoo.ABCpdf12.Elements.SignatureFieldElement
         WebSupergoo.ABCpdf12.Elements.TextFieldElement

Method | Description
FieldElement | Create a new FieldElement.
 | inherited methods...

Property | Description
WidgetAnnotationElement | Any WidgetAnnotationElement associated with this Field.
EntryFT | Represents the "FT" entry of the field dictionary object.
EntryParent | Represents the "Parent" entry of the field dictionary object.
EntryKids | Represents the "Kids" entry of the field dictionary object.
EntryT | Represents the "T" entry of the field dictionary object.
EntryTU | Represents the "TU" entry of the field dictionary object.
EntryTM | Represents the "TM" entry of the field dictionary object.
EntryFf | Represents the "Ff" entry of the field dictionary object.
EntryV | Represents the "V" entry of the field dictionary object.
EntryDV | Represents the "DV" entry of the field dictionary object.
EntryAA | Represents the "AA" entry of the field dictionary object.
EntryDA | Represents the "DA" entry of the field dictionary object.
EntryQ | Represents the "Q" entry of the field dictionary object.
EntryDS | Represents the "DS" entry of the field dictionary object.
EntryRV | Represents the "RV" entry of the field dictionary object.
EntryOpt | Represents the "Opt" entry of the field dictionary object.
EntryMaxLen | Represents the "MaxLen" entry of the field dictionary object.
 | inherited properties...


ZZ Elements FieldElement Constructor Function

FieldElement Function

Create a new FieldElement.

Syntax

[C#]
FieldElement()
FieldElement(Atom atom, IndirectObject host)
FieldElement(IndirectObject obj)
FieldElement(Element relation, CreationOptions options)

[Visual Basic]
FieldElement()
FieldElement(atom As Atom, host As IndirectObject)
FieldElement(obj As IndirectObject)
FieldElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FieldElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FieldElement WidgetAnnotationElement Property

WidgetAnnotationElement Property

Type | Default Value | Read Only | Description
[C#] WidgetAnnotationElement [Visual Basic] WidgetAnnotationElement | null | Yes | Any WidgetAnnotationElement associated with this Field.

Notes

Any WidgetAnnotationElement associated with this Field.


ZZ Elements FieldElement EntryFT Property

EntryFT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "FT" entry of the field dictionary object.

Notes

Represents the "FT" entry of the field dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • Btn
  • Tx
  • Ch
  • Sig

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 220, page 432.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 226, page 527.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 222, page 434.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 228, page 529.


ZZ Elements FieldElement EntryParent Property

EntryParent Property

Type | Default Value | Read Only | Description
[C#] FieldElement [Visual Basic] FieldElement | null | No | Represents the "Parent" entry of the field dictionary object.

Notes

Represents the "Parent" entry of the field dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a FieldElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 220, page 432.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 226, page 527.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 222, page 434.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 228, page 529.


ZZ Elements FieldElement EntryKids Property

EntryKids Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FieldElement> [Visual Basic] ArrayElement<FieldElement> | null | No | Represents the "Kids" entry of the field dictionary object.

Notes

Represents the "Kids" entry of the field dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an array which contains FieldElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 220, page 433.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 226, page 527.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 222, page 434.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 228, page 529.


ZZ Elements FieldElement EntryT Property

EntryT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "T" entry of the field dictionary object.

Notes

Represents the "T" entry of the field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 220, page 433.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 226, page 527.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 222, page 434.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 228, page 529.


ZZ Elements FieldElement EntryTU Property

EntryTU Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "TU" entry of the field dictionary object.

Notes

Represents the "TU" entry of the field dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 220, page 433.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 226, page 527.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 222, page 434.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 228, page 529.


ZZ Elements FieldElement EntryTM Property

EntryTM Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "TM" entry of the field dictionary object.

Notes

Represents the "TM" entry of the field dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 220, page 433.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 226, page 527.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 222, page 434.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 228, page 529.


ZZ Elements FieldElement EntryFf Property

EntryFf Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Ff" entry of the field dictionary object.

Notes

Represents the "Ff" entry of the field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 220, page 433.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 226, page 527.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 222, page 434.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 228, page 529.


ZZ Elements FieldElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "V" entry of the field dictionary object.

Notes

Represents the "V" entry of the field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of five different types:.

1) A string representing a PDF name object.

2) An array which contains strings, representing PDF string objects.

If you read the specification you will see that an array of one string may be represented as a single string rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

3) A Null.

4) A SignatureElement.

5) A StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 220, page 433.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 226, page 527.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 222, page 434.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 228, page 529.


ZZ Elements FieldElement EntryDV Property

EntryDV Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "DV" entry of the field dictionary object.

Notes

Represents the "DV" entry of the field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of five different types:.

1) A string representing a PDF name object.

2) An array which contains strings, representing PDF string objects.

If you read the specification you will see that an array of one string may be represented as a single string rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

3) A Null.

4) A SignatureElement.

5) A StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 220, page 433.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 226, page 527.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 222, page 434.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 228, page 529.


ZZ Elements FieldElement EntryAA Property

EntryAA Property

Type | Default Value | Read Only | Description
[C#] FormFieldAdditionalActionsElement [Visual Basic] FormFieldAdditionalActionsElement | null | No | Represents the "AA" entry of the field dictionary object.

Notes

Represents the "AA" entry of the field dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains a FormFieldAdditionalActionsElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 220, page 433.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 226, page 528.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 222, page 434.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 228, page 529.


ZZ Elements FieldElement EntryDA Property

EntryDA Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "DA" entry of the field dictionary object.

Notes

Represents the "DA" entry of the field dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 220, page 432.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 226, page 527.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 222, page 434.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 228, page 529.


ZZ Elements FieldElement EntryQ Property

EntryQ Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Q" entry of the field dictionary object.

Notes

Represents the "Q" entry of the field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

It should have a minimum value of 0 and a maximum of 2.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 220, page 432.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 226, page 527.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 222, page 434.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 228, page 529.


ZZ Elements FieldElement EntryDS Property

EntryDS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "DS" entry of the field dictionary object.

Notes

Represents the "DS" entry of the field dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 220, page 432.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 226, page 527.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 222, page 434.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 228, page 529.


ZZ Elements FieldElement EntryRV Property

EntryRV Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "RV" entry of the field dictionary object.

Notes

Represents the "RV" entry of the field dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

This property may contain one of two different types:.

1) A string representing a PDF string object.

2) A TextStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 220, page 432.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 226, page 527.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 222, page 434.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 228, page 529.


ZZ Elements FieldElement EntryOpt Property

EntryOpt Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "Opt" entry of the field dictionary object.

Notes

Represents the "Opt" entry of the field dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 220, page 432.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 226, page 527.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 222, page 434.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 228, page 529.


ZZ Elements FieldElement EntryMaxLen Property

EntryMaxLen Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "MaxLen" entry of the field dictionary object.

Notes

Represents the "MaxLen" entry of the field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 220, page 432.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 226, page 527.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 222, page 434.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 228, page 529.


ZZ Elements TextFieldElement

TextFieldElement Class

This class represents the text field. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 229, page 444.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 232, page 537.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39a, page 46.

This class is always an indirect object because it inherits from FieldElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FieldElement
         WebSupergoo.ABCpdf12.Elements.TextFieldElement

Method | Description
TextFieldElement | Create a new TextFieldElement.
 | inherited methods...

Property | Description
EntryDataPrep | Represents the "DataPrep" entry of the text field object.
 | inherited properties...


ZZ Elements TextFieldElement Constructor Function

TextFieldElement Function

Create a new TextFieldElement.

Syntax

[C#]
TextFieldElement()
TextFieldElement(Atom atom, IndirectObject host)
TextFieldElement(IndirectObject obj)
TextFieldElement(Element relation, CreationOptions options)

[Visual Basic]
TextFieldElement()
TextFieldElement(atom As Atom, host As IndirectObject)
TextFieldElement(obj As IndirectObject)
TextFieldElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new TextFieldElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements TextFieldElement EntryDataPrep Property

EntryDataPrep Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "DataPrep" entry of the text field object.

Notes

Represents the "DataPrep" entry of the text field object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 229, page 444.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39a, page 46.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 232, page 537.


ZZ Elements ComboFieldElement

ComboFieldElement Class

This class represents the combo field. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 231, page 445.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 234, page 539.

This class is always an indirect object because it inherits from FieldElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FieldElement
         WebSupergoo.ABCpdf12.Elements.ComboFieldElement

Method | Description
ComboFieldElement | Create a new ComboFieldElement.
 | inherited methods...

Property | Description
EntryTI | Represents the "TI" entry of the combo field object.
EntryI | Represents the "I" entry of the combo field object.
 | inherited properties...


ZZ Elements ComboFieldElement Constructor Function

ComboFieldElement Function

Create a new ComboFieldElement.

Syntax

[C#]
ComboFieldElement()
ComboFieldElement(Atom atom, IndirectObject host)
ComboFieldElement(IndirectObject obj)
ComboFieldElement(Element relation, CreationOptions options)

[Visual Basic]
ComboFieldElement()
ComboFieldElement(atom As Atom, host As IndirectObject)
ComboFieldElement(obj As IndirectObject)
ComboFieldElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ComboFieldElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 269 in the Annotations example project.

[C#]

ComboFieldElement choice = new ComboFieldElement(FieldElement.Object);
if (options != null)
  choice.EntryOpt = new ArrayElement<Element>(ArrayAtom.FromStrings(options), Host);
if (selected != null)
  choice.EntryI = selected;

[VB]

Dim choice As New ComboFieldElement(FieldElement.Object)
If options IsNot Nothing Then
  choice.EntryOpt = New ArrayElement(Of Element)(ArrayAtom.FromStrings(options), Host)
End If
If selected IsNot Nothing Then
  choice.EntryI = selected
End If


ZZ Elements ComboFieldElement EntryTI Property

EntryTI Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "TI" entry of the combo field object.

Notes

Represents the "TI" entry of the combo field object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 231, page 445.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 234, page 539.


ZZ Elements ComboFieldElement EntryI Property

EntryI Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "I" entry of the combo field object.

Notes

Represents the "I" entry of the combo field object.

It is defined as part of the PDF 1.4 specification.

It contains an array which contains integers, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 231, page 445.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 234, page 539.


ZZ Elements ListFieldElement

ListFieldElement Class

This class represents the list field. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 231, page 445.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 234, page 539.

This class is always an indirect object because it inherits from FieldElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FieldElement
         WebSupergoo.ABCpdf12.Elements.ListFieldElement

Method | Description
ListFieldElement | Create a new ListFieldElement.
 | inherited methods...

Property | Description
EntryTI | Represents the "TI" entry of the list field object.
EntryI | Represents the "I" entry of the list field object.
 | inherited properties...


ZZ Elements ListFieldElement Constructor Function

ListFieldElement Function

Create a new ListFieldElement.

Syntax

[C#]
ListFieldElement()
ListFieldElement(Atom atom, IndirectObject host)
ListFieldElement(IndirectObject obj)
ListFieldElement(Element relation, CreationOptions options)

[Visual Basic]
ListFieldElement()
ListFieldElement(atom As Atom, host As IndirectObject)
ListFieldElement(obj As IndirectObject)
ListFieldElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ListFieldElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ListFieldElement EntryTI Property

EntryTI Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "TI" entry of the list field object.

Notes

Represents the "TI" entry of the list field object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 231, page 445.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 234, page 539.


ZZ Elements ListFieldElement EntryI Property

EntryI Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "I" entry of the list field object.

Notes

Represents the "I" entry of the list field object.

It is defined as part of the PDF 1.4 specification.

It contains an array which contains integers, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 231, page 445.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 234, page 539.


ZZ Elements SignatureFieldElement

SignatureFieldElement Class

This class represents the signature field. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 232, page 446.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 235, page 540.

This class is always an indirect object because it inherits from FieldElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FieldElement
         WebSupergoo.ABCpdf12.Elements.SignatureFieldElement

Method | Description
SignatureFieldElement | Create a new SignatureFieldElement.
 | inherited methods...

Property | Description
EntryLock | Represents the "Lock" entry of the signature field object.
EntrySV | Represents the "SV" entry of the signature field object.
 | inherited properties...


ZZ Elements SignatureFieldElement Constructor Function

SignatureFieldElement Function

Create a new SignatureFieldElement.

Syntax

[C#]
SignatureFieldElement()
SignatureFieldElement(Atom atom, IndirectObject host)
SignatureFieldElement(IndirectObject obj)
SignatureFieldElement(Element relation, CreationOptions options)

[Visual Basic]
SignatureFieldElement()
SignatureFieldElement(atom As Atom, host As IndirectObject)
SignatureFieldElement(obj As IndirectObject)
SignatureFieldElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SignatureFieldElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements SignatureFieldElement EntryLock Property

EntryLock Property

Type | Default Value | Read Only | Description
[C#] SignatureFieldLockElement [Visual Basic] SignatureFieldLockElement | null | No | Represents the "Lock" entry of the signature field object.

Notes

Represents the "Lock" entry of the signature field object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a SignatureFieldLockElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 232, page 446.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 235, page 540.


ZZ Elements SignatureFieldElement EntrySV Property

EntrySV Property

Type | Default Value | Read Only | Description
[C#] SignatureFieldSeedValueElement [Visual Basic] SignatureFieldSeedValueElement | null | No | Represents the "SV" entry of the signature field object.

Notes

Represents the "SV" entry of the signature field object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a SignatureFieldSeedValueElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 232, page 446.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 235, page 540.


ZZ Elements SignatureFieldLockElement

SignatureFieldLockElement Class

This class represents the signature field lock dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 233, page 447.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 236, page 541.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.82, page 43.

This class is always an indirect object because SignatureFieldElement.EntryLock requires it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.SignatureFieldLockElement

Method | Description
SignatureFieldLockElement | Create a new SignatureFieldLockElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the signature field lock dictionary object.
EntryAction | Represents the "Action" entry of the signature field lock dictionary object.
EntryFields | Represents the "Fields" entry of the signature field lock dictionary object.
EntryP | Represents the "P" entry of the signature field lock dictionary object.
 | inherited properties...


ZZ Elements SignatureFieldLockElement Constructor Function

SignatureFieldLockElement Function

Create a new SignatureFieldLockElement.

Syntax

[C#]
SignatureFieldLockElement()
SignatureFieldLockElement(Atom atom, IndirectObject host)
SignatureFieldLockElement(IndirectObject obj)
SignatureFieldLockElement(Element relation, CreationOptions options)

[Visual Basic]
SignatureFieldLockElement()
SignatureFieldLockElement(atom As Atom, host As IndirectObject)
SignatureFieldLockElement(obj As IndirectObject)
SignatureFieldLockElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SignatureFieldLockElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 666 in the Annotations example project.

[C#]

CommitSignature();

CatalogElement cat = new CatalogElement(Doc.ObjectSoup.Catalog);
cat.EntryAcroForm.EntrySigFlags = 3;

// NB If you don't want your signature to print then set the /F flag to 0
int fieldID = Doc.AddObject("<</Type /Annot /Subtype /Widget /F 4 /FT /Sig /DA (/TimesRoman 0 Tf 0 g)>>");
WidgetAnnotationElement widget = new WidgetAnnotationElement(Doc.ObjectSoup[fieldID]);
SignatureFieldElement field = (SignatureFieldElement)widget.FieldElement;
int sigDictID = Doc.AddObject("<</Type /Sig /Filter /Adobe.PPKLite /SubFilter /adbe.pkcs7.detached>>");
SignatureElement signature = new SignatureElement(Doc.ObjectSoup[sigDictID]);
if (inLocked) {
  IndirectObject io = IndirectObject.FromString("<< /Type /SigFieldLock /Action /All /P 1 >>");
  field.Host.Soup.Add(io);
  SignatureFieldLockElement sigFieldLock = new SignatureFieldLockElement(io);
  field.EntryLock = sigFieldLock;
  field.Object.Version = 5; // PDF 1.5
}
field.EntryV = signature;
FormField formField = new FormField(this, inName, field.Object.ID);
formField.Widget.Rect = new XRect(inRect);

Doc.Form.Refresh();
mSig = (Signature)Doc.Form[inName];
sign(mSig);
if (inReason != null)
  signature.EntryReason = inReason;
if (inLocation != null)
  signature.EntryLocation = inLocation;
if (mSig.Signer != null)
  signature.EntryName = mSig.Signer;

if (mCertify) {
  // make it PDF 1.6, see the second point under "Validating MDP signatures" in the PDF reference
  signature.Object.Version = 6;
  // make signature MDP
  int id = Doc.AddObject("<</Type /SigRef /TransformMethod /DocMDP /TransformParams <</Type /TransformParams /P 2 /V /1.2>>>>");
  SignatureReferenceElement sigRef = new SignatureReferenceElement(Doc.ObjectSoup[id]);
  signature.EntryReference = new ArrayElement<SignatureReferenceElement>(signature);
  signature.EntryReference.Add(sigRef);
  if (cat.EntryPerms == null)
    cat.EntryPerms = new PermissionsElement(cat);
  cat.EntryPerms.EntryDocMDP = signature;
}

if ((inAppearanceTextFormat != null) || (inImage != null)) {
  XRect rect = widget.EntryRect.GetRect();
  rect.Pin = XRect.Corner.TopLeft;
  if (inAppearanceTextFormat != null) {
    rect.Width = 200; // Change this to fit the Text
    rect.Height = 60; // Change this to fit the Text
  }
  widget.EntryRect.SetRect(rect);
  rect = rect.Clone();
  rect.Pin = XRect.Corner.BottomLeft;
  rect.Position(0, 0);
  if (inImage != null) {
    XRect imgRect = XRect.FromSides(0, 0, inImage.Width, inImage.Height);
    imgRect.FitIn(rect, ContentAlign.Center, ContentScaleMode.ExactFit);
    rect.String = imgRect.String;
  }

  double validityMessageHeight = 0;
  int fontSize = 12;
  if (mShowSignatureValidity) {
    validityMessageHeight = Math.Min(0.3 * rect.Height, 0.1 * rect.Width);
    fontSize = 8;
  }

  string theRect = Doc.Rect.String;
  int theFont = Doc.Font;
  int theFontSize = Doc.FontSize;
  double charSpacing = Doc.TextStyle.CharSpacing;
  double lineSpacing = Doc.TextStyle.LineSpacing;
  int pageID = Doc.Page;

  // Use a detached page to avoid changes to the current page
  // or to the page tree for a new page
  Doc.Page = Doc.AddObject("<</Type /Page /MediaBox [" + rect.String + "] >>");
  Doc.Rect.String = rect.String;

  StringBuilder apStream = new StringBuilder();

  string imageResName = null;
  int imageID = 0;
  if (inImage != null) {
    int imageLayerID = Doc.AddImage(inImage);
    string imageStream = Doc.GetInfo(imageLayerID, "Stream");
    ImageLayer il = (ImageLayer)Doc.ObjectSoup[imageLayerID];
    imageID = il.PixMap.ID;
    Doc.Delete(imageLayerID);
    int l1 = imageStream.IndexOf("/Iabc", 0, imageStream.Length);
    int l2 = imageStream.IndexOf(" ", l1, imageStream.Length - l1);
    imageResName = imageStream.Substring(l1 + 1, l2 - l1 - 1);
    apStream.Append(imageStream);
    apStream.AppendLine();
  }

  string fontResName = null;
  int fontID = 0;
  if (inAppearanceTextFormat != null) {
    if (validityMessageHeight != 0)
      Doc.Rect.Top -= validityMessageHeight;
    fontID = Doc.AddFont("Times-Roman");
    Doc.Font = fontID;
    Doc.FontSize = fontSize;
    Doc.TextStyle.CharSpacing = 0;
    Doc.TextStyle.LineSpacing = 2;
    string text = string.Format(inAppearanceTextFormat, mSig.Signer, mSig.SigningUtcTime, inReason, inLocation);
    int textID = Doc.AddText(text);
    string textStream = Doc.GetInfo(textID, "Stream");
    Doc.Delete(textID);
    int l1 = textStream.IndexOf("/Fabc", 0, textStream.Length);
    int l2 = textStream.IndexOf(" ", l1, textStream.Length - l1);
    fontResName = textStream.Substring(l1 + 1, l2 - l1 - 1);
    apStream.Append(textStream);
    apStream.AppendLine();
  }

  Doc.Delete(Doc.Page);
  Doc.Page = pageID;
  Doc.Rect.String = theRect;
  Doc.Font = theFont;
  Doc.FontSize = theFontSize;
  Doc.TextStyle.CharSpacing = charSpacing;
  Doc.TextStyle.LineSpacing = lineSpacing;

  FormXObjectElement appearance = MakeAppearance(rect, imageResName, imageID, fontResName, fontID, apStream.ToString());

  if (mShowSignatureValidity) {
    if (mBlankAppearance == null)
      mBlankAppearance = MakeAppearance(XRect.FromSides(0, 0, 100, 100), null, 0, null, 0, "");

    XRect clone = rect.Clone();
    clone.Bottom = rect.Top - validityMessageHeight;
    FormXObjectElement validityAppearance = MakeAppearance(clone, null, 0, fontResName, fontID, "");

    double side = 0.9 * Math.Min(rect.Width, rect.Height);
    string contents = string.Format(NumberFormatInfo.InvariantInfo,
      "q 1 0 0 1 0 0 cm /n0 Do Q"
      + "\r\nq {0:0.#####} 0 0 {0:0.#####} {1:0.#####} {2:0.#####} cm /n1 Do Q"
      + "\r\nq 1 0 0 1 0 0 cm /n2 Do Q"
      + "\r\nq {0:0.#####} 0 0 {0:0.#####} {1:0.#####} {2:0.#####} cm /n3 Do Q"
      + "\r\nq 1 0 0 1 0 0 cm /n4 Do Q"
      + "\r\n", side / 100, (rect.Width - side) / 2, (rect.Height - side) / 2);
    FormXObjectElement frmElement = MakeAppearance(rect, "", 0, null, 0, contents);
    frmElement.EntryResources.EntryXObject.Add("n0", mBlankAppearance);
    frmElement.EntryResources.EntryXObject.Add("n1", mBlankAppearance);
    frmElement.EntryResources.EntryXObject.Add("n2", appearance);
    frmElement.EntryResources.EntryXObject.Add("n3", mBlankAppearance);
    frmElement.EntryResources.EntryXObject.Add("n4", validityAppearance);

    appearance = MakeAppearance(rect, "", 0, null, 0, "q 1 0 0 1 0 0 cm /FRM Do Q\r\n");
    appearance.EntryResources.EntryXObject.Add("FRM", frmElement);
  }

  widget.EntryAP = new AppearanceElement(widget);
  widget.EntryAP.EntryN = appearance;
}

return formField;

[VB]

CommitSignature()

Dim cat As New CatalogElement(Doc.ObjectSoup.Catalog)
cat.EntryAcroForm.EntrySigFlags = 3

' NB If you don't want your signature to print then set the /F flag to 0
Dim fieldID As Integer = Doc.AddObject("<</Type /Annot /Subtype /Widget /F 4 /FT /Sig /DA (/TimesRoman 0 Tf 0 g)>>")
Dim widget As New WidgetAnnotationElement(Doc.ObjectSoup(fieldID))
Dim field As SignatureFieldElement = CType(widget.FieldElement, SignatureFieldElement)
Dim sigDictID As Integer = Doc.AddObject("<</Type /Sig /Filter /Adobe.PPKLite /SubFilter /adbe.pkcs7.detached>>")
Dim signature As New SignatureElement(Doc.ObjectSoup(sigDictID))
If inLocked Then
  Dim io As IndirectObject = IndirectObject.FromString("<< /Type /SigFieldLock /Action /All /P 1 >>")
  field.Host.Soup.Add(io)
  Dim sigFieldLock As New SignatureFieldLockElement(io)
  field.EntryLock = sigFieldLock
  field.Object.Version = 5 ' PDF 1.5
End If
field.EntryV = signature
Dim formField As New FormField(Me, inName, field.Object.ID)
formField.Widget.Rect = New XRect(inRect)

Doc.Form.Refresh()
mSig = CType(Doc.Form(inName), Signature)
sign(mSig)
If inReason IsNot Nothing Then
  signature.EntryReason = inReason
End If
If inLocation IsNot Nothing Then
  signature.EntryLocation = inLocation
End If
If mSig.Signer IsNot Nothing Then
  signature.EntryName = mSig.Signer
End If

If mCertify Then
  ' make it PDF 1.6, see the second point under "Validating MDP signatures" in the PDF reference
  signature.Object.Version = 6
  ' make signature MDP
  Dim id As Integer = Doc.AddObject("<</Type /SigRef /TransformMethod /DocMDP /TransformParams <</Type /TransformParams /P 2 /V /1.2>>>>")
  Dim sigRef As New SignatureReferenceElement(Doc.ObjectSoup(id))
  signature.EntryReference = New ArrayElement(Of SignatureReferenceElement)(signature)
  signature.EntryReference.Add(sigRef)
  If cat.EntryPerms Is Nothing Then
    cat.EntryPerms = New PermissionsElement(cat)
  End If
  cat.EntryPerms.EntryDocMDP = signature
End If

If (inAppearanceTextFormat IsNot Nothing) OrElse (inImage IsNot Nothing) Then
  Dim rect As XRect = widget.EntryRect.GetRect()
  rect.Pin = XRect.Corner.TopLeft
  If inAppearanceTextFormat IsNot Nothing Then
    rect.Width = 200 ' Change this to fit the Text
    rect.Height = 60 ' Change this to fit the Text
  End If
  widget.EntryRect.SetRect(rect)
  rect = rect.Clone()
  rect.Pin = XRect.Corner.BottomLeft
  rect.Position(0, 0)
  If inImage IsNot Nothing Then
    Dim imgRect As XRect = XRect.FromSides(0, 0, inImage.Width, inImage.Height)
    imgRect.FitIn(rect, ContentAlign.Center, ContentScaleMode.ExactFit)
    rect.String = imgRect.String
  End If

  Dim validityMessageHeight As Double = 0
  Dim fontSize As Integer = 12
  If mShowSignatureValidity Then
    validityMessageHeight = Math.Min(0.3 * rect.Height, 0.1 * rect.Width)
    fontSize = 8
  End If

  Dim theRect As String = Doc.Rect.String
  Dim theFont As Integer = Doc.Font
  Dim theFontSize As Integer = Doc.FontSize
  Dim charSpacing As Double = Doc.TextStyle.CharSpacing
  Dim lineSpacing As Double = Doc.TextStyle.LineSpacing
  Dim pageID As Integer = Doc.Page

  ' Use a detached page to avoid changes to the current page
  ' or to the page tree for a new page
  Doc.Page = Doc.AddObject("<</Type /Page /MediaBox [" & rect.String & "] >>")
  Doc.Rect.String = rect.String

  Dim apStream As New StringBuilder()

  Dim imageResName As String = Nothing
  Dim imageID As Integer = 0
  If inImage IsNot Nothing Then
    Dim imageLayerID As Integer = Doc.AddImage(inImage)
    Dim imageStream As String = Doc.GetInfo(imageLayerID, "Stream")
    Dim il As ImageLayer = CType(Doc.ObjectSoup(imageLayerID), ImageLayer)
    imageID = il.PixMap.ID
    Doc.Delete(imageLayerID)
    Dim l1 As Integer = imageStream.IndexOf("/Iabc", 0, imageStream.Length)
    Dim l2 As Integer = imageStream.IndexOf(" ", l1, imageStream.Length - l1)
    imageResName = imageStream.Substring(l1 + 1, l2 - l1 - 1)
    apStream.Append(imageStream)
    apStream.AppendLine()
  End If

  Dim fontResName As String = Nothing
  Dim fontID As Integer = 0
  If inAppearanceTextFormat IsNot Nothing Then
    If validityMessageHeight <> 0 Then
      Doc.Rect.Top -= validityMessageHeight
    End If
    fontID = Doc.AddFont("Times-Roman")
    Doc.Font = fontID
    Doc.FontSize = fontSize
    Doc.TextStyle.CharSpacing = 0
    Doc.TextStyle.LineSpacing = 2
    Dim text As String = String.Format(inAppearanceTextFormat, mSig.Signer, mSig.SigningUtcTime, inReason, inLocation)
    Dim textID As Integer = Doc.AddText(text)
    Dim textStream As String = Doc.GetInfo(textID, "Stream")
    Doc.Delete(textID)
    Dim l1 As Integer = textStream.IndexOf("/Fabc", 0, textStream.Length)
    Dim l2 As Integer = textStream.IndexOf(" ", l1, textStream.Length - l1)
    fontResName = textStream.Substring(l1 + 1, l2 - l1 - 1)
    apStream.Append(textStream)
    apStream.AppendLine()
  End If

  Doc.Delete(Doc.Page)
  Doc.Page = pageID
  Doc.Rect.String = theRect
  Doc.Font = theFont
  Doc.FontSize = theFontSize
  Doc.TextStyle.CharSpacing = charSpacing
  Doc.TextStyle.LineSpacing = lineSpacing

  Dim appearance As FormXObjectElement = MakeAppearance(rect, imageResName, imageID, fontResName, fontID, apStream.ToString())

  If mShowSignatureValidity Then
    If mBlankAppearance Is Nothing Then
      mBlankAppearance = MakeAppearance(XRect.FromSides(0, 0, 100, 100), Nothing, 0, Nothing, 0, "")
    End If

    Dim clone As XRect = rect.Clone()
    clone.Bottom = rect.Top - validityMessageHeight
    Dim validityAppearance As FormXObjectElement = MakeAppearance(clone, Nothing, 0, fontResName, fontID, "")

    Dim side As Double = 0.9 * Math.Min(rect.Width, rect.Height)
    Dim contents As String = String.Format(NumberFormatInfo.InvariantInfo, "q 1 0 0 1 0 0 cm /n0 Do Q" & vbCrLf & "q {0:0.#####} 0 0 {0:0.#####} {1:0.#####} {2:0.#####} cm /n1 Do Q" & vbCrLf & "q 1 0 0 1 0 0 cm /n2 Do Q" & vbCrLf & "q {0:0.#####} 0 0 {0:0.#####} {1:0.#####} {2:0.#####} cm /n3 Do Q" & vbCrLf & "q 1 0 0 1 0 0 cm /n4 Do Q" & vbCrLf, side / 100, (rect.Width - side) / 2, (rect.Height - side) / 2)
    Dim frmElement As FormXObjectElement = MakeAppearance(rect, "", 0, Nothing, 0, contents)
    frmElement.EntryResources.EntryXObject.Add("n0", mBlankAppearance)
    frmElement.EntryResources.EntryXObject.Add("n1", mBlankAppearance)
    frmElement.EntryResources.EntryXObject.Add("n2", appearance)
    frmElement.EntryResources.EntryXObject.Add("n3", mBlankAppearance)
    frmElement.EntryResources.EntryXObject.Add("n4", validityAppearance)

    appearance = MakeAppearance(rect, "", 0, Nothing, 0, "q 1 0 0 1 0 0 cm /FRM Do Q" & vbCrLf)
    appearance.EntryResources.EntryXObject.Add("FRM", frmElement)
  End If

  widget.EntryAP = New AppearanceElement(widget)
  widget.EntryAP.EntryN = appearance
End If

Return formField


ZZ Elements SignatureFieldLockElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the signature field lock dictionary object.

Notes

Represents the "Type" entry of the signature field lock dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "SigFieldLock".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 233, page 447.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.82, page 43.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 236, page 541.


ZZ Elements SignatureFieldLockElement EntryAction Property

EntryAction Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Action" entry of the signature field lock dictionary object.

Notes

Represents the "Action" entry of the signature field lock dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • All
  • Include
  • ExcludeAll

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 233, page 447.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.82, page 43.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 236, page 541.


ZZ Elements SignatureFieldLockElement EntryFields Property

EntryFields Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Fields" entry of the signature field lock dictionary object.

Notes

Represents the "Fields" entry of the signature field lock dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 233, page 447.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.82, page 43.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 236, page 541.


ZZ Elements SignatureFieldLockElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "P" entry of the signature field lock dictionary object.

Notes

Represents the "P" entry of the signature field lock dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an integer representing a PDF numeric object.

It should have a minimum value of 1 and a maximum of 3.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 233, page 447.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.82, page 43.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 236, page 541.


ZZ Elements SignatureFieldSeedValueElement

SignatureFieldSeedValueElement Class

This class represents the signature field seed value dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 234, page 447.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 237, page 542.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.83, page 44.

This class is always an indirect object because SignatureFieldElement.EntrySV requires it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.SignatureFieldSeedValueElement

Method | Description
SignatureFieldSeedValueElement | Create a new SignatureFieldSeedValueElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the signature field seed value dictionary object.
EntryFilter | Represents the "Filter" entry of the signature field seed value dictionary object.
EntrySubFilter | Represents the "SubFilter" entry of the signature field seed value dictionary object.
EntryDigestMethod | Represents the "DigestMethod" entry of the signature field seed value dictionary object.
EntryCert | Represents the "Cert" entry of the signature field seed value dictionary object.
EntryReasons | Represents the "Reasons" entry of the signature field seed value dictionary object.
EntryMDP | Represents the "MDP" entry of the signature field seed value dictionary object.
EntryTimeStamp | Represents the "TimeStamp" entry of the signature field seed value dictionary object.
EntryLegalAttestation | Represents the "LegalAttestation" entry of the signature field seed value dictionary object.
EntryAddRevInfo | Represents the "AddRevInfo" entry of the signature field seed value dictionary object.
EntryLockDocument | Represents the "LockDocument" entry of the signature field seed value dictionary object.
EntryAppearanceFilter | Represents the "AppearanceFilter" entry of the signature field seed value dictionary object.
EntryFf | Represents the "Ff" entry of the signature field seed value dictionary object.
EntryV | Represents the "V" entry of the signature field seed value dictionary object.
 | inherited properties...


ZZ Elements SignatureFieldSeedValueElement Constructor Function

SignatureFieldSeedValueElement Function

Create a new SignatureFieldSeedValueElement.

Syntax

[C#]
SignatureFieldSeedValueElement()
SignatureFieldSeedValueElement(Atom atom, IndirectObject host)
SignatureFieldSeedValueElement(IndirectObject obj)
SignatureFieldSeedValueElement(Element relation, CreationOptions options)

[Visual Basic]
SignatureFieldSeedValueElement()
SignatureFieldSeedValueElement(atom As Atom, host As IndirectObject)
SignatureFieldSeedValueElement(obj As IndirectObject)
SignatureFieldSeedValueElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SignatureFieldSeedValueElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements SignatureFieldSeedValueElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the signature field seed value dictionary object.

Notes

Represents the "Type" entry of the signature field seed value dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "SV".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 234, page 447.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.83, page 44.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 237, page 542.


ZZ Elements SignatureFieldSeedValueElement EntryFilter Property

EntryFilter Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Filter" entry of the signature field seed value dictionary object.

Notes

Represents the "Filter" entry of the signature field seed value dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 234, page 447.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.83, page 44.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 237, page 542.


ZZ Elements SignatureFieldSeedValueElement EntrySubFilter Property

EntrySubFilter Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "SubFilter" entry of the signature field seed value dictionary object.

Notes

Represents the "SubFilter" entry of the signature field seed value dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF name objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 234, page 447.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.83, page 44.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 237, page 542.


ZZ Elements SignatureFieldSeedValueElement EntryDigestMethod Property

EntryDigestMethod Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "DigestMethod" entry of the signature field seed value dictionary object.

Notes

Represents the "DigestMethod" entry of the signature field seed value dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains an array which contains strings, representing PDF name objects.

Items in this array may take one of the following valid values:.

  • SHA1
  • SHA256
  • SHA384
  • SHA512
  • RIPEMD160

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 234, page 447.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.83, page 44.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 237, page 542.


ZZ Elements SignatureFieldSeedValueElement EntryCert Property

EntryCert Property

Type | Default Value | Read Only | Description
[C#] CertificateSeedValueElement [Visual Basic] CertificateSeedValueElement | null | No | Represents the "Cert" entry of the signature field seed value dictionary object.

Notes

Represents the "Cert" entry of the signature field seed value dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a CertificateSeedValueElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 234, page 448.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.83, page 44.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 237, page 542.


ZZ Elements SignatureFieldSeedValueElement EntryReasons Property

EntryReasons Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Reasons" entry of the signature field seed value dictionary object.

Notes

Represents the "Reasons" entry of the signature field seed value dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 234, page 448.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.83, page 44.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 237, page 543.


ZZ Elements SignatureFieldSeedValueElement EntryMDP Property

EntryMDP Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "MDP" entry of the signature field seed value dictionary object.

Notes

Represents the "MDP" entry of the signature field seed value dictionary object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 234, page 448.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.83, page 44.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 237, page 543.


ZZ Elements SignatureFieldSeedValueElement EntryTimeStamp Property

EntryTimeStamp Property

Type | Default Value | Read Only | Description
[C#] SignatureFieldTimeStampElement [Visual Basic] SignatureFieldTimeStampElement | null | No | Represents the "TimeStamp" entry of the signature field seed value dictionary object.

Notes

Represents the "TimeStamp" entry of the signature field seed value dictionary object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a SignatureFieldTimeStampElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 234, page 448.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.83, page 44.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 237, page 543.


ZZ Elements SignatureFieldSeedValueElement EntryLegalAttestation Property

EntryLegalAttestation Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "LegalAttestation" entry of the signature field seed value dictionary object.

Notes

Represents the "LegalAttestation" entry of the signature field seed value dictionary object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains an array which contains strings, representing PDF string objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 234, page 448.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.83, page 44.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 237, page 543.


ZZ Elements SignatureFieldSeedValueElement EntryAddRevInfo Property

EntryAddRevInfo Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "AddRevInfo" entry of the signature field seed value dictionary object.

Notes

Represents the "AddRevInfo" entry of the signature field seed value dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 234, page 449.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.83, page 44.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 237, page 544.


ZZ Elements SignatureFieldSeedValueElement EntryLockDocument Property

EntryLockDocument Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "LockDocument" entry of the signature field seed value dictionary object.

Notes

Represents the "LockDocument" entry of the signature field seed value dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "auto" if no value has been provided.

This item may take one of the following valid values:.

  • true
  • false
  • auto

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 234, page 447.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.83, page 44.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 237, page 544.


ZZ Elements SignatureFieldSeedValueElement EntryAppearanceFilter Property

EntryAppearanceFilter Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "AppearanceFilter" entry of the signature field seed value dictionary object.

Notes

Represents the "AppearanceFilter" entry of the signature field seed value dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 234, page 447.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.83, page 44.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 237, page 544.


ZZ Elements SignatureFieldSeedValueElement EntryFf Property

EntryFf Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Ff" entry of the signature field seed value dictionary object.

Notes

Represents the "Ff" entry of the signature field seed value dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 234, page 447.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.83, page 44.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 237, page 542.


ZZ Elements SignatureFieldSeedValueElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "V" entry of the signature field seed value dictionary object.

Notes

Represents the "V" entry of the signature field seed value dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 234, page 448.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.83, page 44.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 237, page 542.


ZZ Elements SignatureFieldTimeStampElement

SignatureFieldTimeStampElement Class

This class represents the signature field time stamp dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 234, page 447.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 237, page 542.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.SignatureFieldTimeStampElement

Method | Description
SignatureFieldTimeStampElement | Create a new SignatureFieldTimeStampElement.
 | inherited methods...

Property | Description
EntryURL | Represents the "URL" entry of the signature field time stamp dictionary object.
EntryFf | Represents the "Ff" entry of the signature field time stamp dictionary object.
 | inherited properties...


ZZ Elements SignatureFieldTimeStampElement Constructor Function

SignatureFieldTimeStampElement Function

Create a new SignatureFieldTimeStampElement.

Syntax

[C#]
SignatureFieldTimeStampElement()
SignatureFieldTimeStampElement(Atom atom, IndirectObject host)
SignatureFieldTimeStampElement(IndirectObject obj)
SignatureFieldTimeStampElement(Element relation, CreationOptions options)

[Visual Basic]
SignatureFieldTimeStampElement()
SignatureFieldTimeStampElement(atom As Atom, host As IndirectObject)
SignatureFieldTimeStampElement(obj As IndirectObject)
SignatureFieldTimeStampElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SignatureFieldTimeStampElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements SignatureFieldTimeStampElement EntryURL Property

EntryURL Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "URL" entry of the signature field time stamp dictionary object.

Notes

Represents the "URL" entry of the signature field time stamp dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 234, page 447.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 237, page 542.


ZZ Elements SignatureFieldTimeStampElement EntryFf Property

EntryFf Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Ff" entry of the signature field time stamp dictionary object.

Notes

Represents the "Ff" entry of the signature field time stamp dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 234, page 447.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 237, page 542.


ZZ Elements CertificateSeedValueElement

CertificateSeedValueElement Class

This class represents the certificate seed value dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 235, page 449.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 238, page 545.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CertificateSeedValueElement

Method | Description
CertificateSeedValueElement | Create a new CertificateSeedValueElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the certificate seed value dictionary object.
EntryFf | Represents the "Ff" entry of the certificate seed value dictionary object.
EntrySubject | Represents the "Subject" entry of the certificate seed value dictionary object.
EntrySubjectDN | Represents the "SubjectDN" entry of the certificate seed value dictionary object.
EntryKeyUsage | Represents the "KeyUsage" entry of the certificate seed value dictionary object.
EntryIssuer | Represents the "Issuer" entry of the certificate seed value dictionary object.
EntryOID | Represents the "OID" entry of the certificate seed value dictionary object.
EntryURL | Represents the "URL" entry of the certificate seed value dictionary object.
EntryURLType | Represents the "URLType" entry of the certificate seed value dictionary object.
EntrySignaturePolicyOID | Represents the "SignaturePolicyOID" entry of the certificate seed value dictionary object.
EntrySignaturePolicyHashValue | Represents the "SignaturePolicyHashValue" entry of the certificate seed value dictionary object.
EntrySignaturePolicyHashAlgorithm | Represents the "SignaturePolicyHashAlgorithm" entry of the certificate seed value dictionary object.
EntrySignaturePolicyCommitmentType | Represents the "SignaturePolicyCommitmentType" entry of the certificate seed value dictionary object.
 | inherited properties...


ZZ Elements CertificateSeedValueElement Constructor Function

CertificateSeedValueElement Function

Create a new CertificateSeedValueElement.

Syntax

[C#]
CertificateSeedValueElement()
CertificateSeedValueElement(Atom atom, IndirectObject host)
CertificateSeedValueElement(IndirectObject obj)
CertificateSeedValueElement(Element relation, CreationOptions options)

[Visual Basic]
CertificateSeedValueElement()
CertificateSeedValueElement(atom As Atom, host As IndirectObject)
CertificateSeedValueElement(obj As IndirectObject)
CertificateSeedValueElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CertificateSeedValueElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CertificateSeedValueElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the certificate seed value dictionary object.

Notes

Represents the "Type" entry of the certificate seed value dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "SVCert".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 235, page 449.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 238, page 545.


ZZ Elements CertificateSeedValueElement EntryFf Property

EntryFf Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Ff" entry of the certificate seed value dictionary object.

Notes

Represents the "Ff" entry of the certificate seed value dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 235, page 449.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 238, page 545.


ZZ Elements CertificateSeedValueElement EntrySubject Property

EntrySubject Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Subject" entry of the certificate seed value dictionary object.

Notes

Represents the "Subject" entry of the certificate seed value dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 235, page 449.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 238, page 545.


ZZ Elements CertificateSeedValueElement EntrySubjectDN Property

EntrySubjectDN Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "SubjectDN" entry of the certificate seed value dictionary object.

Notes

Represents the "SubjectDN" entry of the certificate seed value dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 235, page 450.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 238, page 546.


ZZ Elements CertificateSeedValueElement EntryKeyUsage Property

EntryKeyUsage Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "KeyUsage" entry of the certificate seed value dictionary object.

Notes

Represents the "KeyUsage" entry of the certificate seed value dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains an array which contains strings, representing PDF string objects.

This is encoded as a string using single byte ASCII encoding.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 235, page 450.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 238, page 546.


ZZ Elements CertificateSeedValueElement EntryIssuer Property

EntryIssuer Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Issuer" entry of the certificate seed value dictionary object.

Notes

Represents the "Issuer" entry of the certificate seed value dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 235, page 450.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 238, page 547.


ZZ Elements CertificateSeedValueElement EntryOID Property

EntryOID Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "OID" entry of the certificate seed value dictionary object.

Notes

Represents the "OID" entry of the certificate seed value dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 235, page 450.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 238, page 547.


ZZ Elements CertificateSeedValueElement EntryURL Property

EntryURL Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "URL" entry of the certificate seed value dictionary object.

Notes

Represents the "URL" entry of the certificate seed value dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 235, page 451.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 238, page 547.


ZZ Elements CertificateSeedValueElement EntryURLType Property

EntryURLType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "URLType" entry of the certificate seed value dictionary object.

Notes

Represents the "URLType" entry of the certificate seed value dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Browser" if no value has been provided.

The specification defines this as exensible which means that it may contain entries in addition to those defined in the specification.

In fact almost all objects are extensible but the fact that it is explicitly mentioned, implies that extra entries should be regarded as normal rather than exceptional.

For further details see The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: Annex E, page 673..

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 235, page 451.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 238, page 547.


ZZ Elements CertificateSeedValueElement EntrySignaturePolicyOID Property

EntrySignaturePolicyOID Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "SignaturePolicyOID" entry of the certificate seed value dictionary object.

Notes

Represents the "SignaturePolicyOID" entry of the certificate seed value dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 235, page 449.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 238, page 545.


ZZ Elements CertificateSeedValueElement EntrySignaturePolicyHashValue Property

EntrySignaturePolicyHashValue Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "SignaturePolicyHashValue" entry of the certificate seed value dictionary object.

Notes

Represents the "SignaturePolicyHashValue" entry of the certificate seed value dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 235, page 449.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 238, page 545.


ZZ Elements CertificateSeedValueElement EntrySignaturePolicyHashAlgorithm Property

EntrySignaturePolicyHashAlgorithm Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "SignaturePolicyHashAlgorithm" entry of the certificate seed value dictionary object.

Notes

Represents the "SignaturePolicyHashAlgorithm" entry of the certificate seed value dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 235, page 449.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 238, page 545.


ZZ Elements CertificateSeedValueElement EntrySignaturePolicyCommitmentType Property

EntrySignaturePolicyCommitmentType Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "SignaturePolicyCommitmentType" entry of the certificate seed value dictionary object.

Notes

Represents the "SignaturePolicyCommitmentType" entry of the certificate seed value dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

This is encoded as a string using single byte ASCII encoding.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 235, page 449.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 238, page 545.


ZZ Elements SubmitFormActionElement

SubmitFormActionElement Class

This class represents the submit-form action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 236, page 451.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 239, page 548.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.SubmitFormActionElement

Method | Description
SubmitFormActionElement | Create a new SubmitFormActionElement.
 | inherited methods...

Property | Description
EntryF | Represents the "F" entry of the submit-form action object.
EntryFields | Represents the "Fields" entry of the submit-form action object.
EntryFlags | Represents the "Flags" entry of the submit-form action object.
EntryCharSet | Represents the "CharSet" entry of the submit-form action object.
 | inherited properties...


ZZ Elements SubmitFormActionElement Constructor Function

SubmitFormActionElement Function

Create a new SubmitFormActionElement.

Syntax

[C#]
SubmitFormActionElement()
SubmitFormActionElement(Atom atom, IndirectObject host)
SubmitFormActionElement(IndirectObject obj)
SubmitFormActionElement(Element relation, CreationOptions options)

[Visual Basic]
SubmitFormActionElement()
SubmitFormActionElement(atom As Atom, host As IndirectObject)
SubmitFormActionElement(obj As IndirectObject)
SubmitFormActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SubmitFormActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements SubmitFormActionElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] FileSpecificationElement [Visual Basic] FileSpecificationElement | null | No | Represents the "F" entry of the submit-form action object.

Notes

Represents the "F" entry of the submit-form action object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a FileSpecificationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 236, page 451.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 239, page 548.


ZZ Elements SubmitFormActionElement EntryFields Property

EntryFields Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FieldElement> [Visual Basic] ArrayElement<FieldElement> | null | No | Represents the "Fields" entry of the submit-form action object.

Notes

Represents the "Fields" entry of the submit-form action object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains FieldElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 236, page 452.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 239, page 548.


ZZ Elements SubmitFormActionElement EntryFlags Property

EntryFlags Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Flags" entry of the submit-form action object.

Notes

Represents the "Flags" entry of the submit-form action object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 236, page 452.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 239, page 548.


ZZ Elements SubmitFormActionElement EntryCharSet Property

EntryCharSet Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "CharSet" entry of the submit-form action object.

Notes

Represents the "CharSet" entry of the submit-form action object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 236, page 451.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 239, page 548.


ZZ Elements ResetFormActionElement

ResetFormActionElement Class

This class represents the reset-form action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 238, page 455.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 241, page 552.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.ResetFormActionElement

Method | Description
ResetFormActionElement | Create a new ResetFormActionElement.
 | inherited methods...

Property | Description
EntryFields | Represents the "Fields" entry of the reset-form action object.
EntryFlags | Represents the "Flags" entry of the reset-form action object.
 | inherited properties...


ZZ Elements ResetFormActionElement Constructor Function

ResetFormActionElement Function

Create a new ResetFormActionElement.

Syntax

[C#]
ResetFormActionElement()
ResetFormActionElement(Atom atom, IndirectObject host)
ResetFormActionElement(IndirectObject obj)
ResetFormActionElement(Element relation, CreationOptions options)

[Visual Basic]
ResetFormActionElement()
ResetFormActionElement(atom As Atom, host As IndirectObject)
ResetFormActionElement(obj As IndirectObject)
ResetFormActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ResetFormActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ResetFormActionElement EntryFields Property

EntryFields Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FieldElement> [Visual Basic] ArrayElement<FieldElement> | null | No | Represents the "Fields" entry of the reset-form action object.

Notes

Represents the "Fields" entry of the reset-form action object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains FieldElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 238, page 455.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 241, page 552.


ZZ Elements ResetFormActionElement EntryFlags Property

EntryFlags Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Flags" entry of the reset-form action object.

Notes

Represents the "Flags" entry of the reset-form action object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 238, page 455.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 241, page 552.


ZZ Elements ImportDataActionElement

ImportDataActionElement Class

This class represents the import-data action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 240, page 456.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 243, page 552.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.ImportDataActionElement

Method | Description
ImportDataActionElement | Create a new ImportDataActionElement.
 | inherited methods...

Property | Description
EntryF | Represents the "F" entry of the import-data action object.
 | inherited properties...


ZZ Elements ImportDataActionElement Constructor Function

ImportDataActionElement Function

Create a new ImportDataActionElement.

Syntax

[C#]
ImportDataActionElement()
ImportDataActionElement(Atom atom, IndirectObject host)
ImportDataActionElement(IndirectObject obj)
ImportDataActionElement(Element relation, CreationOptions options)

[Visual Basic]
ImportDataActionElement()
ImportDataActionElement(atom As Atom, host As IndirectObject)
ImportDataActionElement(obj As IndirectObject)
ImportDataActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ImportDataActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ImportDataActionElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] FileSpecificationElement [Visual Basic] FileSpecificationElement | null | No | Represents the "F" entry of the import-data action object.

Notes

Represents the "F" entry of the import-data action object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a FileSpecificationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 240, page 456.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 243, page 552.


ZZ Elements FDFElement

FDFElement Class

This class represents the FDF dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 243, page 459.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 246, page 556.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FDFElement

Method | Description
FDFElement | Create a new FDFElement.
 | inherited methods...

Property | Description
EntryF | Represents the "F" entry of the fdf dictionary object.
EntryID | Represents the "ID" entry of the fdf dictionary object.
EntryFields | Represents the "Fields" entry of the fdf dictionary object.
EntryStatus | Represents the "Status" entry of the fdf dictionary object.
EntryPages | Represents the "Pages" entry of the fdf dictionary object.
EntryEncoding | Represents the "Encoding" entry of the fdf dictionary object.
EntryAnnots | Represents the "Annots" entry of the fdf dictionary object.
EntryDifferences | Represents the "Differences" entry of the fdf dictionary object.
EntryTarget | Represents the "Target" entry of the fdf dictionary object.
EntryEmbeddedFDFs | Represents the "EmbeddedFDFs" entry of the fdf dictionary object.
EntryJavaScript | Represents the "JavaScript" entry of the fdf dictionary object.
 | inherited properties...


ZZ Elements FDFElement Constructor Function

FDFElement Function

Create a new FDFElement.

Syntax

[C#]
FDFElement()
FDFElement(Atom atom, IndirectObject host)
FDFElement(IndirectObject obj)
FDFElement(Element relation, CreationOptions options)

[Visual Basic]
FDFElement()
FDFElement(atom As Atom, host As IndirectObject)
FDFElement(obj As IndirectObject)
FDFElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FDFElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FDFElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] FileSpecificationElement [Visual Basic] FileSpecificationElement | null | No | Represents the "F" entry of the fdf dictionary object.

Notes

Represents the "F" entry of the fdf dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a FileSpecificationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 243, page 459.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 246, page 556.


ZZ Elements FDFElement EntryID Property

EntryID Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "ID" entry of the fdf dictionary object.

Notes

Represents the "ID" entry of the fdf dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 243, page 459.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 246, page 556.


ZZ Elements FDFElement EntryFields Property

EntryFields Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FDFFieldElement> [Visual Basic] ArrayElement<FDFFieldElement> | null | No | Represents the "Fields" entry of the fdf dictionary object.

Notes

Represents the "Fields" entry of the fdf dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains FDFFieldElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 243, page 459.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 246, page 556.


ZZ Elements FDFElement EntryStatus Property

EntryStatus Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Status" entry of the fdf dictionary object.

Notes

Represents the "Status" entry of the fdf dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte PDFDocEncoding. This is broadly similar to ASCII but with different values above 127.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 243, page 459.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 246, page 556.


ZZ Elements FDFElement EntryPages Property

EntryPages Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FDFPageElement> [Visual Basic] ArrayElement<FDFPageElement> | null | No | Represents the "Pages" entry of the fdf dictionary object.

Notes

Represents the "Pages" entry of the fdf dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains an array which contains FDFPageElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 243, page 459.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 246, page 556.


ZZ Elements FDFElement EntryEncoding Property

EntryEncoding Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Encoding" entry of the fdf dictionary object.

Notes

Represents the "Encoding" entry of the fdf dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "PDFDocEncoding" if no value has been provided.

This item may take one of the following valid values:.

  • PDFDocEncoding
  • Shift
  • BigFive
  • GBK
  • UHC
  • utf

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 243, page 459.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 246, page 556.


ZZ Elements FDFElement EntryAnnots Property

EntryAnnots Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<AnnotationElement> [Visual Basic] ArrayElement<AnnotationElement> | null | No | Represents the "Annots" entry of the fdf dictionary object.

Notes

Represents the "Annots" entry of the fdf dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains an array which contains AnnotationElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 243, page 459.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 246, page 556.


ZZ Elements FDFElement EntryDifferences Property

EntryDifferences Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | No | Represents the "Differences" entry of the fdf dictionary object.

Notes

Represents the "Differences" entry of the fdf dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 243, page 460.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 246, page 557.


ZZ Elements FDFElement EntryTarget Property

EntryTarget Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Target" entry of the fdf dictionary object.

Notes

Represents the "Target" entry of the fdf dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 243, page 460.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 246, page 557.


ZZ Elements FDFElement EntryEmbeddedFDFs Property

EntryEmbeddedFDFs Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FileSpecificationElement> [Visual Basic] ArrayElement<FileSpecificationElement> | null | No | Represents the "EmbeddedFDFs" entry of the fdf dictionary object.

Notes

Represents the "EmbeddedFDFs" entry of the fdf dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains an array which contains FileSpecificationElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 243, page 460.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 246, page 557.


ZZ Elements FDFElement EntryJavaScript Property

EntryJavaScript Property

Type | Default Value | Read Only | Description
[C#] FDFJavaScriptElement [Visual Basic] FDFJavaScriptElement | null | No | Represents the "JavaScript" entry of the fdf dictionary object.

Notes

Represents the "JavaScript" entry of the fdf dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a FDFJavaScriptElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 243, page 460.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 246, page 557.


ZZ Elements FDFFieldElement

FDFFieldElement Class

This class represents the fdf field dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 246, page 461.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 249, page 559.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FDFFieldElement

Method | Description
FDFFieldElement | Create a new FDFFieldElement.
 | inherited methods...

Property | Description
EntryKids | Represents the "Kids" entry of the fdf field dictionary object.
EntryT | Represents the "T" entry of the fdf field dictionary object.
EntryV | Represents the "V" entry of the fdf field dictionary object.
EntryFf | Represents the "Ff" entry of the fdf field dictionary object.
EntrySetFf | Represents the "SetFf" entry of the fdf field dictionary object.
EntryClrFf | Represents the "ClrFf" entry of the fdf field dictionary object.
EntryF | Represents the "F" entry of the fdf field dictionary object.
EntrySetF | Represents the "SetF" entry of the fdf field dictionary object.
EntryClrF | Represents the "ClrF" entry of the fdf field dictionary object.
EntryAP | Represents the "AP" entry of the fdf field dictionary object.
EntryAPRef | Represents the "APRef" entry of the fdf field dictionary object.
EntryIF | Represents the "IF" entry of the fdf field dictionary object.
EntryOpt | Represents the "Opt" entry of the fdf field dictionary object.
EntryA | Represents the "A" entry of the fdf field dictionary object.
EntryAA | Represents the "AA" entry of the fdf field dictionary object.
EntryRV | Represents the "RV" entry of the fdf field dictionary object.
 | inherited properties...


ZZ Elements FDFFieldElement Constructor Function

FDFFieldElement Function

Create a new FDFFieldElement.

Syntax

[C#]
FDFFieldElement()
FDFFieldElement(Atom atom, IndirectObject host)
FDFFieldElement(IndirectObject obj)
FDFFieldElement(Element relation, CreationOptions options)

[Visual Basic]
FDFFieldElement()
FDFFieldElement(atom As Atom, host As IndirectObject)
FDFFieldElement(obj As IndirectObject)
FDFFieldElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FDFFieldElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FDFFieldElement EntryKids Property

EntryKids Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FieldElement> [Visual Basic] ArrayElement<FieldElement> | null | No | Represents the "Kids" entry of the fdf field dictionary object.

Notes

Represents the "Kids" entry of the fdf field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains FieldElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 246, page 461.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 249, page 559.


ZZ Elements FDFFieldElement EntryT Property

EntryT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "T" entry of the fdf field dictionary object.

Notes

Represents the "T" entry of the fdf field dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 246, page 461.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 249, page 559.


ZZ Elements FDFFieldElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "V" entry of the fdf field dictionary object.

Notes

Represents the "V" entry of the fdf field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of five different types:.

1) A string representing a PDF name object.

2) An array which contains strings, representing PDF string objects.

If you read the specification you will see that an array of one string may be represented as a single string rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

3) A Null.

4) A SignatureElement.

5) A StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 246, page 461.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 249, page 559.


ZZ Elements FDFFieldElement EntryFf Property

EntryFf Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Ff" entry of the fdf field dictionary object.

Notes

Represents the "Ff" entry of the fdf field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 246, page 461.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 249, page 559.


ZZ Elements FDFFieldElement EntrySetFf Property

EntrySetFf Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "SetFf" entry of the fdf field dictionary object.

Notes

Represents the "SetFf" entry of the fdf field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 246, page 461.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 249, page 559.


ZZ Elements FDFFieldElement EntryClrFf Property

EntryClrFf Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "ClrFf" entry of the fdf field dictionary object.

Notes

Represents the "ClrFf" entry of the fdf field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 246, page 462.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 249, page 559.


ZZ Elements FDFFieldElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "F" entry of the fdf field dictionary object.

Notes

Represents the "F" entry of the fdf field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 246, page 462.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 249, page 559.


ZZ Elements FDFFieldElement EntrySetF Property

EntrySetF Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "SetF" entry of the fdf field dictionary object.

Notes

Represents the "SetF" entry of the fdf field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 246, page 462.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 249, page 559.


ZZ Elements FDFFieldElement EntryClrF Property

EntryClrF Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "ClrF" entry of the fdf field dictionary object.

Notes

Represents the "ClrF" entry of the fdf field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 246, page 462.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 249, page 559.


ZZ Elements FDFFieldElement EntryAP Property

EntryAP Property

Type | Default Value | Read Only | Description
[C#] AppearanceElement [Visual Basic] AppearanceElement | null | No | Represents the "AP" entry of the fdf field dictionary object.

Notes

Represents the "AP" entry of the fdf field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an AppearanceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 246, page 462.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 249, page 560.


ZZ Elements FDFFieldElement EntryAPRef Property

EntryAPRef Property

Type | Default Value | Read Only | Description
[C#] AppearanceElement [Visual Basic] AppearanceElement | null | No | Represents the "APRef" entry of the fdf field dictionary object.

Notes

Represents the "APRef" entry of the fdf field dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains an AppearanceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 246, page 462.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 249, page 560.


ZZ Elements FDFFieldElement EntryIF Property

EntryIF Property

Type | Default Value | Read Only | Description
[C#] IconFitElement [Visual Basic] IconFitElement | null | No | Represents the "IF" entry of the fdf field dictionary object.

Notes

Represents the "IF" entry of the fdf field dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains an IconFitElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 246, page 462.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 249, page 560.


ZZ Elements FDFFieldElement EntryOpt Property

EntryOpt Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "Opt" entry of the fdf field dictionary object.

Notes

Represents the "Opt" entry of the fdf field dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 246, page 462.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 249, page 560.


ZZ Elements FDFFieldElement EntryA Property

EntryA Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "A" entry of the fdf field dictionary object.

Notes

Represents the "A" entry of the fdf field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an ActionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 246, page 462.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 249, page 560.


ZZ Elements FDFFieldElement EntryAA Property

EntryAA Property

Type | Default Value | Read Only | Description
[C#] FormFieldAdditionalActionsElement [Visual Basic] FormFieldAdditionalActionsElement | null | No | Represents the "AA" entry of the fdf field dictionary object.

Notes

Represents the "AA" entry of the fdf field dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a FormFieldAdditionalActionsElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 246, page 462.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 249, page 560.


ZZ Elements FDFFieldElement EntryRV Property

EntryRV Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "RV" entry of the fdf field dictionary object.

Notes

Represents the "RV" entry of the fdf field dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

This property may contain one of two different types:.

1) A string representing a PDF string object.

2) A TextStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 246, page 462.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 249, page 560.


ZZ Elements FDFJavaScriptElement

FDFJavaScriptElement Class

This class represents the fdf javascript dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 245, page 461.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 248, page 558.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FDFJavaScriptElement

Method | Description
FDFJavaScriptElement | Create a new FDFJavaScriptElement.
 | inherited methods...

Property | Description
EntryBefore | Represents the "Before" entry of the fdf javascript dictionary object.
EntryAfter | Represents the "After" entry of the fdf javascript dictionary object.
EntryAfterPermsReady | Represents the "AfterPermsReady" entry of the fdf javascript dictionary object.
EntryDoc | Represents the "Doc" entry of the fdf javascript dictionary object.
 | inherited properties...


ZZ Elements FDFJavaScriptElement Constructor Function

FDFJavaScriptElement Function

Create a new FDFJavaScriptElement.

Syntax

[C#]
FDFJavaScriptElement()
FDFJavaScriptElement(Atom atom, IndirectObject host)
FDFJavaScriptElement(IndirectObject obj)
FDFJavaScriptElement(Element relation, CreationOptions options)

[Visual Basic]
FDFJavaScriptElement()
FDFJavaScriptElement(atom As Atom, host As IndirectObject)
FDFJavaScriptElement(obj As IndirectObject)
FDFJavaScriptElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FDFJavaScriptElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FDFJavaScriptElement EntryBefore Property

EntryBefore Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Before" entry of the fdf javascript dictionary object.

Notes

Represents the "Before" entry of the fdf javascript dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF string object.

2) A TextStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 245, page 461.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 248, page 558.


ZZ Elements FDFJavaScriptElement EntryAfter Property

EntryAfter Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "After" entry of the fdf javascript dictionary object.

Notes

Represents the "After" entry of the fdf javascript dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF string object.

2) A TextStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 245, page 461.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 248, page 558.


ZZ Elements FDFJavaScriptElement EntryAfterPermsReady Property

EntryAfterPermsReady Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "AfterPermsReady" entry of the fdf javascript dictionary object.

Notes

Represents the "AfterPermsReady" entry of the fdf javascript dictionary object.

It is an optional entry defined as part of the PDF 1.6 specification.

This property may contain one of two different types:.

1) A string representing a PDF string object.

2) A TextStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 245, page 461.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 248, page 558.


ZZ Elements FDFJavaScriptElement EntryDoc Property

EntryDoc Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "Doc" entry of the fdf javascript dictionary object.

Notes

Represents the "Doc" entry of the fdf javascript dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 245, page 461.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 248, page 558.


ZZ Elements FDFPageElement

FDFPageElement Class

This class represents the fdf page dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 248, page 463.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 251, page 561.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FDFPageElement

Method | Description
FDFPageElement | Create a new FDFPageElement.
 | inherited methods...

Property | Description
EntryTemplates | Represents the "Templates" entry of the fdf page dictionary object.
EntryInfo | Represents the "Info" entry of the fdf page dictionary object.
 | inherited properties...


ZZ Elements FDFPageElement Constructor Function

FDFPageElement Function

Create a new FDFPageElement.

Syntax

[C#]
FDFPageElement()
FDFPageElement(Atom atom, IndirectObject host)
FDFPageElement(IndirectObject obj)
FDFPageElement(Element relation, CreationOptions options)

[Visual Basic]
FDFPageElement()
FDFPageElement(atom As Atom, host As IndirectObject)
FDFPageElement(obj As IndirectObject)
FDFPageElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FDFPageElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FDFPageElement EntryTemplates Property

EntryTemplates Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FDFTemplateElement> [Visual Basic] ArrayElement<FDFTemplateElement> | null | No | Represents the "Templates" entry of the fdf page dictionary object.

Notes

Represents the "Templates" entry of the fdf page dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains FDFTemplateElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 248, page 463.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 251, page 561.


ZZ Elements FDFPageElement EntryInfo Property

EntryInfo Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Info" entry of the fdf page dictionary object.

Notes

Represents the "Info" entry of the fdf page dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 248, page 463.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 251, page 561.


ZZ Elements IconFitElement

IconFitElement Class

This class represents the icon fit dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 247, page 463.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 250, page 560.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.IconFitElement

Method | Description
IconFitElement | Create a new IconFitElement.
 | inherited methods...

Property | Description
EntrySW | Represents the "SW" entry of the icon fit dictionary object.
EntryS | Represents the "S" entry of the icon fit dictionary object.
EntryA | Represents the "A" entry of the icon fit dictionary object.
EntryFB | Represents the "FB" entry of the icon fit dictionary object.
 | inherited properties...


ZZ Elements IconFitElement Constructor Function

IconFitElement Function

Create a new IconFitElement.

Syntax

[C#]
IconFitElement()
IconFitElement(Atom atom, IndirectObject host)
IconFitElement(IndirectObject obj)
IconFitElement(Element relation, CreationOptions options)

[Visual Basic]
IconFitElement()
IconFitElement(atom As Atom, host As IndirectObject)
IconFitElement(obj As IndirectObject)
IconFitElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new IconFitElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements IconFitElement EntrySW Property

EntrySW Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "SW" entry of the icon fit dictionary object.

Notes

Represents the "SW" entry of the icon fit dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "A" if no value has been provided.

This item may take one of the following valid values:.

  • A
  • B
  • S
  • N

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 247, page 463.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 250, page 560.


ZZ Elements IconFitElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the icon fit dictionary object.

Notes

Represents the "S" entry of the icon fit dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "P" if no value has been provided.

This item may take one of the following valid values:.

  • A
  • P

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 247, page 463.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 250, page 561.


ZZ Elements IconFitElement EntryA Property

EntryA Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "A" entry of the icon fit dictionary object.

Notes

Represents the "A" entry of the icon fit dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 247, page 463.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 250, page 561.


ZZ Elements IconFitElement EntryFB Property

EntryFB Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "FB" entry of the icon fit dictionary object.

Notes

Represents the "FB" entry of the icon fit dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 247, page 463.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 250, page 561.


ZZ Elements FDFNamedPageReferenceElement

FDFNamedPageReferenceElement Class

This class represents the fdf named page reference dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 250, page 464.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 253, page 562.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FDFNamedPageReferenceElement

Method | Description
FDFNamedPageReferenceElement | Create a new FDFNamedPageReferenceElement.
 | inherited methods...

Property | Description
EntryName | Represents the "Name" entry of the fdf named page reference dictionary object.
EntryF | Represents the "F" entry of the fdf named page reference dictionary object.
 | inherited properties...


ZZ Elements FDFNamedPageReferenceElement Constructor Function

FDFNamedPageReferenceElement Function

Create a new FDFNamedPageReferenceElement.

Syntax

[C#]
FDFNamedPageReferenceElement()
FDFNamedPageReferenceElement(Atom atom, IndirectObject host)
FDFNamedPageReferenceElement(IndirectObject obj)
FDFNamedPageReferenceElement(Element relation, CreationOptions options)

[Visual Basic]
FDFNamedPageReferenceElement()
FDFNamedPageReferenceElement(atom As Atom, host As IndirectObject)
FDFNamedPageReferenceElement(obj As IndirectObject)
FDFNamedPageReferenceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FDFNamedPageReferenceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FDFNamedPageReferenceElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Name" entry of the fdf named page reference dictionary object.

Notes

Represents the "Name" entry of the fdf named page reference dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 250, page 464.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 253, page 562.


ZZ Elements FDFNamedPageReferenceElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] FileSpecificationElement [Visual Basic] FileSpecificationElement | null | No | Represents the "F" entry of the fdf named page reference dictionary object.

Notes

Represents the "F" entry of the fdf named page reference dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a FileSpecificationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 250, page 464.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 253, page 562.


ZZ Elements FDFTemplateElement

FDFTemplateElement Class

This class represents the fdf template dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 249, page 464.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 252, page 562.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FDFTemplateElement

Method | Description
FDFTemplateElement | Create a new FDFTemplateElement.
 | inherited methods...

Property | Description
EntryTRef | Represents the "TRef" entry of the fdf template dictionary object.
EntryFields | Represents the "Fields" entry of the fdf template dictionary object.
EntryRename | Represents the "Rename" entry of the fdf template dictionary object.
 | inherited properties...


ZZ Elements FDFTemplateElement Constructor Function

FDFTemplateElement Function

Create a new FDFTemplateElement.

Syntax

[C#]
FDFTemplateElement()
FDFTemplateElement(Atom atom, IndirectObject host)
FDFTemplateElement(IndirectObject obj)
FDFTemplateElement(Element relation, CreationOptions options)

[Visual Basic]
FDFTemplateElement()
FDFTemplateElement(atom As Atom, host As IndirectObject)
FDFTemplateElement(obj As IndirectObject)
FDFTemplateElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FDFTemplateElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FDFTemplateElement EntryTRef Property

EntryTRef Property

Type | Default Value | Read Only | Description
[C#] FDFNamedPageReferenceElement [Visual Basic] FDFNamedPageReferenceElement | null | No | Represents the "TRef" entry of the fdf template dictionary object.

Notes

Represents the "TRef" entry of the fdf template dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a FDFNamedPageReferenceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 249, page 464.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 252, page 562.


ZZ Elements FDFTemplateElement EntryFields Property

EntryFields Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FieldElement> [Visual Basic] ArrayElement<FieldElement> | null | No | Represents the "Fields" entry of the fdf template dictionary object.

Notes

Represents the "Fields" entry of the fdf template dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains FieldElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 249, page 464.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 252, page 562.


ZZ Elements FDFTemplateElement EntryRename Property

EntryRename Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "Rename" entry of the fdf template dictionary object.

Notes

Represents the "Rename" entry of the fdf template dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of true if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 249, page 464.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 252, page 562.


ZZ Elements SignatureElement

SignatureElement Class

This class represents the signature dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.

This class is always an indirect object because PermissionsElement.EntryDocMDP requires it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.SignatureElement

Method | Description
SignatureElement | Create a new SignatureElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the signature dictionary object.
EntryFilter | Represents the "Filter" entry of the signature dictionary object.
EntrySubFilter | Represents the "SubFilter" entry of the signature dictionary object.
EntryContents | Represents the "Contents" entry of the signature dictionary object.
EntryCert | Represents the "Cert" entry of the signature dictionary object.
EntryByteRange | Represents the "ByteRange" entry of the signature dictionary object.
EntryReference | Represents the "Reference" entry of the signature dictionary object.
EntryChanges | Represents the "Changes" entry of the signature dictionary object.
EntryName | Represents the "Name" entry of the signature dictionary object.
EntryM | Represents the "M" entry of the signature dictionary object.
EntryLocation | Represents the "Location" entry of the signature dictionary object.
EntryReason | Represents the "Reason" entry of the signature dictionary object.
EntryContactInfo | Represents the "ContactInfo" entry of the signature dictionary object.
EntryR | Represents the "R" entry of the signature dictionary object.
EntryV | Represents the "V" entry of the signature dictionary object.
EntryProp_Build | Represents the "Prop_Build" entry of the signature dictionary object.
EntryProp_AuthTime | Represents the "Prop_AuthTime" entry of the signature dictionary object.
EntryProp_AuthType | Represents the "Prop_AuthType" entry of the signature dictionary object.
 | inherited properties...


ZZ Elements SignatureElement Constructor Function

SignatureElement Function

Create a new SignatureElement.

Syntax

[C#]
SignatureElement()
SignatureElement(Atom atom, IndirectObject host)
SignatureElement(IndirectObject obj)
SignatureElement(Element relation, CreationOptions options)

[Visual Basic]
SignatureElement()
SignatureElement(atom As Atom, host As IndirectObject)
SignatureElement(obj As IndirectObject)
SignatureElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SignatureElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 666 in the Annotations example project.

[C#]

CommitSignature();

CatalogElement cat = new CatalogElement(Doc.ObjectSoup.Catalog);
cat.EntryAcroForm.EntrySigFlags = 3;

// NB If you don't want your signature to print then set the /F flag to 0
int fieldID = Doc.AddObject("<</Type /Annot /Subtype /Widget /F 4 /FT /Sig /DA (/TimesRoman 0 Tf 0 g)>>");
WidgetAnnotationElement widget = new WidgetAnnotationElement(Doc.ObjectSoup[fieldID]);
SignatureFieldElement field = (SignatureFieldElement)widget.FieldElement;
int sigDictID = Doc.AddObject("<</Type /Sig /Filter /Adobe.PPKLite /SubFilter /adbe.pkcs7.detached>>");
SignatureElement signature = new SignatureElement(Doc.ObjectSoup[sigDictID]);
if (inLocked) {
  IndirectObject io = IndirectObject.FromString("<< /Type /SigFieldLock /Action /All /P 1 >>");
  field.Host.Soup.Add(io);
  SignatureFieldLockElement sigFieldLock = new SignatureFieldLockElement(io);
  field.EntryLock = sigFieldLock;
  field.Object.Version = 5; // PDF 1.5
}
field.EntryV = signature;
FormField formField = new FormField(this, inName, field.Object.ID);
formField.Widget.Rect = new XRect(inRect);

Doc.Form.Refresh();
mSig = (Signature)Doc.Form[inName];
sign(mSig);
if (inReason != null)
  signature.EntryReason = inReason;
if (inLocation != null)
  signature.EntryLocation = inLocation;
if (mSig.Signer != null)
  signature.EntryName = mSig.Signer;

if (mCertify) {
  // make it PDF 1.6, see the second point under "Validating MDP signatures" in the PDF reference
  signature.Object.Version = 6;
  // make signature MDP
  int id = Doc.AddObject("<</Type /SigRef /TransformMethod /DocMDP /TransformParams <</Type /TransformParams /P 2 /V /1.2>>>>");
  SignatureReferenceElement sigRef = new SignatureReferenceElement(Doc.ObjectSoup[id]);
  signature.EntryReference = new ArrayElement<SignatureReferenceElement>(signature);
  signature.EntryReference.Add(sigRef);
  if (cat.EntryPerms == null)
    cat.EntryPerms = new PermissionsElement(cat);
  cat.EntryPerms.EntryDocMDP = signature;
}

if ((inAppearanceTextFormat != null) || (inImage != null)) {
  XRect rect = widget.EntryRect.GetRect();
  rect.Pin = XRect.Corner.TopLeft;
  if (inAppearanceTextFormat != null) {
    rect.Width = 200; // Change this to fit the Text
    rect.Height = 60; // Change this to fit the Text
  }
  widget.EntryRect.SetRect(rect);
  rect = rect.Clone();
  rect.Pin = XRect.Corner.BottomLeft;
  rect.Position(0, 0);
  if (inImage != null) {
    XRect imgRect = XRect.FromSides(0, 0, inImage.Width, inImage.Height);
    imgRect.FitIn(rect, ContentAlign.Center, ContentScaleMode.ExactFit);
    rect.String = imgRect.String;
  }

  double validityMessageHeight = 0;
  int fontSize = 12;
  if (mShowSignatureValidity) {
    validityMessageHeight = Math.Min(0.3 * rect.Height, 0.1 * rect.Width);
    fontSize = 8;
  }

  string theRect = Doc.Rect.String;
  int theFont = Doc.Font;
  int theFontSize = Doc.FontSize;
  double charSpacing = Doc.TextStyle.CharSpacing;
  double lineSpacing = Doc.TextStyle.LineSpacing;
  int pageID = Doc.Page;

  // Use a detached page to avoid changes to the current page
  // or to the page tree for a new page
  Doc.Page = Doc.AddObject("<</Type /Page /MediaBox [" + rect.String + "] >>");
  Doc.Rect.String = rect.String;

  StringBuilder apStream = new StringBuilder();

  string imageResName = null;
  int imageID = 0;
  if (inImage != null) {
    int imageLayerID = Doc.AddImage(inImage);
    string imageStream = Doc.GetInfo(imageLayerID, "Stream");
    ImageLayer il = (ImageLayer)Doc.ObjectSoup[imageLayerID];
    imageID = il.PixMap.ID;
    Doc.Delete(imageLayerID);
    int l1 = imageStream.IndexOf("/Iabc", 0, imageStream.Length);
    int l2 = imageStream.IndexOf(" ", l1, imageStream.Length - l1);
    imageResName = imageStream.Substring(l1 + 1, l2 - l1 - 1);
    apStream.Append(imageStream);
    apStream.AppendLine();
  }

  string fontResName = null;
  int fontID = 0;
  if (inAppearanceTextFormat != null) {
    if (validityMessageHeight != 0)
      Doc.Rect.Top -= validityMessageHeight;
    fontID = Doc.AddFont("Times-Roman");
    Doc.Font = fontID;
    Doc.FontSize = fontSize;
    Doc.TextStyle.CharSpacing = 0;
    Doc.TextStyle.LineSpacing = 2;
    string text = string.Format(inAppearanceTextFormat, mSig.Signer, mSig.SigningUtcTime, inReason, inLocation);
    int textID = Doc.AddText(text);
    string textStream = Doc.GetInfo(textID, "Stream");
    Doc.Delete(textID);
    int l1 = textStream.IndexOf("/Fabc", 0, textStream.Length);
    int l2 = textStream.IndexOf(" ", l1, textStream.Length - l1);
    fontResName = textStream.Substring(l1 + 1, l2 - l1 - 1);
    apStream.Append(textStream);
    apStream.AppendLine();
  }

  Doc.Delete(Doc.Page);
  Doc.Page = pageID;
  Doc.Rect.String = theRect;
  Doc.Font = theFont;
  Doc.FontSize = theFontSize;
  Doc.TextStyle.CharSpacing = charSpacing;
  Doc.TextStyle.LineSpacing = lineSpacing;

  FormXObjectElement appearance = MakeAppearance(rect, imageResName, imageID, fontResName, fontID, apStream.ToString());

  if (mShowSignatureValidity) {
    if (mBlankAppearance == null)
      mBlankAppearance = MakeAppearance(XRect.FromSides(0, 0, 100, 100), null, 0, null, 0, "");

    XRect clone = rect.Clone();
    clone.Bottom = rect.Top - validityMessageHeight;
    FormXObjectElement validityAppearance = MakeAppearance(clone, null, 0, fontResName, fontID, "");

    double side = 0.9 * Math.Min(rect.Width, rect.Height);
    string contents = string.Format(NumberFormatInfo.InvariantInfo,
      "q 1 0 0 1 0 0 cm /n0 Do Q"
      + "\r\nq {0:0.#####} 0 0 {0:0.#####} {1:0.#####} {2:0.#####} cm /n1 Do Q"
      + "\r\nq 1 0 0 1 0 0 cm /n2 Do Q"
      + "\r\nq {0:0.#####} 0 0 {0:0.#####} {1:0.#####} {2:0.#####} cm /n3 Do Q"
      + "\r\nq 1 0 0 1 0 0 cm /n4 Do Q"
      + "\r\n", side / 100, (rect.Width - side) / 2, (rect.Height - side) / 2);
    FormXObjectElement frmElement = MakeAppearance(rect, "", 0, null, 0, contents);
    frmElement.EntryResources.EntryXObject.Add("n0", mBlankAppearance);
    frmElement.EntryResources.EntryXObject.Add("n1", mBlankAppearance);
    frmElement.EntryResources.EntryXObject.Add("n2", appearance);
    frmElement.EntryResources.EntryXObject.Add("n3", mBlankAppearance);
    frmElement.EntryResources.EntryXObject.Add("n4", validityAppearance);

    appearance = MakeAppearance(rect, "", 0, null, 0, "q 1 0 0 1 0 0 cm /FRM Do Q\r\n");
    appearance.EntryResources.EntryXObject.Add("FRM", frmElement);
  }

  widget.EntryAP = new AppearanceElement(widget);
  widget.EntryAP.EntryN = appearance;
}

return formField;

[VB]

CommitSignature()

Dim cat As New CatalogElement(Doc.ObjectSoup.Catalog)
cat.EntryAcroForm.EntrySigFlags = 3

' NB If you don't want your signature to print then set the /F flag to 0
Dim fieldID As Integer = Doc.AddObject("<</Type /Annot /Subtype /Widget /F 4 /FT /Sig /DA (/TimesRoman 0 Tf 0 g)>>")
Dim widget As New WidgetAnnotationElement(Doc.ObjectSoup(fieldID))
Dim field As SignatureFieldElement = CType(widget.FieldElement, SignatureFieldElement)
Dim sigDictID As Integer = Doc.AddObject("<</Type /Sig /Filter /Adobe.PPKLite /SubFilter /adbe.pkcs7.detached>>")
Dim signature As New SignatureElement(Doc.ObjectSoup(sigDictID))
If inLocked Then
  Dim io As IndirectObject = IndirectObject.FromString("<< /Type /SigFieldLock /Action /All /P 1 >>")
  field.Host.Soup.Add(io)
  Dim sigFieldLock As New SignatureFieldLockElement(io)
  field.EntryLock = sigFieldLock
  field.Object.Version = 5 ' PDF 1.5
End If
field.EntryV = signature
Dim formField As New FormField(Me, inName, field.Object.ID)
formField.Widget.Rect = New XRect(inRect)

Doc.Form.Refresh()
mSig = CType(Doc.Form(inName), Signature)
sign(mSig)
If inReason IsNot Nothing Then
  signature.EntryReason = inReason
End If
If inLocation IsNot Nothing Then
  signature.EntryLocation = inLocation
End If
If mSig.Signer IsNot Nothing Then
  signature.EntryName = mSig.Signer
End If

If mCertify Then
  ' make it PDF 1.6, see the second point under "Validating MDP signatures" in the PDF reference
  signature.Object.Version = 6
  ' make signature MDP
  Dim id As Integer = Doc.AddObject("<</Type /SigRef /TransformMethod /DocMDP /TransformParams <</Type /TransformParams /P 2 /V /1.2>>>>")
  Dim sigRef As New SignatureReferenceElement(Doc.ObjectSoup(id))
  signature.EntryReference = New ArrayElement(Of SignatureReferenceElement)(signature)
  signature.EntryReference.Add(sigRef)
  If cat.EntryPerms Is Nothing Then
    cat.EntryPerms = New PermissionsElement(cat)
  End If
  cat.EntryPerms.EntryDocMDP = signature
End If

If (inAppearanceTextFormat IsNot Nothing) OrElse (inImage IsNot Nothing) Then
  Dim rect As XRect = widget.EntryRect.GetRect()
  rect.Pin = XRect.Corner.TopLeft
  If inAppearanceTextFormat IsNot Nothing Then
    rect.Width = 200 ' Change this to fit the Text
    rect.Height = 60 ' Change this to fit the Text
  End If
  widget.EntryRect.SetRect(rect)
  rect = rect.Clone()
  rect.Pin = XRect.Corner.BottomLeft
  rect.Position(0, 0)
  If inImage IsNot Nothing Then
    Dim imgRect As XRect = XRect.FromSides(0, 0, inImage.Width, inImage.Height)
    imgRect.FitIn(rect, ContentAlign.Center, ContentScaleMode.ExactFit)
    rect.String = imgRect.String
  End If

  Dim validityMessageHeight As Double = 0
  Dim fontSize As Integer = 12
  If mShowSignatureValidity Then
    validityMessageHeight = Math.Min(0.3 * rect.Height, 0.1 * rect.Width)
    fontSize = 8
  End If

  Dim theRect As String = Doc.Rect.String
  Dim theFont As Integer = Doc.Font
  Dim theFontSize As Integer = Doc.FontSize
  Dim charSpacing As Double = Doc.TextStyle.CharSpacing
  Dim lineSpacing As Double = Doc.TextStyle.LineSpacing
  Dim pageID As Integer = Doc.Page

  ' Use a detached page to avoid changes to the current page
  ' or to the page tree for a new page
  Doc.Page = Doc.AddObject("<</Type /Page /MediaBox [" & rect.String & "] >>")
  Doc.Rect.String = rect.String

  Dim apStream As New StringBuilder()

  Dim imageResName As String = Nothing
  Dim imageID As Integer = 0
  If inImage IsNot Nothing Then
    Dim imageLayerID As Integer = Doc.AddImage(inImage)
    Dim imageStream As String = Doc.GetInfo(imageLayerID, "Stream")
    Dim il As ImageLayer = CType(Doc.ObjectSoup(imageLayerID), ImageLayer)
    imageID = il.PixMap.ID
    Doc.Delete(imageLayerID)
    Dim l1 As Integer = imageStream.IndexOf("/Iabc", 0, imageStream.Length)
    Dim l2 As Integer = imageStream.IndexOf(" ", l1, imageStream.Length - l1)
    imageResName = imageStream.Substring(l1 + 1, l2 - l1 - 1)
    apStream.Append(imageStream)
    apStream.AppendLine()
  End If

  Dim fontResName As String = Nothing
  Dim fontID As Integer = 0
  If inAppearanceTextFormat IsNot Nothing Then
    If validityMessageHeight <> 0 Then
      Doc.Rect.Top -= validityMessageHeight
    End If
    fontID = Doc.AddFont("Times-Roman")
    Doc.Font = fontID
    Doc.FontSize = fontSize
    Doc.TextStyle.CharSpacing = 0
    Doc.TextStyle.LineSpacing = 2
    Dim text As String = String.Format(inAppearanceTextFormat, mSig.Signer, mSig.SigningUtcTime, inReason, inLocation)
    Dim textID As Integer = Doc.AddText(text)
    Dim textStream As String = Doc.GetInfo(textID, "Stream")
    Doc.Delete(textID)
    Dim l1 As Integer = textStream.IndexOf("/Fabc", 0, textStream.Length)
    Dim l2 As Integer = textStream.IndexOf(" ", l1, textStream.Length - l1)
    fontResName = textStream.Substring(l1 + 1, l2 - l1 - 1)
    apStream.Append(textStream)
    apStream.AppendLine()
  End If

  Doc.Delete(Doc.Page)
  Doc.Page = pageID
  Doc.Rect.String = theRect
  Doc.Font = theFont
  Doc.FontSize = theFontSize
  Doc.TextStyle.CharSpacing = charSpacing
  Doc.TextStyle.LineSpacing = lineSpacing

  Dim appearance As FormXObjectElement = MakeAppearance(rect, imageResName, imageID, fontResName, fontID, apStream.ToString())

  If mShowSignatureValidity Then
    If mBlankAppearance Is Nothing Then
      mBlankAppearance = MakeAppearance(XRect.FromSides(0, 0, 100, 100), Nothing, 0, Nothing, 0, "")
    End If

    Dim clone As XRect = rect.Clone()
    clone.Bottom = rect.Top - validityMessageHeight
    Dim validityAppearance As FormXObjectElement = MakeAppearance(clone, Nothing, 0, fontResName, fontID, "")

    Dim side As Double = 0.9 * Math.Min(rect.Width, rect.Height)
    Dim contents As String = String.Format(NumberFormatInfo.InvariantInfo, "q 1 0 0 1 0 0 cm /n0 Do Q" & vbCrLf & "q {0:0.#####} 0 0 {0:0.#####} {1:0.#####} {2:0.#####} cm /n1 Do Q" & vbCrLf & "q 1 0 0 1 0 0 cm /n2 Do Q" & vbCrLf & "q {0:0.#####} 0 0 {0:0.#####} {1:0.#####} {2:0.#####} cm /n3 Do Q" & vbCrLf & "q 1 0 0 1 0 0 cm /n4 Do Q" & vbCrLf, side / 100, (rect.Width - side) / 2, (rect.Height - side) / 2)
    Dim frmElement As FormXObjectElement = MakeAppearance(rect, "", 0, Nothing, 0, contents)
    frmElement.EntryResources.EntryXObject.Add("n0", mBlankAppearance)
    frmElement.EntryResources.EntryXObject.Add("n1", mBlankAppearance)
    frmElement.EntryResources.EntryXObject.Add("n2", appearance)
    frmElement.EntryResources.EntryXObject.Add("n3", mBlankAppearance)
    frmElement.EntryResources.EntryXObject.Add("n4", validityAppearance)

    appearance = MakeAppearance(rect, "", 0, Nothing, 0, "q 1 0 0 1 0 0 cm /FRM Do Q" & vbCrLf)
    appearance.EntryResources.EntryXObject.Add("FRM", frmElement)
  End If

  widget.EntryAP = New AppearanceElement(widget)
  widget.EntryAP.EntryN = appearance
End If

Return formField


ZZ Elements SignatureElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the signature dictionary object.

Notes

Represents the "Type" entry of the signature dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Sig".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements SignatureElement EntryFilter Property

EntryFilter Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Filter" entry of the signature dictionary object.

Notes

Represents the "Filter" entry of the signature dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The specification defines this as exensible which means that it may contain entries in addition to those defined in the specification.

In fact almost all objects are extensible but the fact that it is explicitly mentioned, implies that extra entries should be regarded as normal rather than exceptional.

For further details see The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: Annex E, page 673..

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements SignatureElement EntrySubFilter Property

EntrySubFilter Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "SubFilter" entry of the signature dictionary object.

Notes

Represents the "SubFilter" entry of the signature dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification.

It contains a string representing a PDF name object.

The specification defines this as exensible which means that it may contain entries in addition to those defined in the specification.

In fact almost all objects are extensible but the fact that it is explicitly mentioned, implies that extra entries should be regarded as normal rather than exceptional.

For further details see The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: Annex E, page 673..

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 467.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements SignatureElement EntryContents Property

EntryContents Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Contents" entry of the signature dictionary object.

Notes

Represents the "Contents" entry of the signature dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 468.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 565.


ZZ Elements SignatureElement EntryCert Property

EntryCert Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Cert" entry of the signature dictionary object.

Notes

Represents the "Cert" entry of the signature dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

If you read the specification you will see that an array of one string may be represented as a single string rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 468.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 566.


ZZ Elements SignatureElement EntryByteRange Property

EntryByteRange Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "ByteRange" entry of the signature dictionary object.

Notes

Represents the "ByteRange" entry of the signature dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an array which contains integers, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 468.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 566.


ZZ Elements SignatureElement EntryReference Property

EntryReference Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<SignatureReferenceElement> [Visual Basic] ArrayElement<SignatureReferenceElement> | null | No | Represents the "Reference" entry of the signature dictionary object.

Notes

Represents the "Reference" entry of the signature dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an array which contains SignatureReferenceElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 468.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 566.


ZZ Elements SignatureElement EntryChanges Property

EntryChanges Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "Changes" entry of the signature dictionary object.

Notes

Represents the "Changes" entry of the signature dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains integers, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 468.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 566.


ZZ Elements SignatureElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Name" entry of the signature dictionary object.

Notes

Represents the "Name" entry of the signature dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 468.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 566.


ZZ Elements SignatureElement EntryM Property

EntryM Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "M" entry of the signature dictionary object.

Notes

Represents the "M" entry of the signature dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a date string. For details see the StringAtom.DateToString and StringAtom.StringToDate functions.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 468.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 566.


ZZ Elements SignatureElement EntryLocation Property

EntryLocation Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Location" entry of the signature dictionary object.

Notes

Represents the "Location" entry of the signature dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 468.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 567.


ZZ Elements SignatureElement EntryReason Property

EntryReason Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Reason" entry of the signature dictionary object.

Notes

Represents the "Reason" entry of the signature dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 468.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 567.


ZZ Elements SignatureElement EntryContactInfo Property

EntryContactInfo Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ContactInfo" entry of the signature dictionary object.

Notes

Represents the "ContactInfo" entry of the signature dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 468.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 567.


ZZ Elements SignatureElement EntryR Property

EntryR Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "R" entry of the signature dictionary object.

Notes

Represents the "R" entry of the signature dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 469.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 567.


ZZ Elements SignatureElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "V" entry of the signature dictionary object.

Notes

Represents the "V" entry of the signature dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 469.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 567.


ZZ Elements SignatureElement EntryProp_Build Property

EntryProp_Build Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Prop_Build" entry of the signature dictionary object.

Notes

Represents the "Prop_Build" entry of the signature dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 469.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 567.


ZZ Elements SignatureElement EntryProp_AuthTime Property

EntryProp_AuthTime Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Prop_AuthTime" entry of the signature dictionary object.

Notes

Represents the "Prop_AuthTime" entry of the signature dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 469.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 567.


ZZ Elements SignatureElement EntryProp_AuthType Property

EntryProp_AuthType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Prop_AuthType" entry of the signature dictionary object.

Notes

Represents the "Prop_AuthType" entry of the signature dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • PIN
  • Password
  • Fingerprint

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 252, page 469.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 255, page 567.


ZZ Elements SignatureReferenceElement

SignatureReferenceElement Class

This class represents the signature reference dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 253, page 469.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 256, page 568.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.SignatureReferenceElement

Method | Description
SignatureReferenceElement | Create a new SignatureReferenceElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the signature reference dictionary object.
EntryTransformMethod | Represents the "TransformMethod" entry of the signature reference dictionary object.
EntryTransformParams | Represents the "TransformParams" entry of the signature reference dictionary object.
EntryData | Represents the "Data" entry of the signature reference dictionary object.
EntryDigestMethod | Represents the "DigestMethod" entry of the signature reference dictionary object.
 | inherited properties...


ZZ Elements SignatureReferenceElement Constructor Function

SignatureReferenceElement Function

Create a new SignatureReferenceElement.

Syntax

[C#]
SignatureReferenceElement()
SignatureReferenceElement(Atom atom, IndirectObject host)
SignatureReferenceElement(IndirectObject obj)
SignatureReferenceElement(Element relation, CreationOptions options)

[Visual Basic]
SignatureReferenceElement()
SignatureReferenceElement(atom As Atom, host As IndirectObject)
SignatureReferenceElement(obj As IndirectObject)
SignatureReferenceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SignatureReferenceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 666 in the Annotations example project.

[C#]

CommitSignature();

CatalogElement cat = new CatalogElement(Doc.ObjectSoup.Catalog);
cat.EntryAcroForm.EntrySigFlags = 3;

// NB If you don't want your signature to print then set the /F flag to 0
int fieldID = Doc.AddObject("<</Type /Annot /Subtype /Widget /F 4 /FT /Sig /DA (/TimesRoman 0 Tf 0 g)>>");
WidgetAnnotationElement widget = new WidgetAnnotationElement(Doc.ObjectSoup[fieldID]);
SignatureFieldElement field = (SignatureFieldElement)widget.FieldElement;
int sigDictID = Doc.AddObject("<</Type /Sig /Filter /Adobe.PPKLite /SubFilter /adbe.pkcs7.detached>>");
SignatureElement signature = new SignatureElement(Doc.ObjectSoup[sigDictID]);
if (inLocked) {
  IndirectObject io = IndirectObject.FromString("<< /Type /SigFieldLock /Action /All /P 1 >>");
  field.Host.Soup.Add(io);
  SignatureFieldLockElement sigFieldLock = new SignatureFieldLockElement(io);
  field.EntryLock = sigFieldLock;
  field.Object.Version = 5; // PDF 1.5
}
field.EntryV = signature;
FormField formField = new FormField(this, inName, field.Object.ID);
formField.Widget.Rect = new XRect(inRect);

Doc.Form.Refresh();
mSig = (Signature)Doc.Form[inName];
sign(mSig);
if (inReason != null)
  signature.EntryReason = inReason;
if (inLocation != null)
  signature.EntryLocation = inLocation;
if (mSig.Signer != null)
  signature.EntryName = mSig.Signer;

if (mCertify) {
  // make it PDF 1.6, see the second point under "Validating MDP signatures" in the PDF reference
  signature.Object.Version = 6;
  // make signature MDP
  int id = Doc.AddObject("<</Type /SigRef /TransformMethod /DocMDP /TransformParams <</Type /TransformParams /P 2 /V /1.2>>>>");
  SignatureReferenceElement sigRef = new SignatureReferenceElement(Doc.ObjectSoup[id]);
  signature.EntryReference = new ArrayElement<SignatureReferenceElement>(signature);
  signature.EntryReference.Add(sigRef);
  if (cat.EntryPerms == null)
    cat.EntryPerms = new PermissionsElement(cat);
  cat.EntryPerms.EntryDocMDP = signature;
}

if ((inAppearanceTextFormat != null) || (inImage != null)) {
  XRect rect = widget.EntryRect.GetRect();
  rect.Pin = XRect.Corner.TopLeft;
  if (inAppearanceTextFormat != null) {
    rect.Width = 200; // Change this to fit the Text
    rect.Height = 60; // Change this to fit the Text
  }
  widget.EntryRect.SetRect(rect);
  rect = rect.Clone();
  rect.Pin = XRect.Corner.BottomLeft;
  rect.Position(0, 0);
  if (inImage != null) {
    XRect imgRect = XRect.FromSides(0, 0, inImage.Width, inImage.Height);
    imgRect.FitIn(rect, ContentAlign.Center, ContentScaleMode.ExactFit);
    rect.String = imgRect.String;
  }

  double validityMessageHeight = 0;
  int fontSize = 12;
  if (mShowSignatureValidity) {
    validityMessageHeight = Math.Min(0.3 * rect.Height, 0.1 * rect.Width);
    fontSize = 8;
  }

  string theRect = Doc.Rect.String;
  int theFont = Doc.Font;
  int theFontSize = Doc.FontSize;
  double charSpacing = Doc.TextStyle.CharSpacing;
  double lineSpacing = Doc.TextStyle.LineSpacing;
  int pageID = Doc.Page;

  // Use a detached page to avoid changes to the current page
  // or to the page tree for a new page
  Doc.Page = Doc.AddObject("<</Type /Page /MediaBox [" + rect.String + "] >>");
  Doc.Rect.String = rect.String;

  StringBuilder apStream = new StringBuilder();

  string imageResName = null;
  int imageID = 0;
  if (inImage != null) {
    int imageLayerID = Doc.AddImage(inImage);
    string imageStream = Doc.GetInfo(imageLayerID, "Stream");
    ImageLayer il = (ImageLayer)Doc.ObjectSoup[imageLayerID];
    imageID = il.PixMap.ID;
    Doc.Delete(imageLayerID);
    int l1 = imageStream.IndexOf("/Iabc", 0, imageStream.Length);
    int l2 = imageStream.IndexOf(" ", l1, imageStream.Length - l1);
    imageResName = imageStream.Substring(l1 + 1, l2 - l1 - 1);
    apStream.Append(imageStream);
    apStream.AppendLine();
  }

  string fontResName = null;
  int fontID = 0;
  if (inAppearanceTextFormat != null) {
    if (validityMessageHeight != 0)
      Doc.Rect.Top -= validityMessageHeight;
    fontID = Doc.AddFont("Times-Roman");
    Doc.Font = fontID;
    Doc.FontSize = fontSize;
    Doc.TextStyle.CharSpacing = 0;
    Doc.TextStyle.LineSpacing = 2;
    string text = string.Format(inAppearanceTextFormat, mSig.Signer, mSig.SigningUtcTime, inReason, inLocation);
    int textID = Doc.AddText(text);
    string textStream = Doc.GetInfo(textID, "Stream");
    Doc.Delete(textID);
    int l1 = textStream.IndexOf("/Fabc", 0, textStream.Length);
    int l2 = textStream.IndexOf(" ", l1, textStream.Length - l1);
    fontResName = textStream.Substring(l1 + 1, l2 - l1 - 1);
    apStream.Append(textStream);
    apStream.AppendLine();
  }

  Doc.Delete(Doc.Page);
  Doc.Page = pageID;
  Doc.Rect.String = theRect;
  Doc.Font = theFont;
  Doc.FontSize = theFontSize;
  Doc.TextStyle.CharSpacing = charSpacing;
  Doc.TextStyle.LineSpacing = lineSpacing;

  FormXObjectElement appearance = MakeAppearance(rect, imageResName, imageID, fontResName, fontID, apStream.ToString());

  if (mShowSignatureValidity) {
    if (mBlankAppearance == null)
      mBlankAppearance = MakeAppearance(XRect.FromSides(0, 0, 100, 100), null, 0, null, 0, "");

    XRect clone = rect.Clone();
    clone.Bottom = rect.Top - validityMessageHeight;
    FormXObjectElement validityAppearance = MakeAppearance(clone, null, 0, fontResName, fontID, "");

    double side = 0.9 * Math.Min(rect.Width, rect.Height);
    string contents = string.Format(NumberFormatInfo.InvariantInfo,
      "q 1 0 0 1 0 0 cm /n0 Do Q"
      + "\r\nq {0:0.#####} 0 0 {0:0.#####} {1:0.#####} {2:0.#####} cm /n1 Do Q"
      + "\r\nq 1 0 0 1 0 0 cm /n2 Do Q"
      + "\r\nq {0:0.#####} 0 0 {0:0.#####} {1:0.#####} {2:0.#####} cm /n3 Do Q"
      + "\r\nq 1 0 0 1 0 0 cm /n4 Do Q"
      + "\r\n", side / 100, (rect.Width - side) / 2, (rect.Height - side) / 2);
    FormXObjectElement frmElement = MakeAppearance(rect, "", 0, null, 0, contents);
    frmElement.EntryResources.EntryXObject.Add("n0", mBlankAppearance);
    frmElement.EntryResources.EntryXObject.Add("n1", mBlankAppearance);
    frmElement.EntryResources.EntryXObject.Add("n2", appearance);
    frmElement.EntryResources.EntryXObject.Add("n3", mBlankAppearance);
    frmElement.EntryResources.EntryXObject.Add("n4", validityAppearance);

    appearance = MakeAppearance(rect, "", 0, null, 0, "q 1 0 0 1 0 0 cm /FRM Do Q\r\n");
    appearance.EntryResources.EntryXObject.Add("FRM", frmElement);
  }

  widget.EntryAP = new AppearanceElement(widget);
  widget.EntryAP.EntryN = appearance;
}

return formField;

[VB]

CommitSignature()

Dim cat As New CatalogElement(Doc.ObjectSoup.Catalog)
cat.EntryAcroForm.EntrySigFlags = 3

' NB If you don't want your signature to print then set the /F flag to 0
Dim fieldID As Integer = Doc.AddObject("<</Type /Annot /Subtype /Widget /F 4 /FT /Sig /DA (/TimesRoman 0 Tf 0 g)>>")
Dim widget As New WidgetAnnotationElement(Doc.ObjectSoup(fieldID))
Dim field As SignatureFieldElement = CType(widget.FieldElement, SignatureFieldElement)
Dim sigDictID As Integer = Doc.AddObject("<</Type /Sig /Filter /Adobe.PPKLite /SubFilter /adbe.pkcs7.detached>>")
Dim signature As New SignatureElement(Doc.ObjectSoup(sigDictID))
If inLocked Then
  Dim io As IndirectObject = IndirectObject.FromString("<< /Type /SigFieldLock /Action /All /P 1 >>")
  field.Host.Soup.Add(io)
  Dim sigFieldLock As New SignatureFieldLockElement(io)
  field.EntryLock = sigFieldLock
  field.Object.Version = 5 ' PDF 1.5
End If
field.EntryV = signature
Dim formField As New FormField(Me, inName, field.Object.ID)
formField.Widget.Rect = New XRect(inRect)

Doc.Form.Refresh()
mSig = CType(Doc.Form(inName), Signature)
sign(mSig)
If inReason IsNot Nothing Then
  signature.EntryReason = inReason
End If
If inLocation IsNot Nothing Then
  signature.EntryLocation = inLocation
End If
If mSig.Signer IsNot Nothing Then
  signature.EntryName = mSig.Signer
End If

If mCertify Then
  ' make it PDF 1.6, see the second point under "Validating MDP signatures" in the PDF reference
  signature.Object.Version = 6
  ' make signature MDP
  Dim id As Integer = Doc.AddObject("<</Type /SigRef /TransformMethod /DocMDP /TransformParams <</Type /TransformParams /P 2 /V /1.2>>>>")
  Dim sigRef As New SignatureReferenceElement(Doc.ObjectSoup(id))
  signature.EntryReference = New ArrayElement(Of SignatureReferenceElement)(signature)
  signature.EntryReference.Add(sigRef)
  If cat.EntryPerms Is Nothing Then
    cat.EntryPerms = New PermissionsElement(cat)
  End If
  cat.EntryPerms.EntryDocMDP = signature
End If

If (inAppearanceTextFormat IsNot Nothing) OrElse (inImage IsNot Nothing) Then
  Dim rect As XRect = widget.EntryRect.GetRect()
  rect.Pin = XRect.Corner.TopLeft
  If inAppearanceTextFormat IsNot Nothing Then
    rect.Width = 200 ' Change this to fit the Text
    rect.Height = 60 ' Change this to fit the Text
  End If
  widget.EntryRect.SetRect(rect)
  rect = rect.Clone()
  rect.Pin = XRect.Corner.BottomLeft
  rect.Position(0, 0)
  If inImage IsNot Nothing Then
    Dim imgRect As XRect = XRect.FromSides(0, 0, inImage.Width, inImage.Height)
    imgRect.FitIn(rect, ContentAlign.Center, ContentScaleMode.ExactFit)
    rect.String = imgRect.String
  End If

  Dim validityMessageHeight As Double = 0
  Dim fontSize As Integer = 12
  If mShowSignatureValidity Then
    validityMessageHeight = Math.Min(0.3 * rect.Height, 0.1 * rect.Width)
    fontSize = 8
  End If

  Dim theRect As String = Doc.Rect.String
  Dim theFont As Integer = Doc.Font
  Dim theFontSize As Integer = Doc.FontSize
  Dim charSpacing As Double = Doc.TextStyle.CharSpacing
  Dim lineSpacing As Double = Doc.TextStyle.LineSpacing
  Dim pageID As Integer = Doc.Page

  ' Use a detached page to avoid changes to the current page
  ' or to the page tree for a new page
  Doc.Page = Doc.AddObject("<</Type /Page /MediaBox [" & rect.String & "] >>")
  Doc.Rect.String = rect.String

  Dim apStream As New StringBuilder()

  Dim imageResName As String = Nothing
  Dim imageID As Integer = 0
  If inImage IsNot Nothing Then
    Dim imageLayerID As Integer = Doc.AddImage(inImage)
    Dim imageStream As String = Doc.GetInfo(imageLayerID, "Stream")
    Dim il As ImageLayer = CType(Doc.ObjectSoup(imageLayerID), ImageLayer)
    imageID = il.PixMap.ID
    Doc.Delete(imageLayerID)
    Dim l1 As Integer = imageStream.IndexOf("/Iabc", 0, imageStream.Length)
    Dim l2 As Integer = imageStream.IndexOf(" ", l1, imageStream.Length - l1)
    imageResName = imageStream.Substring(l1 + 1, l2 - l1 - 1)
    apStream.Append(imageStream)
    apStream.AppendLine()
  End If

  Dim fontResName As String = Nothing
  Dim fontID As Integer = 0
  If inAppearanceTextFormat IsNot Nothing Then
    If validityMessageHeight <> 0 Then
      Doc.Rect.Top -= validityMessageHeight
    End If
    fontID = Doc.AddFont("Times-Roman")
    Doc.Font = fontID
    Doc.FontSize = fontSize
    Doc.TextStyle.CharSpacing = 0
    Doc.TextStyle.LineSpacing = 2
    Dim text As String = String.Format(inAppearanceTextFormat, mSig.Signer, mSig.SigningUtcTime, inReason, inLocation)
    Dim textID As Integer = Doc.AddText(text)
    Dim textStream As String = Doc.GetInfo(textID, "Stream")
    Doc.Delete(textID)
    Dim l1 As Integer = textStream.IndexOf("/Fabc", 0, textStream.Length)
    Dim l2 As Integer = textStream.IndexOf(" ", l1, textStream.Length - l1)
    fontResName = textStream.Substring(l1 + 1, l2 - l1 - 1)
    apStream.Append(textStream)
    apStream.AppendLine()
  End If

  Doc.Delete(Doc.Page)
  Doc.Page = pageID
  Doc.Rect.String = theRect
  Doc.Font = theFont
  Doc.FontSize = theFontSize
  Doc.TextStyle.CharSpacing = charSpacing
  Doc.TextStyle.LineSpacing = lineSpacing

  Dim appearance As FormXObjectElement = MakeAppearance(rect, imageResName, imageID, fontResName, fontID, apStream.ToString())

  If mShowSignatureValidity Then
    If mBlankAppearance Is Nothing Then
      mBlankAppearance = MakeAppearance(XRect.FromSides(0, 0, 100, 100), Nothing, 0, Nothing, 0, "")
    End If

    Dim clone As XRect = rect.Clone()
    clone.Bottom = rect.Top - validityMessageHeight
    Dim validityAppearance As FormXObjectElement = MakeAppearance(clone, Nothing, 0, fontResName, fontID, "")

    Dim side As Double = 0.9 * Math.Min(rect.Width, rect.Height)
    Dim contents As String = String.Format(NumberFormatInfo.InvariantInfo, "q 1 0 0 1 0 0 cm /n0 Do Q" & vbCrLf & "q {0:0.#####} 0 0 {0:0.#####} {1:0.#####} {2:0.#####} cm /n1 Do Q" & vbCrLf & "q 1 0 0 1 0 0 cm /n2 Do Q" & vbCrLf & "q {0:0.#####} 0 0 {0:0.#####} {1:0.#####} {2:0.#####} cm /n3 Do Q" & vbCrLf & "q 1 0 0 1 0 0 cm /n4 Do Q" & vbCrLf, side / 100, (rect.Width - side) / 2, (rect.Height - side) / 2)
    Dim frmElement As FormXObjectElement = MakeAppearance(rect, "", 0, Nothing, 0, contents)
    frmElement.EntryResources.EntryXObject.Add("n0", mBlankAppearance)
    frmElement.EntryResources.EntryXObject.Add("n1", mBlankAppearance)
    frmElement.EntryResources.EntryXObject.Add("n2", appearance)
    frmElement.EntryResources.EntryXObject.Add("n3", mBlankAppearance)
    frmElement.EntryResources.EntryXObject.Add("n4", validityAppearance)

    appearance = MakeAppearance(rect, "", 0, Nothing, 0, "q 1 0 0 1 0 0 cm /FRM Do Q" & vbCrLf)
    appearance.EntryResources.EntryXObject.Add("FRM", frmElement)
  End If

  widget.EntryAP = New AppearanceElement(widget)
  widget.EntryAP.EntryN = appearance
End If

Return formField


ZZ Elements SignatureReferenceElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the signature reference dictionary object.

Notes

Represents the "Type" entry of the signature reference dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "SigRef".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 253, page 469.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 256, page 568.


ZZ Elements SignatureReferenceElement EntryTransformMethod Property

EntryTransformMethod Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "TransformMethod" entry of the signature reference dictionary object.

Notes

Represents the "TransformMethod" entry of the signature reference dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • DocMDP
  • UR
  • FieldMDP

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 253, page 469.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 256, page 568.


ZZ Elements SignatureReferenceElement EntryTransformParams Property

EntryTransformParams Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "TransformParams" entry of the signature reference dictionary object.

Notes

Represents the "TransformParams" entry of the signature reference dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 253, page 469.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 256, page 568.


ZZ Elements SignatureReferenceElement EntryData Property

EntryData Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Data" entry of the signature reference dictionary object.

Notes

Represents the "Data" entry of the signature reference dictionary object.

It is defined as part of the PDF 1.0 specification.

The specification defines this property as being of any type. So any type of atom or data content is valid.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 253, page 470.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 256, page 568.


ZZ Elements SignatureReferenceElement EntryDigestMethod Property

EntryDigestMethod Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "DigestMethod" entry of the signature reference dictionary object.

Notes

Represents the "DigestMethod" entry of the signature reference dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "MD5" if no value has been provided.

This item may take one of the following valid values:.

  • MD5
  • SHA1

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 253, page 470.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 256, page 568.


ZZ Elements TransformParametersElement

TransformParametersElement Class

This class represents the transform parameters dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 470.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.TransformParametersElement
         WebSupergoo.ABCpdf12.Elements.DocMDPTransformParametersElement
         WebSupergoo.ABCpdf12.Elements.FieldMDPTransformParametersElement
         WebSupergoo.ABCpdf12.Elements.UrTransformParametersElement

Method | Description
TransformParametersElement | Create a new TransformParametersElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the transform parameters dictionary object.
 | inherited properties...


ZZ Elements TransformParametersElement Constructor Function

TransformParametersElement Function

Create a new TransformParametersElement.

Syntax

[C#]
TransformParametersElement()
TransformParametersElement(Atom atom, IndirectObject host)
TransformParametersElement(IndirectObject obj)
TransformParametersElement(Element relation, CreationOptions options)

[Visual Basic]
TransformParametersElement()
TransformParametersElement(atom As Atom, host As IndirectObject)
TransformParametersElement(obj As IndirectObject)
TransformParametersElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new TransformParametersElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements TransformParametersElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the transform parameters dictionary object.

Notes

Represents the "Type" entry of the transform parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "TransformParams".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 470.


ZZ Elements DocMDPTransformParametersElement

DocMDPTransformParametersElement Class

This class represents the docmdp transform parameters dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 254, page 471.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 257, page 569.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.TransformParametersElement
         WebSupergoo.ABCpdf12.Elements.DocMDPTransformParametersElement

Method | Description
DocMDPTransformParametersElement | Create a new DocMDPTransformParametersElement.
 | inherited methods...

Property | Description
EntryP | Represents the "P" entry of the docmdp transform parameters dictionary object.
EntryV | Represents the "V" entry of the docmdp transform parameters dictionary object.
 | inherited properties...


ZZ Elements DocMDPTransformParametersElement Constructor Function

DocMDPTransformParametersElement Function

Create a new DocMDPTransformParametersElement.

Syntax

[C#]
DocMDPTransformParametersElement()
DocMDPTransformParametersElement(Atom atom, IndirectObject host)
DocMDPTransformParametersElement(IndirectObject obj)
DocMDPTransformParametersElement(Element relation, CreationOptions options)

[Visual Basic]
DocMDPTransformParametersElement()
DocMDPTransformParametersElement(atom As Atom, host As IndirectObject)
DocMDPTransformParametersElement(obj As IndirectObject)
DocMDPTransformParametersElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new DocMDPTransformParametersElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements DocMDPTransformParametersElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "P" entry of the docmdp transform parameters dictionary object.

Notes

Represents the "P" entry of the docmdp transform parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

It should have a minimum value of 1 and a maximum of 3.

The PDF specification states that this item assumes a value of 2 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 254, page 471.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 257, page 570.


ZZ Elements DocMDPTransformParametersElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "V" entry of the docmdp transform parameters dictionary object.

Notes

Represents the "V" entry of the docmdp transform parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "1.2" if no value has been provided.

This item may take one of the following valid values:.

  • 1.2
  • 1

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 254, page 471.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 257, page 570.


ZZ Elements UrTransformParametersElement

UrTransformParametersElement Class

This class represents the ur transform parameters dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 255, page 472.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 258, page 571.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.TransformParametersElement
         WebSupergoo.ABCpdf12.Elements.UrTransformParametersElement

Method | Description
UrTransformParametersElement | Create a new UrTransformParametersElement.
 | inherited methods...

Property | Description
EntryDocument | Represents the "Document" entry of the ur transform parameters dictionary object.
EntryMsg | Represents the "Msg" entry of the ur transform parameters dictionary object.
EntryV | Represents the "V" entry of the ur transform parameters dictionary object.
EntryAnnots | Represents the "Annots" entry of the ur transform parameters dictionary object.
EntryForm | Represents the "Form" entry of the ur transform parameters dictionary object.
EntrySignature | Represents the "Signature" entry of the ur transform parameters dictionary object.
EntryEF | Represents the "EF" entry of the ur transform parameters dictionary object.
EntryP | Represents the "P" entry of the ur transform parameters dictionary object.
 | inherited properties...


ZZ Elements UrTransformParametersElement Constructor Function

UrTransformParametersElement Function

Create a new UrTransformParametersElement.

Syntax

[C#]
UrTransformParametersElement()
UrTransformParametersElement(Atom atom, IndirectObject host)
UrTransformParametersElement(IndirectObject obj)
UrTransformParametersElement(Element relation, CreationOptions options)

[Visual Basic]
UrTransformParametersElement()
UrTransformParametersElement(atom As Atom, host As IndirectObject)
UrTransformParametersElement(obj As IndirectObject)
UrTransformParametersElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new UrTransformParametersElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements UrTransformParametersElement EntryDocument Property

EntryDocument Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Document" entry of the ur transform parameters dictionary object.

Notes

Represents the "Document" entry of the ur transform parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF name objects.

Items in this array may take one of the following valid values:.

  • FullSave
  • or

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 255, page 472.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 258, page 571.


ZZ Elements UrTransformParametersElement EntryMsg Property

EntryMsg Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Msg" entry of the ur transform parameters dictionary object.

Notes

Represents the "Msg" entry of the ur transform parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 255, page 472.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 258, page 571.


ZZ Elements UrTransformParametersElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "V" entry of the ur transform parameters dictionary object.

Notes

Represents the "V" entry of the ur transform parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "2.2" if no value has been provided.

This item may take one of the following valid values:.

  • 2.2
  • 2

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 255, page 472.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 258, page 571.


ZZ Elements UrTransformParametersElement EntryAnnots Property

EntryAnnots Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Annots" entry of the ur transform parameters dictionary object.

Notes

Represents the "Annots" entry of the ur transform parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF name objects.

Items in this array may take one of the following valid values:.

  • (PDF
  • Create
  • Delete
  • Modify
  • Copy
  • Import
  • Export
  • Online
  • SummaryView

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 255, page 472.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 258, page 571.


ZZ Elements UrTransformParametersElement EntryForm Property

EntryForm Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Form" entry of the ur transform parameters dictionary object.

Notes

Represents the "Form" entry of the ur transform parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF name objects.

Items in this array may take one of the following valid values:.

  • (PDF
  • Add
  • Delete
  • Fill
  • Import
  • TSV
  • Export
  • SubmitStandalone
  • SpawnTemplate
  • BarcodePlaintext
  • Online

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 255, page 473.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 258, page 572.


ZZ Elements UrTransformParametersElement EntrySignature Property

EntrySignature Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Signature" entry of the ur transform parameters dictionary object.

Notes

Represents the "Signature" entry of the ur transform parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF name objects.

If provided, items in this array must always take the value "Modify".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 255, page 473.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 258, page 572.


ZZ Elements UrTransformParametersElement EntryEF Property

EntryEF Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "EF" entry of the ur transform parameters dictionary object.

Notes

Represents the "EF" entry of the ur transform parameters dictionary object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains an array which contains strings, representing PDF name objects.

If provided, items in this array must always take the value "shall".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 255, page 473.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 258, page 572.


ZZ Elements UrTransformParametersElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "P" entry of the ur transform parameters dictionary object.

Notes

Represents the "P" entry of the ur transform parameters dictionary object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 255, page 473.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 258, page 572.


ZZ Elements FieldMDPTransformParametersElement

FieldMDPTransformParametersElement Class

This class represents the fieldmdp transform parameters dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 256, page 473.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 259, page 572.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.TransformParametersElement
         WebSupergoo.ABCpdf12.Elements.FieldMDPTransformParametersElement

Method | Description
FieldMDPTransformParametersElement | Create a new FieldMDPTransformParametersElement.
 | inherited methods...

Property | Description
EntryAction | Represents the "Action" entry of the fieldmdp transform parameters dictionary object.
EntryFields | Represents the "Fields" entry of the fieldmdp transform parameters dictionary object.
EntryV | Represents the "V" entry of the fieldmdp transform parameters dictionary object.
 | inherited properties...


ZZ Elements FieldMDPTransformParametersElement Constructor Function

FieldMDPTransformParametersElement Function

Create a new FieldMDPTransformParametersElement.

Syntax

[C#]
FieldMDPTransformParametersElement()
FieldMDPTransformParametersElement(Atom atom, IndirectObject host)
FieldMDPTransformParametersElement(IndirectObject obj)
FieldMDPTransformParametersElement(Element relation, CreationOptions options)

[Visual Basic]
FieldMDPTransformParametersElement()
FieldMDPTransformParametersElement(atom As Atom, host As IndirectObject)
FieldMDPTransformParametersElement(obj As IndirectObject)
FieldMDPTransformParametersElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FieldMDPTransformParametersElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FieldMDPTransformParametersElement EntryAction Property

EntryAction Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Action" entry of the fieldmdp transform parameters dictionary object.

Notes

Represents the "Action" entry of the fieldmdp transform parameters dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • All
  • Include
  • Exclude

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 256, page 473.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 259, page 573.


ZZ Elements FieldMDPTransformParametersElement EntryFields Property

EntryFields Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Fields" entry of the fieldmdp transform parameters dictionary object.

Notes

Represents the "Fields" entry of the fieldmdp transform parameters dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 256, page 473.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 259, page 573.


ZZ Elements FieldMDPTransformParametersElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "V" entry of the fieldmdp transform parameters dictionary object.

Notes

Represents the "V" entry of the fieldmdp transform parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "1.2" if no value has been provided.

This item may take one of the following valid values:.

  • 1.2
  • 1

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 256, page 474.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 259, page 573.


ZZ Elements PermissionsElement

PermissionsElement Class

This class represents the permissions dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 258, page 477.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 263, page 589.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.PermissionsElement

Method | Description
PermissionsElement | Create a new PermissionsElement.
 | inherited methods...

Property | Description
EntryDocMDP | Represents the "DocMDP" entry of the permissions dictionary object.
EntryUR | Represents the "UR" entry of the permissions dictionary object.
EntryUR3 | Represents the "UR3" entry of the permissions dictionary object.
 | inherited properties...


ZZ Elements PermissionsElement Constructor Function

PermissionsElement Function

Create a new PermissionsElement.

Syntax

[C#]
PermissionsElement()
PermissionsElement(Atom atom, IndirectObject host)
PermissionsElement(IndirectObject obj)
PermissionsElement(Element relation, CreationOptions options)

[Visual Basic]
PermissionsElement()
PermissionsElement(atom As Atom, host As IndirectObject)
PermissionsElement(obj As IndirectObject)
PermissionsElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new PermissionsElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 666 in the Annotations example project.

[C#]

CommitSignature();

CatalogElement cat = new CatalogElement(Doc.ObjectSoup.Catalog);
cat.EntryAcroForm.EntrySigFlags = 3;

// NB If you don't want your signature to print then set the /F flag to 0
int fieldID = Doc.AddObject("<</Type /Annot /Subtype /Widget /F 4 /FT /Sig /DA (/TimesRoman 0 Tf 0 g)>>");
WidgetAnnotationElement widget = new WidgetAnnotationElement(Doc.ObjectSoup[fieldID]);
SignatureFieldElement field = (SignatureFieldElement)widget.FieldElement;
int sigDictID = Doc.AddObject("<</Type /Sig /Filter /Adobe.PPKLite /SubFilter /adbe.pkcs7.detached>>");
SignatureElement signature = new SignatureElement(Doc.ObjectSoup[sigDictID]);
if (inLocked) {
  IndirectObject io = IndirectObject.FromString("<< /Type /SigFieldLock /Action /All /P 1 >>");
  field.Host.Soup.Add(io);
  SignatureFieldLockElement sigFieldLock = new SignatureFieldLockElement(io);
  field.EntryLock = sigFieldLock;
  field.Object.Version = 5; // PDF 1.5
}
field.EntryV = signature;
FormField formField = new FormField(this, inName, field.Object.ID);
formField.Widget.Rect = new XRect(inRect);

Doc.Form.Refresh();
mSig = (Signature)Doc.Form[inName];
sign(mSig);
if (inReason != null)
  signature.EntryReason = inReason;
if (inLocation != null)
  signature.EntryLocation = inLocation;
if (mSig.Signer != null)
  signature.EntryName = mSig.Signer;

if (mCertify) {
  // make it PDF 1.6, see the second point under "Validating MDP signatures" in the PDF reference
  signature.Object.Version = 6;
  // make signature MDP
  int id = Doc.AddObject("<</Type /SigRef /TransformMethod /DocMDP /TransformParams <</Type /TransformParams /P 2 /V /1.2>>>>");
  SignatureReferenceElement sigRef = new SignatureReferenceElement(Doc.ObjectSoup[id]);
  signature.EntryReference = new ArrayElement<SignatureReferenceElement>(signature);
  signature.EntryReference.Add(sigRef);
  if (cat.EntryPerms == null)
    cat.EntryPerms = new PermissionsElement(cat);
  cat.EntryPerms.EntryDocMDP = signature;
}

if ((inAppearanceTextFormat != null) || (inImage != null)) {
  XRect rect = widget.EntryRect.GetRect();
  rect.Pin = XRect.Corner.TopLeft;
  if (inAppearanceTextFormat != null) {
    rect.Width = 200; // Change this to fit the Text
    rect.Height = 60; // Change this to fit the Text
  }
  widget.EntryRect.SetRect(rect);
  rect = rect.Clone();
  rect.Pin = XRect.Corner.BottomLeft;
  rect.Position(0, 0);
  if (inImage != null) {
    XRect imgRect = XRect.FromSides(0, 0, inImage.Width, inImage.Height);
    imgRect.FitIn(rect, ContentAlign.Center, ContentScaleMode.ExactFit);
    rect.String = imgRect.String;
  }

  double validityMessageHeight = 0;
  int fontSize = 12;
  if (mShowSignatureValidity) {
    validityMessageHeight = Math.Min(0.3 * rect.Height, 0.1 * rect.Width);
    fontSize = 8;
  }

  string theRect = Doc.Rect.String;
  int theFont = Doc.Font;
  int theFontSize = Doc.FontSize;
  double charSpacing = Doc.TextStyle.CharSpacing;
  double lineSpacing = Doc.TextStyle.LineSpacing;
  int pageID = Doc.Page;

  // Use a detached page to avoid changes to the current page
  // or to the page tree for a new page
  Doc.Page = Doc.AddObject("<</Type /Page /MediaBox [" + rect.String + "] >>");
  Doc.Rect.String = rect.String;

  StringBuilder apStream = new StringBuilder();

  string imageResName = null;
  int imageID = 0;
  if (inImage != null) {
    int imageLayerID = Doc.AddImage(inImage);
    string imageStream = Doc.GetInfo(imageLayerID, "Stream");
    ImageLayer il = (ImageLayer)Doc.ObjectSoup[imageLayerID];
    imageID = il.PixMap.ID;
    Doc.Delete(imageLayerID);
    int l1 = imageStream.IndexOf("/Iabc", 0, imageStream.Length);
    int l2 = imageStream.IndexOf(" ", l1, imageStream.Length - l1);
    imageResName = imageStream.Substring(l1 + 1, l2 - l1 - 1);
    apStream.Append(imageStream);
    apStream.AppendLine();
  }

  string fontResName = null;
  int fontID = 0;
  if (inAppearanceTextFormat != null) {
    if (validityMessageHeight != 0)
      Doc.Rect.Top -= validityMessageHeight;
    fontID = Doc.AddFont("Times-Roman");
    Doc.Font = fontID;
    Doc.FontSize = fontSize;
    Doc.TextStyle.CharSpacing = 0;
    Doc.TextStyle.LineSpacing = 2;
    string text = string.Format(inAppearanceTextFormat, mSig.Signer, mSig.SigningUtcTime, inReason, inLocation);
    int textID = Doc.AddText(text);
    string textStream = Doc.GetInfo(textID, "Stream");
    Doc.Delete(textID);
    int l1 = textStream.IndexOf("/Fabc", 0, textStream.Length);
    int l2 = textStream.IndexOf(" ", l1, textStream.Length - l1);
    fontResName = textStream.Substring(l1 + 1, l2 - l1 - 1);
    apStream.Append(textStream);
    apStream.AppendLine();
  }

  Doc.Delete(Doc.Page);
  Doc.Page = pageID;
  Doc.Rect.String = theRect;
  Doc.Font = theFont;
  Doc.FontSize = theFontSize;
  Doc.TextStyle.CharSpacing = charSpacing;
  Doc.TextStyle.LineSpacing = lineSpacing;

  FormXObjectElement appearance = MakeAppearance(rect, imageResName, imageID, fontResName, fontID, apStream.ToString());

  if (mShowSignatureValidity) {
    if (mBlankAppearance == null)
      mBlankAppearance = MakeAppearance(XRect.FromSides(0, 0, 100, 100), null, 0, null, 0, "");

    XRect clone = rect.Clone();
    clone.Bottom = rect.Top - validityMessageHeight;
    FormXObjectElement validityAppearance = MakeAppearance(clone, null, 0, fontResName, fontID, "");

    double side = 0.9 * Math.Min(rect.Width, rect.Height);
    string contents = string.Format(NumberFormatInfo.InvariantInfo,
      "q 1 0 0 1 0 0 cm /n0 Do Q"
      + "\r\nq {0:0.#####} 0 0 {0:0.#####} {1:0.#####} {2:0.#####} cm /n1 Do Q"
      + "\r\nq 1 0 0 1 0 0 cm /n2 Do Q"
      + "\r\nq {0:0.#####} 0 0 {0:0.#####} {1:0.#####} {2:0.#####} cm /n3 Do Q"
      + "\r\nq 1 0 0 1 0 0 cm /n4 Do Q"
      + "\r\n", side / 100, (rect.Width - side) / 2, (rect.Height - side) / 2);
    FormXObjectElement frmElement = MakeAppearance(rect, "", 0, null, 0, contents);
    frmElement.EntryResources.EntryXObject.Add("n0", mBlankAppearance);
    frmElement.EntryResources.EntryXObject.Add("n1", mBlankAppearance);
    frmElement.EntryResources.EntryXObject.Add("n2", appearance);
    frmElement.EntryResources.EntryXObject.Add("n3", mBlankAppearance);
    frmElement.EntryResources.EntryXObject.Add("n4", validityAppearance);

    appearance = MakeAppearance(rect, "", 0, null, 0, "q 1 0 0 1 0 0 cm /FRM Do Q\r\n");
    appearance.EntryResources.EntryXObject.Add("FRM", frmElement);
  }

  widget.EntryAP = new AppearanceElement(widget);
  widget.EntryAP.EntryN = appearance;
}

return formField;

[VB]

CommitSignature()

Dim cat As New CatalogElement(Doc.ObjectSoup.Catalog)
cat.EntryAcroForm.EntrySigFlags = 3

' NB If you don't want your signature to print then set the /F flag to 0
Dim fieldID As Integer = Doc.AddObject("<</Type /Annot /Subtype /Widget /F 4 /FT /Sig /DA (/TimesRoman 0 Tf 0 g)>>")
Dim widget As New WidgetAnnotationElement(Doc.ObjectSoup(fieldID))
Dim field As SignatureFieldElement = CType(widget.FieldElement, SignatureFieldElement)
Dim sigDictID As Integer = Doc.AddObject("<</Type /Sig /Filter /Adobe.PPKLite /SubFilter /adbe.pkcs7.detached>>")
Dim signature As New SignatureElement(Doc.ObjectSoup(sigDictID))
If inLocked Then
  Dim io As IndirectObject = IndirectObject.FromString("<< /Type /SigFieldLock /Action /All /P 1 >>")
  field.Host.Soup.Add(io)
  Dim sigFieldLock As New SignatureFieldLockElement(io)
  field.EntryLock = sigFieldLock
  field.Object.Version = 5 ' PDF 1.5
End If
field.EntryV = signature
Dim formField As New FormField(Me, inName, field.Object.ID)
formField.Widget.Rect = New XRect(inRect)

Doc.Form.Refresh()
mSig = CType(Doc.Form(inName), Signature)
sign(mSig)
If inReason IsNot Nothing Then
  signature.EntryReason = inReason
End If
If inLocation IsNot Nothing Then
  signature.EntryLocation = inLocation
End If
If mSig.Signer IsNot Nothing Then
  signature.EntryName = mSig.Signer
End If

If mCertify Then
  ' make it PDF 1.6, see the second point under "Validating MDP signatures" in the PDF reference
  signature.Object.Version = 6
  ' make signature MDP
  Dim id As Integer = Doc.AddObject("<</Type /SigRef /TransformMethod /DocMDP /TransformParams <</Type /TransformParams /P 2 /V /1.2>>>>")
  Dim sigRef As New SignatureReferenceElement(Doc.ObjectSoup(id))
  signature.EntryReference = New ArrayElement(Of SignatureReferenceElement)(signature)
  signature.EntryReference.Add(sigRef)
  If cat.EntryPerms Is Nothing Then
    cat.EntryPerms = New PermissionsElement(cat)
  End If
  cat.EntryPerms.EntryDocMDP = signature
End If

If (inAppearanceTextFormat IsNot Nothing) OrElse (inImage IsNot Nothing) Then
  Dim rect As XRect = widget.EntryRect.GetRect()
  rect.Pin = XRect.Corner.TopLeft
  If inAppearanceTextFormat IsNot Nothing Then
    rect.Width = 200 ' Change this to fit the Text
    rect.Height = 60 ' Change this to fit the Text
  End If
  widget.EntryRect.SetRect(rect)
  rect = rect.Clone()
  rect.Pin = XRect.Corner.BottomLeft
  rect.Position(0, 0)
  If inImage IsNot Nothing Then
    Dim imgRect As XRect = XRect.FromSides(0, 0, inImage.Width, inImage.Height)
    imgRect.FitIn(rect, ContentAlign.Center, ContentScaleMode.ExactFit)
    rect.String = imgRect.String
  End If

  Dim validityMessageHeight As Double = 0
  Dim fontSize As Integer = 12
  If mShowSignatureValidity Then
    validityMessageHeight = Math.Min(0.3 * rect.Height, 0.1 * rect.Width)
    fontSize = 8
  End If

  Dim theRect As String = Doc.Rect.String
  Dim theFont As Integer = Doc.Font
  Dim theFontSize As Integer = Doc.FontSize
  Dim charSpacing As Double = Doc.TextStyle.CharSpacing
  Dim lineSpacing As Double = Doc.TextStyle.LineSpacing
  Dim pageID As Integer = Doc.Page

  ' Use a detached page to avoid changes to the current page
  ' or to the page tree for a new page
  Doc.Page = Doc.AddObject("<</Type /Page /MediaBox [" & rect.String & "] >>")
  Doc.Rect.String = rect.String

  Dim apStream As New StringBuilder()

  Dim imageResName As String = Nothing
  Dim imageID As Integer = 0
  If inImage IsNot Nothing Then
    Dim imageLayerID As Integer = Doc.AddImage(inImage)
    Dim imageStream As String = Doc.GetInfo(imageLayerID, "Stream")
    Dim il As ImageLayer = CType(Doc.ObjectSoup(imageLayerID), ImageLayer)
    imageID = il.PixMap.ID
    Doc.Delete(imageLayerID)
    Dim l1 As Integer = imageStream.IndexOf("/Iabc", 0, imageStream.Length)
    Dim l2 As Integer = imageStream.IndexOf(" ", l1, imageStream.Length - l1)
    imageResName = imageStream.Substring(l1 + 1, l2 - l1 - 1)
    apStream.Append(imageStream)
    apStream.AppendLine()
  End If

  Dim fontResName As String = Nothing
  Dim fontID As Integer = 0
  If inAppearanceTextFormat IsNot Nothing Then
    If validityMessageHeight <> 0 Then
      Doc.Rect.Top -= validityMessageHeight
    End If
    fontID = Doc.AddFont("Times-Roman")
    Doc.Font = fontID
    Doc.FontSize = fontSize
    Doc.TextStyle.CharSpacing = 0
    Doc.TextStyle.LineSpacing = 2
    Dim text As String = String.Format(inAppearanceTextFormat, mSig.Signer, mSig.SigningUtcTime, inReason, inLocation)
    Dim textID As Integer = Doc.AddText(text)
    Dim textStream As String = Doc.GetInfo(textID, "Stream")
    Doc.Delete(textID)
    Dim l1 As Integer = textStream.IndexOf("/Fabc", 0, textStream.Length)
    Dim l2 As Integer = textStream.IndexOf(" ", l1, textStream.Length - l1)
    fontResName = textStream.Substring(l1 + 1, l2 - l1 - 1)
    apStream.Append(textStream)
    apStream.AppendLine()
  End If

  Doc.Delete(Doc.Page)
  Doc.Page = pageID
  Doc.Rect.String = theRect
  Doc.Font = theFont
  Doc.FontSize = theFontSize
  Doc.TextStyle.CharSpacing = charSpacing
  Doc.TextStyle.LineSpacing = lineSpacing

  Dim appearance As FormXObjectElement = MakeAppearance(rect, imageResName, imageID, fontResName, fontID, apStream.ToString())

  If mShowSignatureValidity Then
    If mBlankAppearance Is Nothing Then
      mBlankAppearance = MakeAppearance(XRect.FromSides(0, 0, 100, 100), Nothing, 0, Nothing, 0, "")
    End If

    Dim clone As XRect = rect.Clone()
    clone.Bottom = rect.Top - validityMessageHeight
    Dim validityAppearance As FormXObjectElement = MakeAppearance(clone, Nothing, 0, fontResName, fontID, "")

    Dim side As Double = 0.9 * Math.Min(rect.Width, rect.Height)
    Dim contents As String = String.Format(NumberFormatInfo.InvariantInfo, "q 1 0 0 1 0 0 cm /n0 Do Q" & vbCrLf & "q {0:0.#####} 0 0 {0:0.#####} {1:0.#####} {2:0.#####} cm /n1 Do Q" & vbCrLf & "q 1 0 0 1 0 0 cm /n2 Do Q" & vbCrLf & "q {0:0.#####} 0 0 {0:0.#####} {1:0.#####} {2:0.#####} cm /n3 Do Q" & vbCrLf & "q 1 0 0 1 0 0 cm /n4 Do Q" & vbCrLf, side / 100, (rect.Width - side) / 2, (rect.Height - side) / 2)
    Dim frmElement As FormXObjectElement = MakeAppearance(rect, "", 0, Nothing, 0, contents)
    frmElement.EntryResources.EntryXObject.Add("n0", mBlankAppearance)
    frmElement.EntryResources.EntryXObject.Add("n1", mBlankAppearance)
    frmElement.EntryResources.EntryXObject.Add("n2", appearance)
    frmElement.EntryResources.EntryXObject.Add("n3", mBlankAppearance)
    frmElement.EntryResources.EntryXObject.Add("n4", validityAppearance)

    appearance = MakeAppearance(rect, "", 0, Nothing, 0, "q 1 0 0 1 0 0 cm /FRM Do Q" & vbCrLf)
    appearance.EntryResources.EntryXObject.Add("FRM", frmElement)
  End If

  widget.EntryAP = New AppearanceElement(widget)
  widget.EntryAP.EntryN = appearance
End If

Return formField


ZZ Elements PermissionsElement EntryDocMDP Property

EntryDocMDP Property

Type | Default Value | Read Only | Description
[C#] SignatureElement [Visual Basic] SignatureElement | null | No | Represents the "DocMDP" entry of the permissions dictionary object.

Notes

Represents the "DocMDP" entry of the permissions dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a SignatureElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 258, page 477.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 263, page 589.


ZZ Elements PermissionsElement EntryUR Property

EntryUR Property

Type | Default Value | Read Only | Description
[C#] SignatureElement [Visual Basic] SignatureElement | null | No | Represents the "UR" entry of the permissions dictionary object.

Notes

Represents the "UR" entry of the permissions dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification. It was deprecated in PDF 2.0.

It contains a SignatureElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 258, page 477.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 263, page 589.


ZZ Elements PermissionsElement EntryUR3 Property

EntryUR3 Property

Type | Default Value | Read Only | Description
[C#] SignatureElement [Visual Basic] SignatureElement | null | No | Represents the "UR3" entry of the permissions dictionary object.

Notes

Represents the "UR3" entry of the permissions dictionary object.

It is an optional entry defined as part of the PDF 1.6 specification. It was deprecated in PDF 2.0.

It contains a SignatureElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 258, page 477.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 263, page 589.


ZZ Elements LegalAttestationElement

LegalAttestationElement Class

This class represents the legal attestation dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 590.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.LegalAttestationElement

Method | Description
LegalAttestationElement | Create a new LegalAttestationElement.
 | inherited methods...

Property | Description
EntryJavaScriptActions | Represents the "JavaScriptActions" entry of the legal attestation dictionary object.
EntryLaunchActions | Represents the "LaunchActions" entry of the legal attestation dictionary object.
EntryURIActions | Represents the "URIActions" entry of the legal attestation dictionary object.
EntryMovieActions | Represents the "MovieActions" entry of the legal attestation dictionary object.
EntrySoundActions | Represents the "SoundActions" entry of the legal attestation dictionary object.
EntryHideAnnotationActions | Represents the "HideAnnotationActions" entry of the legal attestation dictionary object.
EntryGoToRemoteActions | Represents the "GoToRemoteActions" entry of the legal attestation dictionary object.
EntryAlternateImages | Represents the "AlternateImages" entry of the legal attestation dictionary object.
EntryExternalStreams | Represents the "ExternalStreams" entry of the legal attestation dictionary object.
EntryTrueTypeFonts | Represents the "TrueTypeFonts" entry of the legal attestation dictionary object.
EntryExternalRefXobjects | Represents the "ExternalRefXobjects" entry of the legal attestation dictionary object.
EntryExternalOPIdicts | Represents the "ExternalOPIdicts" entry of the legal attestation dictionary object.
EntryNonEmbeddedFonts | Represents the "NonEmbeddedFonts" entry of the legal attestation dictionary object.
EntryDevDepGS_OP | Represents the "DevDepGS_OP" entry of the legal attestation dictionary object.
EntryDevDepGS_HT | Represents the "DevDepGS_HT" entry of the legal attestation dictionary object.
EntryDevDepGS_TR | Represents the "DevDepGS_TR" entry of the legal attestation dictionary object.
EntryDevDepGS_UCR | Represents the "DevDepGS_UCR" entry of the legal attestation dictionary object.
EntryDevDepGS_BG | Represents the "DevDepGS_BG" entry of the legal attestation dictionary object.
EntryDevDepGS_FL | Represents the "DevDepGS_FL" entry of the legal attestation dictionary object.
EntryAnnotations | Represents the "Annotations" entry of the legal attestation dictionary object.
EntryOptionalContent | Represents the "OptionalContent" entry of the legal attestation dictionary object.
EntryAttestation | Represents the "Attestation" entry of the legal attestation dictionary object.
 | inherited properties...


ZZ Elements LegalAttestationElement Constructor Function

LegalAttestationElement Function

Create a new LegalAttestationElement.

Syntax

[C#]
LegalAttestationElement()
LegalAttestationElement(Atom atom, IndirectObject host)
LegalAttestationElement(IndirectObject obj)
LegalAttestationElement(Element relation, CreationOptions options)

[Visual Basic]
LegalAttestationElement()
LegalAttestationElement(atom As Atom, host As IndirectObject)
LegalAttestationElement(obj As IndirectObject)
LegalAttestationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new LegalAttestationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements LegalAttestationElement EntryJavaScriptActions Property

EntryJavaScriptActions Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "JavaScriptActions" entry of the legal attestation dictionary object.

Notes

Represents the "JavaScriptActions" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 590.


ZZ Elements LegalAttestationElement EntryLaunchActions Property

EntryLaunchActions Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "LaunchActions" entry of the legal attestation dictionary object.

Notes

Represents the "LaunchActions" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 590.


ZZ Elements LegalAttestationElement EntryURIActions Property

EntryURIActions Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "URIActions" entry of the legal attestation dictionary object.

Notes

Represents the "URIActions" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 590.


ZZ Elements LegalAttestationElement EntryMovieActions Property

EntryMovieActions Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "MovieActions" entry of the legal attestation dictionary object.

Notes

Represents the "MovieActions" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 590.


ZZ Elements LegalAttestationElement EntrySoundActions Property

EntrySoundActions Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "SoundActions" entry of the legal attestation dictionary object.

Notes

Represents the "SoundActions" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 590.


ZZ Elements LegalAttestationElement EntryHideAnnotationActions Property

EntryHideAnnotationActions Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "HideAnnotationActions" entry of the legal attestation dictionary object.

Notes

Represents the "HideAnnotationActions" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 590.


ZZ Elements LegalAttestationElement EntryGoToRemoteActions Property

EntryGoToRemoteActions Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "GoToRemoteActions" entry of the legal attestation dictionary object.

Notes

Represents the "GoToRemoteActions" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 590.


ZZ Elements LegalAttestationElement EntryAlternateImages Property

EntryAlternateImages Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "AlternateImages" entry of the legal attestation dictionary object.

Notes

Represents the "AlternateImages" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 590.


ZZ Elements LegalAttestationElement EntryExternalStreams Property

EntryExternalStreams Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "ExternalStreams" entry of the legal attestation dictionary object.

Notes

Represents the "ExternalStreams" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 590.


ZZ Elements LegalAttestationElement EntryTrueTypeFonts Property

EntryTrueTypeFonts Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "TrueTypeFonts" entry of the legal attestation dictionary object.

Notes

Represents the "TrueTypeFonts" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 590.


ZZ Elements LegalAttestationElement EntryExternalRefXobjects Property

EntryExternalRefXobjects Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "ExternalRefXobjects" entry of the legal attestation dictionary object.

Notes

Represents the "ExternalRefXobjects" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 590.


ZZ Elements LegalAttestationElement EntryExternalOPIdicts Property

EntryExternalOPIdicts Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "ExternalOPIdicts" entry of the legal attestation dictionary object.

Notes

Represents the "ExternalOPIdicts" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 590.


ZZ Elements LegalAttestationElement EntryNonEmbeddedFonts Property

EntryNonEmbeddedFonts Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "NonEmbeddedFonts" entry of the legal attestation dictionary object.

Notes

Represents the "NonEmbeddedFonts" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 590.


ZZ Elements LegalAttestationElement EntryDevDepGS_OP Property

EntryDevDepGS_OP Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "DevDepGS_OP" entry of the legal attestation dictionary object.

Notes

Represents the "DevDepGS_OP" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 590.


ZZ Elements LegalAttestationElement EntryDevDepGS_HT Property

EntryDevDepGS_HT Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "DevDepGS_HT" entry of the legal attestation dictionary object.

Notes

Represents the "DevDepGS_HT" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 590.


ZZ Elements LegalAttestationElement EntryDevDepGS_TR Property

EntryDevDepGS_TR Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "DevDepGS_TR" entry of the legal attestation dictionary object.

Notes

Represents the "DevDepGS_TR" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 590.


ZZ Elements LegalAttestationElement EntryDevDepGS_UCR Property

EntryDevDepGS_UCR Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "DevDepGS_UCR" entry of the legal attestation dictionary object.

Notes

Represents the "DevDepGS_UCR" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 590.


ZZ Elements LegalAttestationElement EntryDevDepGS_BG Property

EntryDevDepGS_BG Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "DevDepGS_BG" entry of the legal attestation dictionary object.

Notes

Represents the "DevDepGS_BG" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 591.


ZZ Elements LegalAttestationElement EntryDevDepGS_FL Property

EntryDevDepGS_FL Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "DevDepGS_FL" entry of the legal attestation dictionary object.

Notes

Represents the "DevDepGS_FL" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 591.


ZZ Elements LegalAttestationElement EntryAnnotations Property

EntryAnnotations Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Annotations" entry of the legal attestation dictionary object.

Notes

Represents the "Annotations" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 591.


ZZ Elements LegalAttestationElement EntryOptionalContent Property

EntryOptionalContent Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "OptionalContent" entry of the legal attestation dictionary object.

Notes

Represents the "OptionalContent" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 591.


ZZ Elements LegalAttestationElement EntryAttestation Property

EntryAttestation Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Attestation" entry of the legal attestation dictionary object.

Notes

Represents the "Attestation" entry of the legal attestation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 259, page 478.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 264, page 591.


ZZ Elements ViewportElement

ViewportElement Class

This class represents the viewport dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 260, page 479.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 265, page 592.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.109, page 48.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ViewportElement

Method | Description
ViewportElement | Create a new ViewportElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the viewport dictionary object.
EntryBBox | Represents the "BBox" entry of the viewport dictionary object.
EntryName | Represents the "Name" entry of the viewport dictionary object.
EntryMeasure | Represents the "Measure" entry of the viewport dictionary object.
EntryPtData | Represents the "PtData" entry of the viewport dictionary object.
 | inherited properties...


ZZ Elements ViewportElement Constructor Function

ViewportElement Function

Create a new ViewportElement.

Syntax

[C#]
ViewportElement()
ViewportElement(Atom atom, IndirectObject host)
ViewportElement(IndirectObject obj)
ViewportElement(Element relation, CreationOptions options)

[Visual Basic]
ViewportElement()
ViewportElement(atom As Atom, host As IndirectObject)
ViewportElement(obj As IndirectObject)
ViewportElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ViewportElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ViewportElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the viewport dictionary object.

Notes

Represents the "Type" entry of the viewport dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Viewport".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 260, page 479.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.109, page 48.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 265, page 592.


ZZ Elements ViewportElement EntryBBox Property

EntryBBox Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "BBox" entry of the viewport dictionary object.

Notes

Represents the "BBox" entry of the viewport dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 260, page 479.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.109, page 48.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 265, page 592.


ZZ Elements ViewportElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Name" entry of the viewport dictionary object.

Notes

Represents the "Name" entry of the viewport dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 260, page 480.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.109, page 48.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 265, page 592.


ZZ Elements ViewportElement EntryMeasure Property

EntryMeasure Property

Type | Default Value | Read Only | Description
[C#] MeasureElement [Visual Basic] MeasureElement | null | No | Represents the "Measure" entry of the viewport dictionary object.

Notes

Represents the "Measure" entry of the viewport dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a MeasureElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 260, page 480.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.109, page 48.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 265, page 592.


ZZ Elements ViewportElement EntryPtData Property

EntryPtData Property

Type | Default Value | Read Only | Description
[C#] PointDataElement [Visual Basic] PointDataElement | null | No | Represents the "PtData" entry of the viewport dictionary object.

Notes

Represents the "PtData" entry of the viewport dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a PointDataElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 260, page 479.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.109, page 48.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 265, page 592.


ZZ Elements MeasureElement

MeasureElement Class

This class represents the measure dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 261, page 480.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 266, page 593.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.110, page 49.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MeasureElement
         WebSupergoo.ABCpdf12.Elements.GeospatialMeasureElement
         WebSupergoo.ABCpdf12.Elements.RectilinearMeasureElement

Method | Description
MeasureElement | Create a new MeasureElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the measure dictionary object.
EntrySubtype | Represents the "Subtype" entry of the measure dictionary object.
 | inherited properties...


ZZ Elements MeasureElement Constructor Function

MeasureElement Function

Create a new MeasureElement.

Syntax

[C#]
MeasureElement()
MeasureElement(Atom atom, IndirectObject host)
MeasureElement(IndirectObject obj)
MeasureElement(Element relation, CreationOptions options)

[Visual Basic]
MeasureElement()
MeasureElement(atom As Atom, host As IndirectObject)
MeasureElement(obj As IndirectObject)
MeasureElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MeasureElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MeasureElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the measure dictionary object.

Notes

Represents the "Type" entry of the measure dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Measure".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 261, page 480.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.110, page 49.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 266, page 593.


ZZ Elements MeasureElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the measure dictionary object.

Notes

Represents the "Subtype" entry of the measure dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "RL" if no value has been provided.

This item may take one of the following valid values:.

  • RL
  • GEO

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 261, page 480.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.110, page 49.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 266, page 593.


ZZ Elements RectilinearMeasureElement

RectilinearMeasureElement Class

This class represents the rectilinear measure dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 262, page 481.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 267, page 594.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MeasureElement
         WebSupergoo.ABCpdf12.Elements.RectilinearMeasureElement

Method | Description
RectilinearMeasureElement | Create a new RectilinearMeasureElement.
 | inherited methods...

Property | Description
EntryR | Represents the "R" entry of the rectilinear measure dictionary object.
EntryX | Represents the "X" entry of the rectilinear measure dictionary object.
EntryY | Represents the "Y" entry of the rectilinear measure dictionary object.
EntryD | Represents the "D" entry of the rectilinear measure dictionary object.
EntryA | Represents the "A" entry of the rectilinear measure dictionary object.
EntryT | Represents the "T" entry of the rectilinear measure dictionary object.
EntryS | Represents the "S" entry of the rectilinear measure dictionary object.
EntryO | Represents the "O" entry of the rectilinear measure dictionary object.
EntryCYX | Represents the "CYX" entry of the rectilinear measure dictionary object.
 | inherited properties...


ZZ Elements RectilinearMeasureElement Constructor Function

RectilinearMeasureElement Function

Create a new RectilinearMeasureElement.

Syntax

[C#]
RectilinearMeasureElement()
RectilinearMeasureElement(Atom atom, IndirectObject host)
RectilinearMeasureElement(IndirectObject obj)
RectilinearMeasureElement(Element relation, CreationOptions options)

[Visual Basic]
RectilinearMeasureElement()
RectilinearMeasureElement(atom As Atom, host As IndirectObject)
RectilinearMeasureElement(obj As IndirectObject)
RectilinearMeasureElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RectilinearMeasureElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements RectilinearMeasureElement EntryR Property

EntryR Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "R" entry of the rectilinear measure dictionary object.

Notes

Represents the "R" entry of the rectilinear measure dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 262, page 481.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 267, page 594.


ZZ Elements RectilinearMeasureElement EntryX Property

EntryX Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<NumberFormatElement> [Visual Basic] ArrayElement<NumberFormatElement> | null | No | Represents the "X" entry of the rectilinear measure dictionary object.

Notes

Represents the "X" entry of the rectilinear measure dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains NumberFormatElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 262, page 481.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 267, page 594.


ZZ Elements RectilinearMeasureElement EntryY Property

EntryY Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<NumberFormatElement> [Visual Basic] ArrayElement<NumberFormatElement> | null | No | Represents the "Y" entry of the rectilinear measure dictionary object.

Notes

Represents the "Y" entry of the rectilinear measure dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an array which contains NumberFormatElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 262, page 481.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 267, page 594.


ZZ Elements RectilinearMeasureElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<NumberFormatElement> [Visual Basic] ArrayElement<NumberFormatElement> | null | No | Represents the "D" entry of the rectilinear measure dictionary object.

Notes

Represents the "D" entry of the rectilinear measure dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains NumberFormatElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 262, page 481.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 267, page 594.


ZZ Elements RectilinearMeasureElement EntryA Property

EntryA Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<NumberFormatElement> [Visual Basic] ArrayElement<NumberFormatElement> | null | No | Represents the "A" entry of the rectilinear measure dictionary object.

Notes

Represents the "A" entry of the rectilinear measure dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains NumberFormatElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 262, page 481.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 267, page 594.


ZZ Elements RectilinearMeasureElement EntryT Property

EntryT Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<NumberFormatElement> [Visual Basic] ArrayElement<NumberFormatElement> | null | No | Represents the "T" entry of the rectilinear measure dictionary object.

Notes

Represents the "T" entry of the rectilinear measure dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains NumberFormatElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 262, page 481.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 267, page 594.


ZZ Elements RectilinearMeasureElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<NumberFormatElement> [Visual Basic] ArrayElement<NumberFormatElement> | null | No | Represents the "S" entry of the rectilinear measure dictionary object.

Notes

Represents the "S" entry of the rectilinear measure dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains NumberFormatElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 262, page 481.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 267, page 594.


ZZ Elements RectilinearMeasureElement EntryO Property

EntryO Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "O" entry of the rectilinear measure dictionary object.

Notes

Represents the "O" entry of the rectilinear measure dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 262, page 481.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 267, page 595.


ZZ Elements RectilinearMeasureElement EntryCYX Property

EntryCYX Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "CYX" entry of the rectilinear measure dictionary object.

Notes

Represents the "CYX" entry of the rectilinear measure dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 262, page 482.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 267, page 595.


ZZ Elements NumberFormatElement

NumberFormatElement Class

This class represents the number format dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 263, page 482.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 268, page 595.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.NumberFormatElement

Method | Description
NumberFormatElement | Create a new NumberFormatElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the number format dictionary object.
EntryU | Represents the "U" entry of the number format dictionary object.
EntryC | Represents the "C" entry of the number format dictionary object.
EntryF | Represents the "F" entry of the number format dictionary object.
EntryD | Represents the "D" entry of the number format dictionary object.
EntryFD | Represents the "FD" entry of the number format dictionary object.
EntryRT | Represents the "RT" entry of the number format dictionary object.
EntryRD | Represents the "RD" entry of the number format dictionary object.
EntryPS | Represents the "PS" entry of the number format dictionary object.
EntrySS | Represents the "SS" entry of the number format dictionary object.
EntryO | Represents the "O" entry of the number format dictionary object.
 | inherited properties...


ZZ Elements NumberFormatElement Constructor Function

NumberFormatElement Function

Create a new NumberFormatElement.

Syntax

[C#]
NumberFormatElement()
NumberFormatElement(Atom atom, IndirectObject host)
NumberFormatElement(IndirectObject obj)
NumberFormatElement(Element relation, CreationOptions options)

[Visual Basic]
NumberFormatElement()
NumberFormatElement(atom As Atom, host As IndirectObject)
NumberFormatElement(obj As IndirectObject)
NumberFormatElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new NumberFormatElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements NumberFormatElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the number format dictionary object.

Notes

Represents the "Type" entry of the number format dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "NumberFormat".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 263, page 482.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 268, page 595.


ZZ Elements NumberFormatElement EntryU Property

EntryU Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "U" entry of the number format dictionary object.

Notes

Represents the "U" entry of the number format dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 263, page 482.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 268, page 595.


ZZ Elements NumberFormatElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "C" entry of the number format dictionary object.

Notes

Represents the "C" entry of the number format dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 263, page 482.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 268, page 595.


ZZ Elements NumberFormatElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "F" entry of the number format dictionary object.

Notes

Represents the "F" entry of the number format dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "D" if no value has been provided.

This item may take one of the following valid values:.

  • D
  • F
  • R
  • T

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 263, page 482.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 268, page 595.


ZZ Elements NumberFormatElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "D" entry of the number format dictionary object.

Notes

Represents the "D" entry of the number format dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

It should have a minimum value of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 263, page 482.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 268, page 596.


ZZ Elements NumberFormatElement EntryFD Property

EntryFD Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "FD" entry of the number format dictionary object.

Notes

Represents the "FD" entry of the number format dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 263, page 482.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 268, page 596.


ZZ Elements NumberFormatElement EntryRT Property

EntryRT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "RT" entry of the number format dictionary object.

Notes

Represents the "RT" entry of the number format dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

The PDF specification states that this item assumes a value of "COMMA (2Ch)" if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 263, page 483.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 268, page 596.


ZZ Elements NumberFormatElement EntryRD Property

EntryRD Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "RD" entry of the number format dictionary object.

Notes

Represents the "RD" entry of the number format dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

The PDF specification states that this item assumes a value of "PERIOD (2Eh)" if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 263, page 483.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 268, page 596.


ZZ Elements NumberFormatElement EntryPS Property

EntryPS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "PS" entry of the number format dictionary object.

Notes

Represents the "PS" entry of the number format dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

The PDF specification states that this item assumes a value of "A single ASCII SPACE character (20h)" if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 263, page 483.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 268, page 596.


ZZ Elements NumberFormatElement EntrySS Property

EntrySS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "SS" entry of the number format dictionary object.

Notes

Represents the "SS" entry of the number format dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

The PDF specification states that this item assumes a value of "A single ASCII SPACE character (20h)" if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 263, page 483.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 268, page 596.


ZZ Elements NumberFormatElement EntryO Property

EntryO Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "O" entry of the number format dictionary object.

Notes

Represents the "O" entry of the number format dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "S" if no value has been provided.

This item may take one of the following valid values:.

  • S
  • P

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 263, page 483.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 268, page 596.


ZZ Elements RequirementElement

RequirementElement Class

This class represents the requirement dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 264, page 484.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 274, page 603.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RequirementElement

Method | Description
RequirementElement | Create a new RequirementElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the requirement dictionary object.
EntryS | Represents the "S" entry of the requirement dictionary object.
EntryRH | Represents the "RH" entry of the requirement dictionary object.
EntryV | Represents the "V" entry of the requirement dictionary object.
EntryPenalty | Represents the "Penalty" entry of the requirement dictionary object.
EntryEncrypt | Represents the "Encrypt" entry of the requirement dictionary object.
EntryDigSig | Represents the "DigSig" entry of the requirement dictionary object.
 | inherited properties...


ZZ Elements RequirementElement Constructor Function

RequirementElement Function

Create a new RequirementElement.

Syntax

[C#]
RequirementElement()
RequirementElement(Atom atom, IndirectObject host)
RequirementElement(IndirectObject obj)
RequirementElement(Element relation, CreationOptions options)

[Visual Basic]
RequirementElement()
RequirementElement(atom As Atom, host As IndirectObject)
RequirementElement(obj As IndirectObject)
RequirementElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RequirementElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements RequirementElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the requirement dictionary object.

Notes

Represents the "Type" entry of the requirement dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Requirement".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 264, page 484.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 274, page 603.


ZZ Elements RequirementElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the requirement dictionary object.

Notes

Represents the "S" entry of the requirement dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "EnableJavaScripts".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 264, page 484.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 274, page 603.


ZZ Elements RequirementElement EntryRH Property

EntryRH Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<RequirementHandlerElement> [Visual Basic] ArrayElement<RequirementHandlerElement> | null | No | Represents the "RH" entry of the requirement dictionary object.

Notes

Represents the "RH" entry of the requirement dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains RequirementHandlerElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 264, page 484.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 274, page 603.


ZZ Elements RequirementElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "V" entry of the requirement dictionary object.

Notes

Represents the "V" entry of the requirement dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

2) An ExtensionsElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 264, page 484.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 274, page 603.


ZZ Elements RequirementElement EntryPenalty Property

EntryPenalty Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Penalty" entry of the requirement dictionary object.

Notes

Represents the "Penalty" entry of the requirement dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 264, page 484.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 274, page 603.


ZZ Elements RequirementElement EntryEncrypt Property

EntryEncrypt Property

Type | Default Value | Read Only | Description
[C#] EncryptionElement [Visual Basic] EncryptionElement | null | No | Represents the "Encrypt" entry of the requirement dictionary object.

Notes

Represents the "Encrypt" entry of the requirement dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an EncryptionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 264, page 484.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 274, page 603.


ZZ Elements RequirementElement EntryDigSig Property

EntryDigSig Property

Type | Default Value | Read Only | Description
[C#] SignatureElement [Visual Basic] SignatureElement | null | No | Represents the "DigSig" entry of the requirement dictionary object.

Notes

Represents the "DigSig" entry of the requirement dictionary object.

It is defined as part of the PDF 2.0 specification.

It contains a SignatureElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 264, page 484.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 274, page 603.


ZZ Elements RequirementHandlerElement

RequirementHandlerElement Class

This class represents the requirement handler dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 265, page 485.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 276, page 608.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RequirementHandlerElement

Method | Description
RequirementHandlerElement | Create a new RequirementHandlerElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the requirement handler dictionary object.
EntryS | Represents the "S" entry of the requirement handler dictionary object.
EntryScript | Represents the "Script" entry of the requirement handler dictionary object.
 | inherited properties...


ZZ Elements RequirementHandlerElement Constructor Function

RequirementHandlerElement Function

Create a new RequirementHandlerElement.

Syntax

[C#]
RequirementHandlerElement()
RequirementHandlerElement(Atom atom, IndirectObject host)
RequirementHandlerElement(IndirectObject obj)
RequirementHandlerElement(Element relation, CreationOptions options)

[Visual Basic]
RequirementHandlerElement()
RequirementHandlerElement(atom As Atom, host As IndirectObject)
RequirementHandlerElement(obj As IndirectObject)
RequirementHandlerElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RequirementHandlerElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements RequirementHandlerElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the requirement handler dictionary object.

Notes

Represents the "Type" entry of the requirement handler dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "ReqHandler".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 265, page 485.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 276, page 608.


ZZ Elements RequirementHandlerElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the requirement handler dictionary object.

Notes

Represents the "S" entry of the requirement handler dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • JS
  • NoOp

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 265, page 485.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 276, page 608.


ZZ Elements RequirementHandlerElement EntryScript Property

EntryScript Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Script" entry of the requirement handler dictionary object.

Notes

Represents the "Script" entry of the requirement handler dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 265, page 485.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 276, page 608.


ZZ Elements CollectionColorsElement

CollectionColorsElement Class

This class represents the collection colors dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 157, page 449.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6a, page 31.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CollectionColorsElement

Method | Description
CollectionColorsElement | Create a new CollectionColorsElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the collection colors dictionary object.
EntryBackground | Represents the "Background" entry of the collection colors dictionary object.
EntryCardBackground | Represents the "CardBackground" entry of the collection colors dictionary object.
EntryCardBorder | Represents the "CardBorder" entry of the collection colors dictionary object.
EntryPrimaryText | Represents the "PrimaryText" entry of the collection colors dictionary object.
EntrySecondaryText | Represents the "SecondaryText" entry of the collection colors dictionary object.
 | inherited properties...


ZZ Elements CollectionColorsElement Constructor Function

CollectionColorsElement Function

Create a new CollectionColorsElement.

Syntax

[C#]
CollectionColorsElement()
CollectionColorsElement(Atom atom, IndirectObject host)
CollectionColorsElement(IndirectObject obj)
CollectionColorsElement(Element relation, CreationOptions options)

[Visual Basic]
CollectionColorsElement()
CollectionColorsElement(atom As Atom, host As IndirectObject)
CollectionColorsElement(obj As IndirectObject)
CollectionColorsElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CollectionColorsElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CollectionColorsElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the collection colors dictionary object.

Notes

Represents the "Type" entry of the collection colors dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "CollectionColors".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6a, page 31.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 157, page 449.


ZZ Elements CollectionColorsElement EntryBackground Property

EntryBackground Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Background" entry of the collection colors dictionary object.

Notes

Represents the "Background" entry of the collection colors dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6a, page 31.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 157, page 449.


ZZ Elements CollectionColorsElement EntryCardBackground Property

EntryCardBackground Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "CardBackground" entry of the collection colors dictionary object.

Notes

Represents the "CardBackground" entry of the collection colors dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6a, page 31.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 157, page 449.


ZZ Elements CollectionColorsElement EntryCardBorder Property

EntryCardBorder Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "CardBorder" entry of the collection colors dictionary object.

Notes

Represents the "CardBorder" entry of the collection colors dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6a, page 31.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 157, page 449.


ZZ Elements CollectionColorsElement EntryPrimaryText Property

EntryPrimaryText Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "PrimaryText" entry of the collection colors dictionary object.

Notes

Represents the "PrimaryText" entry of the collection colors dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6a, page 31.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 157, page 450.


ZZ Elements CollectionColorsElement EntrySecondaryText Property

EntrySecondaryText Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "SecondaryText" entry of the collection colors dictionary object.

Notes

Represents the "SecondaryText" entry of the collection colors dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6a, page 31.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 157, page 450.


ZZ Elements CollectionSplitElement

CollectionSplitElement Class

This class represents the collection split dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 158, page 450.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6b, page 31.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CollectionSplitElement

Method | Description
CollectionSplitElement | Create a new CollectionSplitElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the collection split dictionary object.
EntryDirection | Represents the "Direction" entry of the collection split dictionary object.
EntryPosition | Represents the "Position" entry of the collection split dictionary object.
 | inherited properties...


ZZ Elements CollectionSplitElement Constructor Function

CollectionSplitElement Function

Create a new CollectionSplitElement.

Syntax

[C#]
CollectionSplitElement()
CollectionSplitElement(Atom atom, IndirectObject host)
CollectionSplitElement(IndirectObject obj)
CollectionSplitElement(Element relation, CreationOptions options)

[Visual Basic]
CollectionSplitElement()
CollectionSplitElement(atom As Atom, host As IndirectObject)
CollectionSplitElement(obj As IndirectObject)
CollectionSplitElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CollectionSplitElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CollectionSplitElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the collection split dictionary object.

Notes

Represents the "Type" entry of the collection split dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "CollectionSplit".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6b, page 31.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 158, page 450.


ZZ Elements CollectionSplitElement EntryDirection Property

EntryDirection Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Direction" entry of the collection split dictionary object.

Notes

Represents the "Direction" entry of the collection split dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • H
  • V
  • N

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6b, page 31.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 158, page 450.


ZZ Elements CollectionSplitElement EntryPosition Property

EntryPosition Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Position" entry of the collection split dictionary object.

Notes

Represents the "Position" entry of the collection split dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6b, page 31.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 158, page 450.


ZZ Elements FolderElement

FolderElement Class

This class represents the folder dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 159, page 450.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6c, page 32.

This class is always an indirect object because CollectionElement.EntryFolders, FolderElement.EntryChild, FolderElement.EntryNext and FolderElement.EntryParent require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FolderElement

Method | Description
FolderElement | Create a new FolderElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the folder dictionary object.
EntryID | Represents the "ID" entry of the folder dictionary object.
EntryName | Represents the "Name" entry of the folder dictionary object.
EntryParent | Represents the "Parent" entry of the folder dictionary object.
EntryChild | Represents the "Child" entry of the folder dictionary object.
EntryNext | Represents the "Next" entry of the folder dictionary object.
EntryCI | Represents the "CI" entry of the folder dictionary object.
EntryDesc | Represents the "Desc" entry of the folder dictionary object.
EntryCreationDate | Represents the "CreationDate" entry of the folder dictionary object.
EntryModDate | Represents the "ModDate" entry of the folder dictionary object.
EntryThumb | Represents the "Thumb" entry of the folder dictionary object.
EntryFree | Represents the "Free" entry of the folder dictionary object.
 | inherited properties...


ZZ Elements FolderElement Constructor Function

FolderElement Function

Create a new FolderElement.

Syntax

[C#]
FolderElement()
FolderElement(Atom atom, IndirectObject host)
FolderElement(IndirectObject obj)
FolderElement(Element relation, CreationOptions options)

[Visual Basic]
FolderElement()
FolderElement(atom As Atom, host As IndirectObject)
FolderElement(obj As IndirectObject)
FolderElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FolderElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FolderElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the folder dictionary object.

Notes

Represents the "Type" entry of the folder dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Folder".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6c, page 32.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 159, page 450.


ZZ Elements FolderElement EntryID Property

EntryID Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "ID" entry of the folder dictionary object.

Notes

Represents the "ID" entry of the folder dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an integer representing a PDF numeric object.

It should have a minimum value of 0.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6c, page 32.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 159, page 451.


ZZ Elements FolderElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Name" entry of the folder dictionary object.

Notes

Represents the "Name" entry of the folder dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6c, page 32.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 159, page 451.


ZZ Elements FolderElement EntryParent Property

EntryParent Property

Type | Default Value | Read Only | Description
[C#] FolderElement [Visual Basic] FolderElement | null | No | Represents the "Parent" entry of the folder dictionary object.

Notes

Represents the "Parent" entry of the folder dictionary object.

It is defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a FolderElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6c, page 32.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 159, page 451.


ZZ Elements FolderElement EntryChild Property

EntryChild Property

Type | Default Value | Read Only | Description
[C#] FolderElement [Visual Basic] FolderElement | null | No | Represents the "Child" entry of the folder dictionary object.

Notes

Represents the "Child" entry of the folder dictionary object.

It is defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a FolderElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6c, page 32.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 159, page 451.


ZZ Elements FolderElement EntryNext Property

EntryNext Property

Type | Default Value | Read Only | Description
[C#] FolderElement [Visual Basic] FolderElement | null | No | Represents the "Next" entry of the folder dictionary object.

Notes

Represents the "Next" entry of the folder dictionary object.

It is defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a FolderElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6c, page 32.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 159, page 451.


ZZ Elements FolderElement EntryCI Property

EntryCI Property

Type | Default Value | Read Only | Description
[C#] CollectionItemElement [Visual Basic] CollectionItemElement | null | No | Represents the "CI" entry of the folder dictionary object.

Notes

Represents the "CI" entry of the folder dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a CollectionItemElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6c, page 32.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 159, page 451.


ZZ Elements FolderElement EntryDesc Property

EntryDesc Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Desc" entry of the folder dictionary object.

Notes

Represents the "Desc" entry of the folder dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6c, page 32.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 159, page 451.


ZZ Elements FolderElement EntryCreationDate Property

EntryCreationDate Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "CreationDate" entry of the folder dictionary object.

Notes

Represents the "CreationDate" entry of the folder dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

This is encoded as a date string. For details see the StringAtom.DateToString and StringAtom.StringToDate functions.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6c, page 32.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 159, page 451.


ZZ Elements FolderElement EntryModDate Property

EntryModDate Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ModDate" entry of the folder dictionary object.

Notes

Represents the "ModDate" entry of the folder dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

This is encoded as a date string. For details see the StringAtom.DateToString and StringAtom.StringToDate functions.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6c, page 32.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 159, page 451.


ZZ Elements FolderElement EntryThumb Property

EntryThumb Property

Type | Default Value | Read Only | Description
[C#] ImageXObjectElement [Visual Basic] ImageXObjectElement | null | No | Represents the "Thumb" entry of the folder dictionary object.

Notes

Represents the "Thumb" entry of the folder dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an ImageXObjectElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6c, page 32.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 159, page 451.


ZZ Elements FolderElement EntryFree Property

EntryFree Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Free" entry of the folder dictionary object.

Notes

Represents the "Free" entry of the folder dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6c, page 32.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 159, page 451.


ZZ Elements NavigatorElement

NavigatorElement Class

This class represents the navigator dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 160, page 454.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6d, page 34.

This class is always an indirect object because CollectionElement.EntryNavigator requires it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.NavigatorElement

Method | Description
NavigatorElement | Create a new NavigatorElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the navigator dictionary object.
EntrySWF | Represents the "SWF" entry of the navigator dictionary object.
EntryName | Represents the "Name" entry of the navigator dictionary object.
EntryDesc | Represents the "Desc" entry of the navigator dictionary object.
EntryCategory | Represents the "Category" entry of the navigator dictionary object.
EntryID | Represents the "ID" entry of the navigator dictionary object.
EntryVersion | Represents the "Version" entry of the navigator dictionary object.
EntryAPIVersion | Represents the "APIVersion" entry of the navigator dictionary object.
EntryLoadType | Represents the "LoadType" entry of the navigator dictionary object.
EntryIcon | Represents the "Icon" entry of the navigator dictionary object.
EntryLocale | Represents the "Locale" entry of the navigator dictionary object.
EntryStrings | Represents the "Strings" entry of the navigator dictionary object.
EntryInitialFields | Represents the "InitialFields" entry of the navigator dictionary object.
EntryResources | Represents the "Resources" entry of the navigator dictionary object.
EntryLayout | Represents the "Layout" entry of the navigator dictionary object.
 | inherited properties...


ZZ Elements NavigatorElement Constructor Function

NavigatorElement Function

Create a new NavigatorElement.

Syntax

[C#]
NavigatorElement()
NavigatorElement(Atom atom, IndirectObject host)
NavigatorElement(IndirectObject obj)
NavigatorElement(Element relation, CreationOptions options)

[Visual Basic]
NavigatorElement()
NavigatorElement(atom As Atom, host As IndirectObject)
NavigatorElement(obj As IndirectObject)
NavigatorElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new NavigatorElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements NavigatorElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the navigator dictionary object.

Notes

Represents the "Type" entry of the navigator dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Navigator".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6d, page 34.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 160, page 454.


ZZ Elements NavigatorElement EntrySWF Property

EntrySWF Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "SWF" entry of the navigator dictionary object.

Notes

Represents the "SWF" entry of the navigator dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6d, page 34.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 160, page 454.


ZZ Elements NavigatorElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Name" entry of the navigator dictionary object.

Notes

Represents the "Name" entry of the navigator dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6d, page 34.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 160, page 454.


ZZ Elements NavigatorElement EntryDesc Property

EntryDesc Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Desc" entry of the navigator dictionary object.

Notes

Represents the "Desc" entry of the navigator dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6d, page 34.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 160, page 454.


ZZ Elements NavigatorElement EntryCategory Property

EntryCategory Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Category" entry of the navigator dictionary object.

Notes

Represents the "Category" entry of the navigator dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6d, page 34.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 160, page 454.


ZZ Elements NavigatorElement EntryID Property

EntryID Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ID" entry of the navigator dictionary object.

Notes

Represents the "ID" entry of the navigator dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6d, page 34.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 160, page 454.


ZZ Elements NavigatorElement EntryVersion Property

EntryVersion Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Version" entry of the navigator dictionary object.

Notes

Represents the "Version" entry of the navigator dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6d, page 34.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 160, page 454.


ZZ Elements NavigatorElement EntryAPIVersion Property

EntryAPIVersion Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "APIVersion" entry of the navigator dictionary object.

Notes

Represents the "APIVersion" entry of the navigator dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6d, page 34.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 160, page 454.


ZZ Elements NavigatorElement EntryLoadType Property

EntryLoadType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "LoadType" entry of the navigator dictionary object.

Notes

Represents the "LoadType" entry of the navigator dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Default" if no value has been provided.

This item may take one of the following valid values:.

  • Module
  • Default

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6d, page 34.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 160, page 454.


ZZ Elements NavigatorElement EntryIcon Property

EntryIcon Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Icon" entry of the navigator dictionary object.

Notes

Represents the "Icon" entry of the navigator dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6d, page 34.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 160, page 454.


ZZ Elements NavigatorElement EntryLocale Property

EntryLocale Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Locale" entry of the navigator dictionary object.

Notes

Represents the "Locale" entry of the navigator dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6d, page 34.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 160, page 454.


ZZ Elements NavigatorElement EntryStrings Property

EntryStrings Property

Type | Default Value | Read Only | Description
[C#] NameTreeNodeElement<Element> [Visual Basic] NameTreeNodeElement<Element> | null | No | Represents the "Strings" entry of the navigator dictionary object.

Notes

Represents the "Strings" entry of the navigator dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a NameTreeNodeElement containing strings, representing PDF string objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6d, page 34.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 160, page 454.


ZZ Elements NavigatorElement EntryInitialFields Property

EntryInitialFields Property

Type | Default Value | Read Only | Description
[C#] CollectionSchemaElement [Visual Basic] CollectionSchemaElement | null | No | Represents the "InitialFields" entry of the navigator dictionary object.

Notes

Represents the "InitialFields" entry of the navigator dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a CollectionSchemaElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6d, page 34.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 160, page 454.


ZZ Elements NavigatorElement EntryResources Property

EntryResources Property

Type | Default Value | Read Only | Description
[C#] NameTreeNodeElement<StreamElement> [Visual Basic] NameTreeNodeElement<StreamElement> | null | No | Represents the "Resources" entry of the navigator dictionary object.

Notes

Represents the "Resources" entry of the navigator dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a NameTreeNodeElement containing StreamElements.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6d, page 34.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 160, page 454.


ZZ Elements NavigatorElement EntryLayout Property

EntryLayout Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Layout" entry of the navigator dictionary object.

Notes

Represents the "Layout" entry of the navigator dictionary object.

It is a required entry defined as part of the PDF 2.0 specification.

It contains an array which contains strings, representing PDF name objects.

If you read the specification you will see that an array of one string may be represented as a single string rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.6d, page 34.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 160, page 454.


ZZ Elements ProjectionAnnotationElement

ProjectionAnnotationElement Class

This class represents the projection annotation. This is definitively detailed in:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: page39, page 39.

This class is always an indirect object because D3DAngularMeasurementElement.EntryS, D3DCommentNoteElement.EntryS, D3DLinearMeasurementElement.EntryS, D3DPerpendicularMeasurementElement.EntryS and D3DRadialMeasurementElement.EntryS require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.MarkupAnnotationElement
            WebSupergoo.ABCpdf12.Elements.ProjectionAnnotationElement

Method | Description
ProjectionAnnotationElement | Create a new ProjectionAnnotationElement.
 | inherited methods...

Property | Description
EntryIT | Represents the "IT" entry of the projection annotation object.
 | inherited properties...


ZZ Elements ProjectionAnnotationElement Constructor Function

ProjectionAnnotationElement Function

Create a new ProjectionAnnotationElement.

Syntax

[C#]
ProjectionAnnotationElement()
ProjectionAnnotationElement(Atom atom, IndirectObject host)
ProjectionAnnotationElement(IndirectObject obj)
ProjectionAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
ProjectionAnnotationElement()
ProjectionAnnotationElement(atom As Atom, host As IndirectObject)
ProjectionAnnotationElement(obj As IndirectObject)
ProjectionAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ProjectionAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ProjectionAnnotationElement EntryIT Property

EntryIT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "IT" entry of the projection annotation object.

Notes

Represents the "IT" entry of the projection annotation object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a string representing a PDF name object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: page39, page 39.


ZZ Elements RichMediaExecuteActionElement

RichMediaExecuteActionElement Class

This class represents the rich-media-execute action. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 222, page 523.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.48a, page 40.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ActionElement
         WebSupergoo.ABCpdf12.Elements.RichMediaExecuteActionElement

Method | Description
RichMediaExecuteActionElement | Create a new RichMediaExecuteActionElement.
 | inherited methods...

Property | Description
EntryTA | Represents the "TA" entry of the rich-media-execute action object.
EntryTI | Represents the "TI" entry of the rich-media-execute action object.
EntryCMD | Represents the "CMD" entry of the rich-media-execute action object.
 | inherited properties...


ZZ Elements RichMediaExecuteActionElement Constructor Function

RichMediaExecuteActionElement Function

Create a new RichMediaExecuteActionElement.

Syntax

[C#]
RichMediaExecuteActionElement()
RichMediaExecuteActionElement(Atom atom, IndirectObject host)
RichMediaExecuteActionElement(IndirectObject obj)
RichMediaExecuteActionElement(Element relation, CreationOptions options)

[Visual Basic]
RichMediaExecuteActionElement()
RichMediaExecuteActionElement(atom As Atom, host As IndirectObject)
RichMediaExecuteActionElement(obj As IndirectObject)
RichMediaExecuteActionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RichMediaExecuteActionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements RichMediaExecuteActionElement EntryTA Property

EntryTA Property

Type | Default Value | Read Only | Description
[C#] RichMediaAnnotationElement [Visual Basic] RichMediaAnnotationElement | null | No | Represents the "TA" entry of the rich-media-execute action object.

Notes

Represents the "TA" entry of the rich-media-execute action object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RichMediaAnnotationElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.48a, page 40.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 222, page 523.


ZZ Elements RichMediaExecuteActionElement EntryTI Property

EntryTI Property

Type | Default Value | Read Only | Description
[C#] RichMediaInstanceElement [Visual Basic] RichMediaInstanceElement | null | No | Represents the "TI" entry of the rich-media-execute action object.

Notes

Represents the "TI" entry of the rich-media-execute action object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RichMediaInstanceElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.48a, page 40.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 222, page 523.


ZZ Elements RichMediaExecuteActionElement EntryCMD Property

EntryCMD Property

Type | Default Value | Read Only | Description
[C#] RichMediaCommandElement [Visual Basic] RichMediaCommandElement | null | No | Represents the "CMD" entry of the rich-media-execute action object.

Notes

Represents the "CMD" entry of the rich-media-execute action object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RichMediaCommandElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.48a, page 40.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 222, page 523.


ZZ Elements RichMediaCommandElement

RichMediaCommandElement Class

This class represents the richmediacommand dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 223, page 524.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.48b, page 41.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RichMediaCommandElement

Method | Description
RichMediaCommandElement | Create a new RichMediaCommandElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the richmediacommand dictionary object.
EntryC | Represents the "C" entry of the richmediacommand dictionary object.
EntryA | Represents the "A" entry of the richmediacommand dictionary object.
 | inherited properties...


ZZ Elements RichMediaCommandElement Constructor Function

RichMediaCommandElement Function

Create a new RichMediaCommandElement.

Syntax

[C#]
RichMediaCommandElement()
RichMediaCommandElement(Atom atom, IndirectObject host)
RichMediaCommandElement(IndirectObject obj)
RichMediaCommandElement(Element relation, CreationOptions options)

[Visual Basic]
RichMediaCommandElement()
RichMediaCommandElement(atom As Atom, host As IndirectObject)
RichMediaCommandElement(obj As IndirectObject)
RichMediaCommandElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RichMediaCommandElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements RichMediaCommandElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the richmediacommand dictionary object.

Notes

Represents the "Type" entry of the richmediacommand dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "RichMediaCommand".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.48b, page 41.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 223, page 524.


ZZ Elements RichMediaCommandElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "C" entry of the richmediacommand dictionary object.

Notes

Represents the "C" entry of the richmediacommand dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.48b, page 41.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 223, page 524.


ZZ Elements RichMediaCommandElement EntryA Property

EntryA Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "A" entry of the richmediacommand dictionary object.

Notes

Represents the "A" entry of the richmediacommand dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

The specification defines this property as being of any type. So any type of atom or data content is valid.

It contains an Element.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.48b, page 41.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 223, page 524.


ZZ Elements PaperMetaDataGenerationParametersElement

PaperMetaDataGenerationParametersElement Class

This class represents the papermetadata generation parameters dictionary. This is definitively detailed in:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39b, page 47.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.PaperMetaDataGenerationParametersElement

Method | Description
PaperMetaDataGenerationParametersElement | Create a new PaperMetaDataGenerationParametersElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the papermetadata generation parameters dictionary object.
EntryVersion | Represents the "Version" entry of the papermetadata generation parameters dictionary object.
EntryResolution | Represents the "Resolution" entry of the papermetadata generation parameters dictionary object.
EntryCaption | Represents the "Caption" entry of the papermetadata generation parameters dictionary object.
EntrySymbology | Represents the "Symbology" entry of the papermetadata generation parameters dictionary object.
EntryWidth | Represents the "Width" entry of the papermetadata generation parameters dictionary object.
EntryHeight | Represents the "Height" entry of the papermetadata generation parameters dictionary object.
EntryXSymWidth | Represents the "XSymWidth" entry of the papermetadata generation parameters dictionary object.
EntryXSymHeight | Represents the "XSymHeight" entry of the papermetadata generation parameters dictionary object.
EntryECC | Represents the "ECC" entry of the papermetadata generation parameters dictionary object.
EntryNCodeWordRow | Represents the "nCodeWordRow" entry of the papermetadata generation parameters dictionary object.
EntryNCodeWordCol | Represents the "nCodeWordCol" entry of the papermetadata generation parameters dictionary object.
 | inherited properties...


ZZ Elements PaperMetaDataGenerationParametersElement Constructor Function

PaperMetaDataGenerationParametersElement Function

Create a new PaperMetaDataGenerationParametersElement.

Syntax

[C#]
PaperMetaDataGenerationParametersElement()
PaperMetaDataGenerationParametersElement(Atom atom, IndirectObject host)
PaperMetaDataGenerationParametersElement(IndirectObject obj)
PaperMetaDataGenerationParametersElement(Element relation, CreationOptions options)

[Visual Basic]
PaperMetaDataGenerationParametersElement()
PaperMetaDataGenerationParametersElement(atom As Atom, host As IndirectObject)
PaperMetaDataGenerationParametersElement(obj As IndirectObject)
PaperMetaDataGenerationParametersElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new PaperMetaDataGenerationParametersElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements PaperMetaDataGenerationParametersElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the papermetadata generation parameters dictionary object.

Notes

Represents the "Type" entry of the papermetadata generation parameters dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "PaperMetaData".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39b, page 47.


ZZ Elements PaperMetaDataGenerationParametersElement EntryVersion Property

EntryVersion Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Version" entry of the papermetadata generation parameters dictionary object.

Notes

Represents the "Version" entry of the papermetadata generation parameters dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39b, page 47.


ZZ Elements PaperMetaDataGenerationParametersElement EntryResolution Property

EntryResolution Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Resolution" entry of the papermetadata generation parameters dictionary object.

Notes

Represents the "Resolution" entry of the papermetadata generation parameters dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 300 if no value has been provided.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39b, page 47.


ZZ Elements PaperMetaDataGenerationParametersElement EntryCaption Property

EntryCaption Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Caption" entry of the papermetadata generation parameters dictionary object.

Notes

Represents the "Caption" entry of the papermetadata generation parameters dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39b, page 47.


ZZ Elements PaperMetaDataGenerationParametersElement EntrySymbology Property

EntrySymbology Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Symbology" entry of the papermetadata generation parameters dictionary object.

Notes

Represents the "Symbology" entry of the papermetadata generation parameters dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • PDF417
  • QRCode
  • DataMatrix

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39b, page 47.


ZZ Elements PaperMetaDataGenerationParametersElement EntryWidth Property

EntryWidth Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Width" entry of the papermetadata generation parameters dictionary object.

Notes

Represents the "Width" entry of the papermetadata generation parameters dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39b, page 47.


ZZ Elements PaperMetaDataGenerationParametersElement EntryHeight Property

EntryHeight Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Height" entry of the papermetadata generation parameters dictionary object.

Notes

Represents the "Height" entry of the papermetadata generation parameters dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39b, page 47.


ZZ Elements PaperMetaDataGenerationParametersElement EntryXSymWidth Property

EntryXSymWidth Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "XSymWidth" entry of the papermetadata generation parameters dictionary object.

Notes

Represents the "XSymWidth" entry of the papermetadata generation parameters dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39b, page 47.


ZZ Elements PaperMetaDataGenerationParametersElement EntryXSymHeight Property

EntryXSymHeight Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "XSymHeight" entry of the papermetadata generation parameters dictionary object.

Notes

Represents the "XSymHeight" entry of the papermetadata generation parameters dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39b, page 47.


ZZ Elements PaperMetaDataGenerationParametersElement EntryECC Property

EntryECC Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "ECC" entry of the papermetadata generation parameters dictionary object.

Notes

Represents the "ECC" entry of the papermetadata generation parameters dictionary object.

It is defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39b, page 47.


ZZ Elements PaperMetaDataGenerationParametersElement EntryNCodeWordRow Property

EntryNCodeWordRow Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "nCodeWordRow" entry of the papermetadata generation parameters dictionary object.

Notes

Represents the "nCodeWordRow" entry of the papermetadata generation parameters dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39b, page 47.


ZZ Elements PaperMetaDataGenerationParametersElement EntryNCodeWordCol Property

EntryNCodeWordCol Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "nCodeWordCol" entry of the papermetadata generation parameters dictionary object.

Notes

Represents the "nCodeWordCol" entry of the papermetadata generation parameters dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.39b, page 47.


ZZ Elements GeospatialMeasureElement

GeospatialMeasureElement Class

This class represents the geospatial measure dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 269, page 598.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111a, page 50.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MeasureElement
         WebSupergoo.ABCpdf12.Elements.GeospatialMeasureElement

Method | Description
GeospatialMeasureElement | Create a new GeospatialMeasureElement.
 | inherited methods...

Property | Description
EntryBounds | Represents the "Bounds" entry of the geospatial measure dictionary object.
EntryGCS | Represents the "GCS" entry of the geospatial measure dictionary object.
EntryDCS | Represents the "DCS" entry of the geospatial measure dictionary object.
EntryPDU | Represents the "PDU" entry of the geospatial measure dictionary object.
EntryGPTS | Represents the "GPTS" entry of the geospatial measure dictionary object.
EntryLPTS | Represents the "LPTS" entry of the geospatial measure dictionary object.
EntryPCSM | Represents the "PCSM" entry of the geospatial measure dictionary object.
 | inherited properties...


ZZ Elements GeospatialMeasureElement Constructor Function

GeospatialMeasureElement Function

Create a new GeospatialMeasureElement.

Syntax

[C#]
GeospatialMeasureElement()
GeospatialMeasureElement(Atom atom, IndirectObject host)
GeospatialMeasureElement(IndirectObject obj)
GeospatialMeasureElement(Element relation, CreationOptions options)

[Visual Basic]
GeospatialMeasureElement()
GeospatialMeasureElement(atom As Atom, host As IndirectObject)
GeospatialMeasureElement(obj As IndirectObject)
GeospatialMeasureElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new GeospatialMeasureElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements GeospatialMeasureElement EntryBounds Property

EntryBounds Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Bounds" entry of the geospatial measure dictionary object.

Notes

Represents the "Bounds" entry of the geospatial measure dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111a, page 50.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 269, page 598.


ZZ Elements GeospatialMeasureElement EntryGCS Property

EntryGCS Property

Type | Default Value | Read Only | Description
[C#] ProjectedCoordinateSystemElement [Visual Basic] ProjectedCoordinateSystemElement | null | No | Represents the "GCS" entry of the geospatial measure dictionary object.

Notes

Represents the "GCS" entry of the geospatial measure dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a ProjectedCoordinateSystemElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111a, page 50.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 269, page 598.


ZZ Elements GeospatialMeasureElement EntryDCS Property

EntryDCS Property

Type | Default Value | Read Only | Description
[C#] ProjectedCoordinateSystemElement [Visual Basic] ProjectedCoordinateSystemElement | null | No | Represents the "DCS" entry of the geospatial measure dictionary object.

Notes

Represents the "DCS" entry of the geospatial measure dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a ProjectedCoordinateSystemElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111a, page 50.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 269, page 598.


ZZ Elements GeospatialMeasureElement EntryPDU Property

EntryPDU Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "PDU" entry of the geospatial measure dictionary object.

Notes

Represents the "PDU" entry of the geospatial measure dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains strings, representing PDF name objects.

Items in this array may take one of the following valid values:.

  • .
  • M
  • KM
  • FT
  • USFT
  • MI
  • NM
  • SQM
  • HA
  • SQKM
  • SQFT
  • A
  • SQMI
  • DEG
  • GRD
  • 400

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111a, page 50.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 269, page 599.


ZZ Elements GeospatialMeasureElement EntryGPTS Property

EntryGPTS Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "GPTS" entry of the geospatial measure dictionary object.

Notes

Represents the "GPTS" entry of the geospatial measure dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111a, page 50.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 269, page 599.


ZZ Elements GeospatialMeasureElement EntryLPTS Property

EntryLPTS Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "LPTS" entry of the geospatial measure dictionary object.

Notes

Represents the "LPTS" entry of the geospatial measure dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111a, page 50.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 269, page 599.


ZZ Elements GeospatialMeasureElement EntryPCSM Property

EntryPCSM Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "PCSM" entry of the geospatial measure dictionary object.

Notes

Represents the "PCSM" entry of the geospatial measure dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111a, page 50.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 269, page 599.


ZZ Elements GeographicCoordinateSystemElement

GeographicCoordinateSystemElement Class

This class represents the geographic coordinate system dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 270, page 600.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111b, page 51.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.GeographicCoordinateSystemElement

Method | Description
GeographicCoordinateSystemElement | Create a new GeographicCoordinateSystemElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the geographic coordinate system dictionary object.
EntryEPSG | Represents the "EPSG" entry of the geographic coordinate system dictionary object.
EntryWKT | Represents the "WKT" entry of the geographic coordinate system dictionary object.
 | inherited properties...


ZZ Elements GeographicCoordinateSystemElement Constructor Function

GeographicCoordinateSystemElement Function

Create a new GeographicCoordinateSystemElement.

Syntax

[C#]
GeographicCoordinateSystemElement()
GeographicCoordinateSystemElement(Atom atom, IndirectObject host)
GeographicCoordinateSystemElement(IndirectObject obj)
GeographicCoordinateSystemElement(Element relation, CreationOptions options)

[Visual Basic]
GeographicCoordinateSystemElement()
GeographicCoordinateSystemElement(atom As Atom, host As IndirectObject)
GeographicCoordinateSystemElement(obj As IndirectObject)
GeographicCoordinateSystemElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new GeographicCoordinateSystemElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements GeographicCoordinateSystemElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the geographic coordinate system dictionary object.

Notes

Represents the "Type" entry of the geographic coordinate system dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "GEOGCS".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111b, page 51.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 270, page 600.


ZZ Elements GeographicCoordinateSystemElement EntryEPSG Property

EntryEPSG Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "EPSG" entry of the geographic coordinate system dictionary object.

Notes

Represents the "EPSG" entry of the geographic coordinate system dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111b, page 51.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 270, page 600.


ZZ Elements GeographicCoordinateSystemElement EntryWKT Property

EntryWKT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "WKT" entry of the geographic coordinate system dictionary object.

Notes

Represents the "WKT" entry of the geographic coordinate system dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111b, page 51.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 270, page 600.


ZZ Elements ProjectedCoordinateSystemElement

ProjectedCoordinateSystemElement Class

This class represents the projected coordinate system dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 271, page 601.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111c, page 52.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ProjectedCoordinateSystemElement

Method | Description
ProjectedCoordinateSystemElement | Create a new ProjectedCoordinateSystemElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the projected coordinate system dictionary object.
EntryEPSG | Represents the "EPSG" entry of the projected coordinate system dictionary object.
EntryWKT | Represents the "WKT" entry of the projected coordinate system dictionary object.
 | inherited properties...


ZZ Elements ProjectedCoordinateSystemElement Constructor Function

ProjectedCoordinateSystemElement Function

Create a new ProjectedCoordinateSystemElement.

Syntax

[C#]
ProjectedCoordinateSystemElement()
ProjectedCoordinateSystemElement(Atom atom, IndirectObject host)
ProjectedCoordinateSystemElement(IndirectObject obj)
ProjectedCoordinateSystemElement(Element relation, CreationOptions options)

[Visual Basic]
ProjectedCoordinateSystemElement()
ProjectedCoordinateSystemElement(atom As Atom, host As IndirectObject)
ProjectedCoordinateSystemElement(obj As IndirectObject)
ProjectedCoordinateSystemElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ProjectedCoordinateSystemElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ProjectedCoordinateSystemElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the projected coordinate system dictionary object.

Notes

Represents the "Type" entry of the projected coordinate system dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "PROJCS".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111c, page 52.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 271, page 601.


ZZ Elements ProjectedCoordinateSystemElement EntryEPSG Property

EntryEPSG Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "EPSG" entry of the projected coordinate system dictionary object.

Notes

Represents the "EPSG" entry of the projected coordinate system dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111c, page 52.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 271, page 601.


ZZ Elements ProjectedCoordinateSystemElement EntryWKT Property

EntryWKT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "WKT" entry of the projected coordinate system dictionary object.

Notes

Represents the "WKT" entry of the projected coordinate system dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111c, page 52.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 271, page 601.


ZZ Elements PointDataElement

PointDataElement Class

This class represents the point data dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 272, page 602.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111d, page 53.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.PointDataElement

Method | Description
PointDataElement | Create a new PointDataElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the point data dictionary object.
EntrySubtype | Represents the "Subtype" entry of the point data dictionary object.
EntryNames | Represents the "Names" entry of the point data dictionary object.
EntryXPTS | Represents the "XPTS" entry of the point data dictionary object.
 | inherited properties...


ZZ Elements PointDataElement Constructor Function

PointDataElement Function

Create a new PointDataElement.

Syntax

[C#]
PointDataElement()
PointDataElement(Atom atom, IndirectObject host)
PointDataElement(IndirectObject obj)
PointDataElement(Element relation, CreationOptions options)

[Visual Basic]
PointDataElement()
PointDataElement(atom As Atom, host As IndirectObject)
PointDataElement(obj As IndirectObject)
PointDataElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new PointDataElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements PointDataElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the point data dictionary object.

Notes

Represents the "Type" entry of the point data dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "PtData".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111d, page 53.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 272, page 602.


ZZ Elements PointDataElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the point data dictionary object.

Notes

Represents the "Subtype" entry of the point data dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "Cloud".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111d, page 53.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 272, page 602.


ZZ Elements PointDataElement EntryNames Property

EntryNames Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Names" entry of the point data dictionary object.

Notes

Represents the "Names" entry of the point data dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains strings, representing PDF name objects.

Items in this array may take one of the following valid values:.

  • LAT
  • LON
  • ALT

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111d, page 53.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 272, page 602.


ZZ Elements PointDataElement EntryXPTS Property

EntryXPTS Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "XPTS" entry of the point data dictionary object.

Notes

Represents the "XPTS" entry of the point data dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains Elements.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 8.111d, page 53.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 272, page 602.


ZZ Elements RichMediaAnnotationElement

RichMediaAnnotationElement Class

This class represents the richmedia annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 333, page 696.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.49, page 77.

This class is always an indirect object because RichMediaExecuteActionElement.EntryTA requires it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.RichMediaAnnotationElement

Method | Description
RichMediaAnnotationElement | Create a new RichMediaAnnotationElement.
 | inherited methods...

Property | Description
EntryRichMediaSettings | Represents the "RichMediaSettings" entry of the richmedia annotation object.
EntryRichMediaContent | Represents the "RichMediaContent" entry of the richmedia annotation object.
 | inherited properties...


ZZ Elements RichMediaAnnotationElement Constructor Function

RichMediaAnnotationElement Function

Create a new RichMediaAnnotationElement.

Syntax

[C#]
RichMediaAnnotationElement()
RichMediaAnnotationElement(Atom atom, IndirectObject host)
RichMediaAnnotationElement(IndirectObject obj)
RichMediaAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
RichMediaAnnotationElement()
RichMediaAnnotationElement(atom As Atom, host As IndirectObject)
RichMediaAnnotationElement(obj As IndirectObject)
RichMediaAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RichMediaAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1803 in the Annotations example project.

[C#]

if (mediaType != "Flash" && mediaType != "Video" && mediaType != "Sound" && mediaType != "3D")
  throw new ArgumentException("Invalid media type.", "mediaType");

RichMediaAnnotationElement annot = new RichMediaAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "RichMedia";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);

string fileName;
FullFileSpecificationElement fileSpec = new FullFileSpecificationElement(annot);
fileSpec.EntryType = "Filespec";
if (filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase)) {
  fileSpec.EntryFS = "URL";
  fileName = FixUrl(filePathOrUrl);
}
else {
  FileInfo fileInfo = new FileInfo(filePathOrUrl);
  fileSpec.EntryEF = new EmbeddedFileSetElement(annot);
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo);
  fileName = EncodeName(fileInfo.Name);
}
fileSpec.EntryF = fileName;
fileSpec.EntryUF = fileName;

annot.Object.AdbeExtLevel = new int[] { 7, 3 };
RichMediaContentElement content = new RichMediaContentElement(annot, CreationOptions.Indirect);
content.EntryType = "RichMediaContent";
content.EntryAssets = new NameTreeNodeElement<FileSpecificationElement>(annot, CreationOptions.Indirect);
content.EntryAssets.EntryNames = new ArrayElement<Element>(annot);
content.EntryAssets.EntryNames.Add(new Element(new StringAtom(fileName), annot.Host));
content.EntryAssets.EntryNames.Add(fileSpec);

RichMediaConfigElement configuration = new RichMediaConfigElement(annot, CreationOptions.Indirect);
configuration.EntryType = "RichMediaConfiguration";
configuration.EntrySubtype = mediaType;
RichMediaInstanceElement instance = new RichMediaInstanceElement(annot, CreationOptions.Indirect);
instance.EntryType = "RichMediaInstance";
instance.EntrySubtype = mediaType;
instance.EntryParams = new RichMediaParamsElement(annot);
instance.EntryParams.EntryType = "RichMediaParams";
instance.EntryParams.EntryBinding = "Foreground";
instance.EntryAsset = fileSpec;
configuration.EntryInstances = new ArrayElement<RichMediaInstanceElement>(annot);
configuration.EntryInstances.Add(instance);

content.EntryConfigurations = new ArrayElement<RichMediaConfigElement>(annot);
content.EntryConfigurations.Add(configuration);
annot.EntryRichMediaContent = content;

RichMediaSettingsElement settings = new RichMediaSettingsElement(annot, CreationOptions.Indirect);
settings.EntryType = "RichMediaSettings";
settings.EntryActivation = new RichMediaActivationElement(annot);
settings.EntryActivation.EntryType = "RichMediaActivation";
settings.EntryActivation.EntryConfiguration = configuration;
annot.EntryRichMediaSettings = settings;
AnnotationElement = annot;

[VB]

If mediaType <> "Flash" AndAlso mediaType <> "Video" AndAlso mediaType <> "Sound" AndAlso mediaType <> "3D" Then
  Throw New ArgumentException("Invalid media type.", "mediaType")
End If

Dim annot As New RichMediaAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "RichMedia"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)

Dim fileName As String
Dim fileSpec As New FullFileSpecificationElement(annot)
fileSpec.EntryType = "Filespec"
If filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase) Then
  fileSpec.EntryFS = "URL"
  fileName = FixUrl(filePathOrUrl)
Else
  Dim fileInfo As New FileInfo(filePathOrUrl)
  fileSpec.EntryEF = New EmbeddedFileSetElement(annot)
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo)
  fileName = EncodeName(fileInfo.Name)
End If
fileSpec.EntryF = fileName
fileSpec.EntryUF = fileName

annot.Object.AdbeExtLevel = New Integer() { 7, 3 }
Dim content As New RichMediaContentElement(annot, CreationOptions.Indirect)
content.EntryType = "RichMediaContent"
content.EntryAssets = New NameTreeNodeElement(Of FileSpecificationElement)(annot, CreationOptions.Indirect)
content.EntryAssets.EntryNames = New ArrayElement(Of Element)(annot)
content.EntryAssets.EntryNames.Add(New Element(New StringAtom(fileName), annot.Host))
content.EntryAssets.EntryNames.Add(fileSpec)

Dim configuration As New RichMediaConfigElement(annot, CreationOptions.Indirect)
configuration.EntryType = "RichMediaConfiguration"
configuration.EntrySubtype = mediaType
Dim instance As New RichMediaInstanceElement(annot, CreationOptions.Indirect)
instance.EntryType = "RichMediaInstance"
instance.EntrySubtype = mediaType
instance.EntryParams = New RichMediaParamsElement(annot)
instance.EntryParams.EntryType = "RichMediaParams"
instance.EntryParams.EntryBinding = "Foreground"
instance.EntryAsset = fileSpec
configuration.EntryInstances = New ArrayElement(Of RichMediaInstanceElement)(annot)
configuration.EntryInstances.Add(instance)

content.EntryConfigurations = New ArrayElement(Of RichMediaConfigElement)(annot)
content.EntryConfigurations.Add(configuration)
annot.EntryRichMediaContent = content

Dim settings As New RichMediaSettingsElement(annot, CreationOptions.Indirect)
settings.EntryType = "RichMediaSettings"
settings.EntryActivation = New RichMediaActivationElement(annot)
settings.EntryActivation.EntryType = "RichMediaActivation"
settings.EntryActivation.EntryConfiguration = configuration
annot.EntryRichMediaSettings = settings
AnnotationElement = annot


ZZ Elements RichMediaAnnotationElement EntryRichMediaSettings Property

EntryRichMediaSettings Property

Type | Default Value | Read Only | Description
[C#] RichMediaSettingsElement [Visual Basic] RichMediaSettingsElement | null | No | Represents the "RichMediaSettings" entry of the richmedia annotation object.

Notes

Represents the "RichMediaSettings" entry of the richmedia annotation object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RichMediaSettingsElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.49, page 77.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 333, page 696.


ZZ Elements RichMediaAnnotationElement EntryRichMediaContent Property

EntryRichMediaContent Property

Type | Default Value | Read Only | Description
[C#] RichMediaContentElement [Visual Basic] RichMediaContentElement | null | No | Represents the "RichMediaContent" entry of the richmedia annotation object.

Notes

Represents the "RichMediaContent" entry of the richmedia annotation object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RichMediaContentElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.49, page 77.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 333, page 696.


ZZ Elements RichMediaSettingsElement

RichMediaSettingsElement Class

This class represents the richmediasettings dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 334, page 697.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50, page 78.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RichMediaSettingsElement

Method | Description
RichMediaSettingsElement | Create a new RichMediaSettingsElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the richmediasettings dictionary object.
EntryActivation | Represents the "Activation" entry of the richmediasettings dictionary object.
EntryDeactivation | Represents the "Deactivation" entry of the richmediasettings dictionary object.
 | inherited properties...


ZZ Elements RichMediaSettingsElement Constructor Function

RichMediaSettingsElement Function

Create a new RichMediaSettingsElement.

Syntax

[C#]
RichMediaSettingsElement()
RichMediaSettingsElement(Atom atom, IndirectObject host)
RichMediaSettingsElement(IndirectObject obj)
RichMediaSettingsElement(Element relation, CreationOptions options)

[Visual Basic]
RichMediaSettingsElement()
RichMediaSettingsElement(atom As Atom, host As IndirectObject)
RichMediaSettingsElement(obj As IndirectObject)
RichMediaSettingsElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RichMediaSettingsElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1803 in the Annotations example project.

[C#]

if (mediaType != "Flash" && mediaType != "Video" && mediaType != "Sound" && mediaType != "3D")
  throw new ArgumentException("Invalid media type.", "mediaType");

RichMediaAnnotationElement annot = new RichMediaAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "RichMedia";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);

string fileName;
FullFileSpecificationElement fileSpec = new FullFileSpecificationElement(annot);
fileSpec.EntryType = "Filespec";
if (filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase)) {
  fileSpec.EntryFS = "URL";
  fileName = FixUrl(filePathOrUrl);
}
else {
  FileInfo fileInfo = new FileInfo(filePathOrUrl);
  fileSpec.EntryEF = new EmbeddedFileSetElement(annot);
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo);
  fileName = EncodeName(fileInfo.Name);
}
fileSpec.EntryF = fileName;
fileSpec.EntryUF = fileName;

annot.Object.AdbeExtLevel = new int[] { 7, 3 };
RichMediaContentElement content = new RichMediaContentElement(annot, CreationOptions.Indirect);
content.EntryType = "RichMediaContent";
content.EntryAssets = new NameTreeNodeElement<FileSpecificationElement>(annot, CreationOptions.Indirect);
content.EntryAssets.EntryNames = new ArrayElement<Element>(annot);
content.EntryAssets.EntryNames.Add(new Element(new StringAtom(fileName), annot.Host));
content.EntryAssets.EntryNames.Add(fileSpec);

RichMediaConfigElement configuration = new RichMediaConfigElement(annot, CreationOptions.Indirect);
configuration.EntryType = "RichMediaConfiguration";
configuration.EntrySubtype = mediaType;
RichMediaInstanceElement instance = new RichMediaInstanceElement(annot, CreationOptions.Indirect);
instance.EntryType = "RichMediaInstance";
instance.EntrySubtype = mediaType;
instance.EntryParams = new RichMediaParamsElement(annot);
instance.EntryParams.EntryType = "RichMediaParams";
instance.EntryParams.EntryBinding = "Foreground";
instance.EntryAsset = fileSpec;
configuration.EntryInstances = new ArrayElement<RichMediaInstanceElement>(annot);
configuration.EntryInstances.Add(instance);

content.EntryConfigurations = new ArrayElement<RichMediaConfigElement>(annot);
content.EntryConfigurations.Add(configuration);
annot.EntryRichMediaContent = content;

RichMediaSettingsElement settings = new RichMediaSettingsElement(annot, CreationOptions.Indirect);
settings.EntryType = "RichMediaSettings";
settings.EntryActivation = new RichMediaActivationElement(annot);
settings.EntryActivation.EntryType = "RichMediaActivation";
settings.EntryActivation.EntryConfiguration = configuration;
annot.EntryRichMediaSettings = settings;
AnnotationElement = annot;

[VB]

If mediaType <> "Flash" AndAlso mediaType <> "Video" AndAlso mediaType <> "Sound" AndAlso mediaType <> "3D" Then
  Throw New ArgumentException("Invalid media type.", "mediaType")
End If

Dim annot As New RichMediaAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "RichMedia"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)

Dim fileName As String
Dim fileSpec As New FullFileSpecificationElement(annot)
fileSpec.EntryType = "Filespec"
If filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase) Then
  fileSpec.EntryFS = "URL"
  fileName = FixUrl(filePathOrUrl)
Else
  Dim fileInfo As New FileInfo(filePathOrUrl)
  fileSpec.EntryEF = New EmbeddedFileSetElement(annot)
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo)
  fileName = EncodeName(fileInfo.Name)
End If
fileSpec.EntryF = fileName
fileSpec.EntryUF = fileName

annot.Object.AdbeExtLevel = New Integer() { 7, 3 }
Dim content As New RichMediaContentElement(annot, CreationOptions.Indirect)
content.EntryType = "RichMediaContent"
content.EntryAssets = New NameTreeNodeElement(Of FileSpecificationElement)(annot, CreationOptions.Indirect)
content.EntryAssets.EntryNames = New ArrayElement(Of Element)(annot)
content.EntryAssets.EntryNames.Add(New Element(New StringAtom(fileName), annot.Host))
content.EntryAssets.EntryNames.Add(fileSpec)

Dim configuration As New RichMediaConfigElement(annot, CreationOptions.Indirect)
configuration.EntryType = "RichMediaConfiguration"
configuration.EntrySubtype = mediaType
Dim instance As New RichMediaInstanceElement(annot, CreationOptions.Indirect)
instance.EntryType = "RichMediaInstance"
instance.EntrySubtype = mediaType
instance.EntryParams = New RichMediaParamsElement(annot)
instance.EntryParams.EntryType = "RichMediaParams"
instance.EntryParams.EntryBinding = "Foreground"
instance.EntryAsset = fileSpec
configuration.EntryInstances = New ArrayElement(Of RichMediaInstanceElement)(annot)
configuration.EntryInstances.Add(instance)

content.EntryConfigurations = New ArrayElement(Of RichMediaConfigElement)(annot)
content.EntryConfigurations.Add(configuration)
annot.EntryRichMediaContent = content

Dim settings As New RichMediaSettingsElement(annot, CreationOptions.Indirect)
settings.EntryType = "RichMediaSettings"
settings.EntryActivation = New RichMediaActivationElement(annot)
settings.EntryActivation.EntryType = "RichMediaActivation"
settings.EntryActivation.EntryConfiguration = configuration
annot.EntryRichMediaSettings = settings
AnnotationElement = annot


ZZ Elements RichMediaSettingsElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the richmediasettings dictionary object.

Notes

Represents the "Type" entry of the richmediasettings dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "RichMediaSettings".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50, page 78.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 334, page 697.


ZZ Elements RichMediaSettingsElement EntryActivation Property

EntryActivation Property

Type | Default Value | Read Only | Description
[C#] RichMediaActivationElement [Visual Basic] RichMediaActivationElement | null | No | Represents the "Activation" entry of the richmediasettings dictionary object.

Notes

Represents the "Activation" entry of the richmediasettings dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RichMediaActivationElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50, page 78.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 334, page 697.


ZZ Elements RichMediaSettingsElement EntryDeactivation Property

EntryDeactivation Property

Type | Default Value | Read Only | Description
[C#] RichMediaDeactivationElement [Visual Basic] RichMediaDeactivationElement | null | No | Represents the "Deactivation" entry of the richmediasettings dictionary object.

Notes

Represents the "Deactivation" entry of the richmediasettings dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RichMediaDeactivationElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50, page 78.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 334, page 697.


ZZ Elements RichMediaActivationElement

RichMediaActivationElement Class

This class represents the richmediaactivation dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 335, page 698.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50a, page 79.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RichMediaActivationElement

Method | Description
RichMediaActivationElement | Create a new RichMediaActivationElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the richmediaactivation dictionary object.
EntryCondition | Represents the "Condition" entry of the richmediaactivation dictionary object.
EntryAnimation | Represents the "Animation" entry of the richmediaactivation dictionary object.
EntryView | Represents the "View" entry of the richmediaactivation dictionary object.
EntryConfiguration | Represents the "Configuration" entry of the richmediaactivation dictionary object.
EntryPresentation | Represents the "Presentation" entry of the richmediaactivation dictionary object.
EntryScripts | Represents the "Scripts" entry of the richmediaactivation dictionary object.
 | inherited properties...


ZZ Elements RichMediaActivationElement Constructor Function

RichMediaActivationElement Function

Create a new RichMediaActivationElement.

Syntax

[C#]
RichMediaActivationElement()
RichMediaActivationElement(Atom atom, IndirectObject host)
RichMediaActivationElement(IndirectObject obj)
RichMediaActivationElement(Element relation, CreationOptions options)

[Visual Basic]
RichMediaActivationElement()
RichMediaActivationElement(atom As Atom, host As IndirectObject)
RichMediaActivationElement(obj As IndirectObject)
RichMediaActivationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RichMediaActivationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1803 in the Annotations example project.

[C#]

if (mediaType != "Flash" && mediaType != "Video" && mediaType != "Sound" && mediaType != "3D")
  throw new ArgumentException("Invalid media type.", "mediaType");

RichMediaAnnotationElement annot = new RichMediaAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "RichMedia";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);

string fileName;
FullFileSpecificationElement fileSpec = new FullFileSpecificationElement(annot);
fileSpec.EntryType = "Filespec";
if (filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase)) {
  fileSpec.EntryFS = "URL";
  fileName = FixUrl(filePathOrUrl);
}
else {
  FileInfo fileInfo = new FileInfo(filePathOrUrl);
  fileSpec.EntryEF = new EmbeddedFileSetElement(annot);
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo);
  fileName = EncodeName(fileInfo.Name);
}
fileSpec.EntryF = fileName;
fileSpec.EntryUF = fileName;

annot.Object.AdbeExtLevel = new int[] { 7, 3 };
RichMediaContentElement content = new RichMediaContentElement(annot, CreationOptions.Indirect);
content.EntryType = "RichMediaContent";
content.EntryAssets = new NameTreeNodeElement<FileSpecificationElement>(annot, CreationOptions.Indirect);
content.EntryAssets.EntryNames = new ArrayElement<Element>(annot);
content.EntryAssets.EntryNames.Add(new Element(new StringAtom(fileName), annot.Host));
content.EntryAssets.EntryNames.Add(fileSpec);

RichMediaConfigElement configuration = new RichMediaConfigElement(annot, CreationOptions.Indirect);
configuration.EntryType = "RichMediaConfiguration";
configuration.EntrySubtype = mediaType;
RichMediaInstanceElement instance = new RichMediaInstanceElement(annot, CreationOptions.Indirect);
instance.EntryType = "RichMediaInstance";
instance.EntrySubtype = mediaType;
instance.EntryParams = new RichMediaParamsElement(annot);
instance.EntryParams.EntryType = "RichMediaParams";
instance.EntryParams.EntryBinding = "Foreground";
instance.EntryAsset = fileSpec;
configuration.EntryInstances = new ArrayElement<RichMediaInstanceElement>(annot);
configuration.EntryInstances.Add(instance);

content.EntryConfigurations = new ArrayElement<RichMediaConfigElement>(annot);
content.EntryConfigurations.Add(configuration);
annot.EntryRichMediaContent = content;

RichMediaSettingsElement settings = new RichMediaSettingsElement(annot, CreationOptions.Indirect);
settings.EntryType = "RichMediaSettings";
settings.EntryActivation = new RichMediaActivationElement(annot);
settings.EntryActivation.EntryType = "RichMediaActivation";
settings.EntryActivation.EntryConfiguration = configuration;
annot.EntryRichMediaSettings = settings;
AnnotationElement = annot;

[VB]

If mediaType <> "Flash" AndAlso mediaType <> "Video" AndAlso mediaType <> "Sound" AndAlso mediaType <> "3D" Then
  Throw New ArgumentException("Invalid media type.", "mediaType")
End If

Dim annot As New RichMediaAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "RichMedia"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)

Dim fileName As String
Dim fileSpec As New FullFileSpecificationElement(annot)
fileSpec.EntryType = "Filespec"
If filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase) Then
  fileSpec.EntryFS = "URL"
  fileName = FixUrl(filePathOrUrl)
Else
  Dim fileInfo As New FileInfo(filePathOrUrl)
  fileSpec.EntryEF = New EmbeddedFileSetElement(annot)
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo)
  fileName = EncodeName(fileInfo.Name)
End If
fileSpec.EntryF = fileName
fileSpec.EntryUF = fileName

annot.Object.AdbeExtLevel = New Integer() { 7, 3 }
Dim content As New RichMediaContentElement(annot, CreationOptions.Indirect)
content.EntryType = "RichMediaContent"
content.EntryAssets = New NameTreeNodeElement(Of FileSpecificationElement)(annot, CreationOptions.Indirect)
content.EntryAssets.EntryNames = New ArrayElement(Of Element)(annot)
content.EntryAssets.EntryNames.Add(New Element(New StringAtom(fileName), annot.Host))
content.EntryAssets.EntryNames.Add(fileSpec)

Dim configuration As New RichMediaConfigElement(annot, CreationOptions.Indirect)
configuration.EntryType = "RichMediaConfiguration"
configuration.EntrySubtype = mediaType
Dim instance As New RichMediaInstanceElement(annot, CreationOptions.Indirect)
instance.EntryType = "RichMediaInstance"
instance.EntrySubtype = mediaType
instance.EntryParams = New RichMediaParamsElement(annot)
instance.EntryParams.EntryType = "RichMediaParams"
instance.EntryParams.EntryBinding = "Foreground"
instance.EntryAsset = fileSpec
configuration.EntryInstances = New ArrayElement(Of RichMediaInstanceElement)(annot)
configuration.EntryInstances.Add(instance)

content.EntryConfigurations = New ArrayElement(Of RichMediaConfigElement)(annot)
content.EntryConfigurations.Add(configuration)
annot.EntryRichMediaContent = content

Dim settings As New RichMediaSettingsElement(annot, CreationOptions.Indirect)
settings.EntryType = "RichMediaSettings"
settings.EntryActivation = New RichMediaActivationElement(annot)
settings.EntryActivation.EntryType = "RichMediaActivation"
settings.EntryActivation.EntryConfiguration = configuration
annot.EntryRichMediaSettings = settings
AnnotationElement = annot


ZZ Elements RichMediaActivationElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the richmediaactivation dictionary object.

Notes

Represents the "Type" entry of the richmediaactivation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "RichMediaActivation".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50a, page 79.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 335, page 698.


ZZ Elements RichMediaActivationElement EntryCondition Property

EntryCondition Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Condition" entry of the richmediaactivation dictionary object.

Notes

Represents the "Condition" entry of the richmediaactivation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "XA" if no value has been provided.

This item may take one of the following valid values:.

  • XA
  • PO
  • PV

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50a, page 79.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 335, page 698.


ZZ Elements RichMediaActivationElement EntryAnimation Property

EntryAnimation Property

Type | Default Value | Read Only | Description
[C#] RichMediaAnimationElement [Visual Basic] RichMediaAnimationElement | null | No | Represents the "Animation" entry of the richmediaactivation dictionary object.

Notes

Represents the "Animation" entry of the richmediaactivation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RichMediaAnimationElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50a, page 79.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 335, page 698.


ZZ Elements RichMediaActivationElement EntryView Property

EntryView Property

Type | Default Value | Read Only | Description
[C#] D3DViewElement [Visual Basic] D3DViewElement | null | No | Represents the "View" entry of the richmediaactivation dictionary object.

Notes

Represents the "View" entry of the richmediaactivation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a D3DViewElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50a, page 79.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 335, page 698.


ZZ Elements RichMediaActivationElement EntryConfiguration Property

EntryConfiguration Property

Type | Default Value | Read Only | Description
[C#] RichMediaConfigElement [Visual Basic] RichMediaConfigElement | null | No | Represents the "Configuration" entry of the richmediaactivation dictionary object.

Notes

Represents the "Configuration" entry of the richmediaactivation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RichMediaConfigElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50a, page 79.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 335, page 698.


ZZ Elements RichMediaActivationElement EntryPresentation Property

EntryPresentation Property

Type | Default Value | Read Only | Description
[C#] RichMediaPresentationElement [Visual Basic] RichMediaPresentationElement | null | No | Represents the "Presentation" entry of the richmediaactivation dictionary object.

Notes

Represents the "Presentation" entry of the richmediaactivation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RichMediaPresentationElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50a, page 79.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 335, page 698.


ZZ Elements RichMediaActivationElement EntryScripts Property

EntryScripts Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FileSpecificationElement> [Visual Basic] ArrayElement<FileSpecificationElement> | null | No | Represents the "Scripts" entry of the richmediaactivation dictionary object.

Notes

Represents the "Scripts" entry of the richmediaactivation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains FileSpecificationElements.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50a, page 79.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 335, page 698.


ZZ Elements RichMediaDeactivationElement

RichMediaDeactivationElement Class

This class represents the richmediadeactivation dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 336, page 699.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50b, page 80.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RichMediaDeactivationElement

Method | Description
RichMediaDeactivationElement | Create a new RichMediaDeactivationElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the richmediadeactivation dictionary object.
EntryCondition | Represents the "Condition" entry of the richmediadeactivation dictionary object.
 | inherited properties...


ZZ Elements RichMediaDeactivationElement Constructor Function

RichMediaDeactivationElement Function

Create a new RichMediaDeactivationElement.

Syntax

[C#]
RichMediaDeactivationElement()
RichMediaDeactivationElement(Atom atom, IndirectObject host)
RichMediaDeactivationElement(IndirectObject obj)
RichMediaDeactivationElement(Element relation, CreationOptions options)

[Visual Basic]
RichMediaDeactivationElement()
RichMediaDeactivationElement(atom As Atom, host As IndirectObject)
RichMediaDeactivationElement(obj As IndirectObject)
RichMediaDeactivationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RichMediaDeactivationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1935 in the Annotations example project.

[C#]

if (RichMediaElement.EntryRichMediaSettings.EntryDeactivation == null)
  RichMediaElement.EntryRichMediaSettings.EntryDeactivation = new RichMediaDeactivationElement(AnnotationElement);
RichMediaElement.EntryRichMediaSettings.EntryDeactivation.EntryCondition = value;

[VB]

If RichMediaElement.EntryRichMediaSettings.EntryDeactivation Is Nothing Then
  RichMediaElement.EntryRichMediaSettings.EntryDeactivation = New RichMediaDeactivationElement(AnnotationElement)
End If
RichMediaElement.EntryRichMediaSettings.EntryDeactivation.EntryCondition = value


ZZ Elements RichMediaDeactivationElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the richmediadeactivation dictionary object.

Notes

Represents the "Type" entry of the richmediadeactivation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "RichMediaDeactivation".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50b, page 80.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 336, page 699.


ZZ Elements RichMediaDeactivationElement EntryCondition Property

EntryCondition Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Condition" entry of the richmediadeactivation dictionary object.

Notes

Represents the "Condition" entry of the richmediadeactivation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "XD" if no value has been provided.

This item may take one of the following valid values:.

  • XD
  • PC
  • PI

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50b, page 80.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 336, page 699.


ZZ Elements RichMediaAnimationElement

RichMediaAnimationElement Class

This class represents the richmediaanimation dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 337, page 699.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50c, page 81.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RichMediaAnimationElement

Method | Description
RichMediaAnimationElement | Create a new RichMediaAnimationElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the richmediaanimation dictionary object.
EntrySubtype | Represents the "Subtype" entry of the richmediaanimation dictionary object.
EntryPlayCount | Represents the "PlayCount" entry of the richmediaanimation dictionary object.
EntrySpeed | Represents the "Speed" entry of the richmediaanimation dictionary object.
 | inherited properties...


ZZ Elements RichMediaAnimationElement Constructor Function

RichMediaAnimationElement Function

Create a new RichMediaAnimationElement.

Syntax

[C#]
RichMediaAnimationElement()
RichMediaAnimationElement(Atom atom, IndirectObject host)
RichMediaAnimationElement(IndirectObject obj)
RichMediaAnimationElement(Element relation, CreationOptions options)

[Visual Basic]
RichMediaAnimationElement()
RichMediaAnimationElement(atom As Atom, host As IndirectObject)
RichMediaAnimationElement(obj As IndirectObject)
RichMediaAnimationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RichMediaAnimationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements RichMediaAnimationElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the richmediaanimation dictionary object.

Notes

Represents the "Type" entry of the richmediaanimation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "RichMediaAnimation".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50c, page 81.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 337, page 699.


ZZ Elements RichMediaAnimationElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the richmediaanimation dictionary object.

Notes

Represents the "Subtype" entry of the richmediaanimation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "None" if no value has been provided.

This item may take one of the following valid values:.

  • None
  • Linear
  • Oscillating

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50c, page 81.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 337, page 699.


ZZ Elements RichMediaAnimationElement EntryPlayCount Property

EntryPlayCount Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "PlayCount" entry of the richmediaanimation dictionary object.

Notes

Represents the "PlayCount" entry of the richmediaanimation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of -1 if no value has been provided.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50c, page 81.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 337, page 700.


ZZ Elements RichMediaAnimationElement EntrySpeed Property

EntrySpeed Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Speed" entry of the richmediaanimation dictionary object.

Notes

Represents the "Speed" entry of the richmediaanimation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

It should have a positive value.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50c, page 81.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 337, page 700.


ZZ Elements RichMediaPresentationElement

RichMediaPresentationElement Class

This class represents the richmediapresentation dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 338, page 701.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50d, page 82.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RichMediaPresentationElement

Method | Description
RichMediaPresentationElement | Create a new RichMediaPresentationElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the richmediapresentation dictionary object.
EntryStyle | Represents the "Style" entry of the richmediapresentation dictionary object.
EntryWindow | Represents the "Window" entry of the richmediapresentation dictionary object.
EntryTransparent | Represents the "Transparent" entry of the richmediapresentation dictionary object.
EntryNavigationPane | Represents the "NavigationPane" entry of the richmediapresentation dictionary object.
EntryToolbar | Represents the "Toolbar" entry of the richmediapresentation dictionary object.
EntryPassContextClick | Represents the "PassContextClick" entry of the richmediapresentation dictionary object.
 | inherited properties...


ZZ Elements RichMediaPresentationElement Constructor Function

RichMediaPresentationElement Function

Create a new RichMediaPresentationElement.

Syntax

[C#]
RichMediaPresentationElement()
RichMediaPresentationElement(Atom atom, IndirectObject host)
RichMediaPresentationElement(IndirectObject obj)
RichMediaPresentationElement(Element relation, CreationOptions options)

[Visual Basic]
RichMediaPresentationElement()
RichMediaPresentationElement(atom As Atom, host As IndirectObject)
RichMediaPresentationElement(obj As IndirectObject)
RichMediaPresentationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RichMediaPresentationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements RichMediaPresentationElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the richmediapresentation dictionary object.

Notes

Represents the "Type" entry of the richmediapresentation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "RichMediaPresentation".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50d, page 82.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 338, page 701.


ZZ Elements RichMediaPresentationElement EntryStyle Property

EntryStyle Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Style" entry of the richmediapresentation dictionary object.

Notes

Represents the "Style" entry of the richmediapresentation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Embedded" if no value has been provided.

This item may take one of the following valid values:.

  • Embedded
  • Windowed

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50d, page 82.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 338, page 701.


ZZ Elements RichMediaPresentationElement EntryWindow Property

EntryWindow Property

Type | Default Value | Read Only | Description
[C#] RichMediaWindowElement [Visual Basic] RichMediaWindowElement | null | No | Represents the "Window" entry of the richmediapresentation dictionary object.

Notes

Represents the "Window" entry of the richmediapresentation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RichMediaWindowElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50d, page 82.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 338, page 701.


ZZ Elements RichMediaPresentationElement EntryTransparent Property

EntryTransparent Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "Transparent" entry of the richmediapresentation dictionary object.

Notes

Represents the "Transparent" entry of the richmediapresentation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50d, page 82.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 338, page 701.


ZZ Elements RichMediaPresentationElement EntryNavigationPane Property

EntryNavigationPane Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "NavigationPane" entry of the richmediapresentation dictionary object.

Notes

Represents the "NavigationPane" entry of the richmediapresentation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50d, page 82.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 338, page 701.


ZZ Elements RichMediaPresentationElement EntryToolbar Property

EntryToolbar Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "Toolbar" entry of the richmediapresentation dictionary object.

Notes

Represents the "Toolbar" entry of the richmediapresentation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50d, page 82.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 338, page 701.


ZZ Elements RichMediaPresentationElement EntryPassContextClick Property

EntryPassContextClick Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "PassContextClick" entry of the richmediapresentation dictionary object.

Notes

Represents the "PassContextClick" entry of the richmediapresentation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50d, page 82.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 338, page 702.


ZZ Elements RichMediaDimensionsElement

RichMediaDimensionsElement Class

This class represents the richmediadimensions dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 339, page 702.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50e, page 84.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RichMediaDimensionsElement

Method | Description
RichMediaDimensionsElement | Create a new RichMediaDimensionsElement.
 | inherited methods...

Property | Description
EntryDefault | Represents the "Default" entry of the richmediadimensions dictionary object.
EntryMax | Represents the "Max" entry of the richmediadimensions dictionary object.
EntryMin | Represents the "Min" entry of the richmediadimensions dictionary object.
 | inherited properties...


ZZ Elements RichMediaDimensionsElement Constructor Function

RichMediaDimensionsElement Function

Create a new RichMediaDimensionsElement.

Syntax

[C#]
RichMediaDimensionsElement()
RichMediaDimensionsElement(Atom atom, IndirectObject host)
RichMediaDimensionsElement(IndirectObject obj)
RichMediaDimensionsElement(Element relation, CreationOptions options)

[Visual Basic]
RichMediaDimensionsElement()
RichMediaDimensionsElement(atom As Atom, host As IndirectObject)
RichMediaDimensionsElement(obj As IndirectObject)
RichMediaDimensionsElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RichMediaDimensionsElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements RichMediaDimensionsElement EntryDefault Property

EntryDefault Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Default" entry of the richmediadimensions dictionary object.

Notes

Represents the "Default" entry of the richmediadimensions dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50e, page 84.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 339, page 702.


ZZ Elements RichMediaDimensionsElement EntryMax Property

EntryMax Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Max" entry of the richmediadimensions dictionary object.

Notes

Represents the "Max" entry of the richmediadimensions dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50e, page 84.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 339, page 702.


ZZ Elements RichMediaDimensionsElement EntryMin Property

EntryMin Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Min" entry of the richmediadimensions dictionary object.

Notes

Represents the "Min" entry of the richmediadimensions dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50e, page 84.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 339, page 702.


ZZ Elements RichMediaWindowElement

RichMediaWindowElement Class

This class represents the richmediawindow dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 339, page 702.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50e, page 84.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RichMediaWindowElement

Method | Description
RichMediaWindowElement | Create a new RichMediaWindowElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the richmediawindow dictionary object.
EntryWidth | Represents the "Width" entry of the richmediawindow dictionary object.
EntryHeight | Represents the "Height" entry of the richmediawindow dictionary object.
EntryPosition | Represents the "Position" entry of the richmediawindow dictionary object.
 | inherited properties...


ZZ Elements RichMediaWindowElement Constructor Function

RichMediaWindowElement Function

Create a new RichMediaWindowElement.

Syntax

[C#]
RichMediaWindowElement()
RichMediaWindowElement(Atom atom, IndirectObject host)
RichMediaWindowElement(IndirectObject obj)
RichMediaWindowElement(Element relation, CreationOptions options)

[Visual Basic]
RichMediaWindowElement()
RichMediaWindowElement(atom As Atom, host As IndirectObject)
RichMediaWindowElement(obj As IndirectObject)
RichMediaWindowElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RichMediaWindowElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements RichMediaWindowElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the richmediawindow dictionary object.

Notes

Represents the "Type" entry of the richmediawindow dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "RichMediaWindow".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50e, page 84.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 339, page 702.


ZZ Elements RichMediaWindowElement EntryWidth Property

EntryWidth Property

Type | Default Value | Read Only | Description
[C#] RichMediaDimensionsElement [Visual Basic] RichMediaDimensionsElement | null | No | Represents the "Width" entry of the richmediawindow dictionary object.

Notes

Represents the "Width" entry of the richmediawindow dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RichMediaDimensionsElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50e, page 84.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 339, page 702.


ZZ Elements RichMediaWindowElement EntryHeight Property

EntryHeight Property

Type | Default Value | Read Only | Description
[C#] RichMediaDimensionsElement [Visual Basic] RichMediaDimensionsElement | null | No | Represents the "Height" entry of the richmediawindow dictionary object.

Notes

Represents the "Height" entry of the richmediawindow dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RichMediaDimensionsElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50e, page 84.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 339, page 702.


ZZ Elements RichMediaWindowElement EntryPosition Property

EntryPosition Property

Type | Default Value | Read Only | Description
[C#] RichMediaPositionElement [Visual Basic] RichMediaPositionElement | null | No | Represents the "Position" entry of the richmediawindow dictionary object.

Notes

Represents the "Position" entry of the richmediawindow dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RichMediaPositionElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50e, page 84.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 339, page 702.


ZZ Elements RichMediaPositionElement

RichMediaPositionElement Class

This class represents the richmediaposition dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 340, page 703.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50f, page 85.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RichMediaPositionElement

Method | Description
RichMediaPositionElement | Create a new RichMediaPositionElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the richmediaposition dictionary object.
EntryHAlign | Represents the "HAlign" entry of the richmediaposition dictionary object.
EntryVAlign | Represents the "VAlign" entry of the richmediaposition dictionary object.
EntryHOffset | Represents the "HOffset" entry of the richmediaposition dictionary object.
EntryVOffset | Represents the "VOffset" entry of the richmediaposition dictionary object.
 | inherited properties...


ZZ Elements RichMediaPositionElement Constructor Function

RichMediaPositionElement Function

Create a new RichMediaPositionElement.

Syntax

[C#]
RichMediaPositionElement()
RichMediaPositionElement(Atom atom, IndirectObject host)
RichMediaPositionElement(IndirectObject obj)
RichMediaPositionElement(Element relation, CreationOptions options)

[Visual Basic]
RichMediaPositionElement()
RichMediaPositionElement(atom As Atom, host As IndirectObject)
RichMediaPositionElement(obj As IndirectObject)
RichMediaPositionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RichMediaPositionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements RichMediaPositionElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the richmediaposition dictionary object.

Notes

Represents the "Type" entry of the richmediaposition dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "RichMediaPosition".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50f, page 85.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 340, page 703.


ZZ Elements RichMediaPositionElement EntryHAlign Property

EntryHAlign Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "HAlign" entry of the richmediaposition dictionary object.

Notes

Represents the "HAlign" entry of the richmediaposition dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Far" if no value has been provided.

This item may take one of the following valid values:.

  • Near
  • Center
  • Far

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50f, page 85.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 340, page 703.


ZZ Elements RichMediaPositionElement EntryVAlign Property

EntryVAlign Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "VAlign" entry of the richmediaposition dictionary object.

Notes

Represents the "VAlign" entry of the richmediaposition dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Near" if no value has been provided.

This item may take one of the following valid values:.

  • Near
  • Center
  • Far

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50f, page 85.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 340, page 703.


ZZ Elements RichMediaPositionElement EntryHOffset Property

EntryHOffset Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "HOffset" entry of the richmediaposition dictionary object.

Notes

Represents the "HOffset" entry of the richmediaposition dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

It should have a positive value.

The PDF specification states that this item assumes a value of 18 if no value has been provided.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50f, page 85.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 340, page 703.


ZZ Elements RichMediaPositionElement EntryVOffset Property

EntryVOffset Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "VOffset" entry of the richmediaposition dictionary object.

Notes

Represents the "VOffset" entry of the richmediaposition dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

It should have a positive value.

The PDF specification states that this item assumes a value of 18 if no value has been provided.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.50f, page 85.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 340, page 703.


ZZ Elements RichMediaContentElement

RichMediaContentElement Class

This class represents the richmediacontent dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 341, page 704.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51, page 86.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RichMediaContentElement

Method | Description
RichMediaContentElement | Create a new RichMediaContentElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the richmediacontent dictionary object.
EntryAssets | Represents the "Assets" entry of the richmediacontent dictionary object.
EntryConfigurations | Represents the "Configurations" entry of the richmediacontent dictionary object.
EntryViews | Represents the "Views" entry of the richmediacontent dictionary object.
 | inherited properties...


ZZ Elements RichMediaContentElement Constructor Function

RichMediaContentElement Function

Create a new RichMediaContentElement.

Syntax

[C#]
RichMediaContentElement()
RichMediaContentElement(Atom atom, IndirectObject host)
RichMediaContentElement(IndirectObject obj)
RichMediaContentElement(Element relation, CreationOptions options)

[Visual Basic]
RichMediaContentElement()
RichMediaContentElement(atom As Atom, host As IndirectObject)
RichMediaContentElement(obj As IndirectObject)
RichMediaContentElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RichMediaContentElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1803 in the Annotations example project.

[C#]

if (mediaType != "Flash" && mediaType != "Video" && mediaType != "Sound" && mediaType != "3D")
  throw new ArgumentException("Invalid media type.", "mediaType");

RichMediaAnnotationElement annot = new RichMediaAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "RichMedia";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);

string fileName;
FullFileSpecificationElement fileSpec = new FullFileSpecificationElement(annot);
fileSpec.EntryType = "Filespec";
if (filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase)) {
  fileSpec.EntryFS = "URL";
  fileName = FixUrl(filePathOrUrl);
}
else {
  FileInfo fileInfo = new FileInfo(filePathOrUrl);
  fileSpec.EntryEF = new EmbeddedFileSetElement(annot);
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo);
  fileName = EncodeName(fileInfo.Name);
}
fileSpec.EntryF = fileName;
fileSpec.EntryUF = fileName;

annot.Object.AdbeExtLevel = new int[] { 7, 3 };
RichMediaContentElement content = new RichMediaContentElement(annot, CreationOptions.Indirect);
content.EntryType = "RichMediaContent";
content.EntryAssets = new NameTreeNodeElement<FileSpecificationElement>(annot, CreationOptions.Indirect);
content.EntryAssets.EntryNames = new ArrayElement<Element>(annot);
content.EntryAssets.EntryNames.Add(new Element(new StringAtom(fileName), annot.Host));
content.EntryAssets.EntryNames.Add(fileSpec);

RichMediaConfigElement configuration = new RichMediaConfigElement(annot, CreationOptions.Indirect);
configuration.EntryType = "RichMediaConfiguration";
configuration.EntrySubtype = mediaType;
RichMediaInstanceElement instance = new RichMediaInstanceElement(annot, CreationOptions.Indirect);
instance.EntryType = "RichMediaInstance";
instance.EntrySubtype = mediaType;
instance.EntryParams = new RichMediaParamsElement(annot);
instance.EntryParams.EntryType = "RichMediaParams";
instance.EntryParams.EntryBinding = "Foreground";
instance.EntryAsset = fileSpec;
configuration.EntryInstances = new ArrayElement<RichMediaInstanceElement>(annot);
configuration.EntryInstances.Add(instance);

content.EntryConfigurations = new ArrayElement<RichMediaConfigElement>(annot);
content.EntryConfigurations.Add(configuration);
annot.EntryRichMediaContent = content;

RichMediaSettingsElement settings = new RichMediaSettingsElement(annot, CreationOptions.Indirect);
settings.EntryType = "RichMediaSettings";
settings.EntryActivation = new RichMediaActivationElement(annot);
settings.EntryActivation.EntryType = "RichMediaActivation";
settings.EntryActivation.EntryConfiguration = configuration;
annot.EntryRichMediaSettings = settings;
AnnotationElement = annot;

[VB]

If mediaType <> "Flash" AndAlso mediaType <> "Video" AndAlso mediaType <> "Sound" AndAlso mediaType <> "3D" Then
  Throw New ArgumentException("Invalid media type.", "mediaType")
End If

Dim annot As New RichMediaAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "RichMedia"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)

Dim fileName As String
Dim fileSpec As New FullFileSpecificationElement(annot)
fileSpec.EntryType = "Filespec"
If filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase) Then
  fileSpec.EntryFS = "URL"
  fileName = FixUrl(filePathOrUrl)
Else
  Dim fileInfo As New FileInfo(filePathOrUrl)
  fileSpec.EntryEF = New EmbeddedFileSetElement(annot)
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo)
  fileName = EncodeName(fileInfo.Name)
End If
fileSpec.EntryF = fileName
fileSpec.EntryUF = fileName

annot.Object.AdbeExtLevel = New Integer() { 7, 3 }
Dim content As New RichMediaContentElement(annot, CreationOptions.Indirect)
content.EntryType = "RichMediaContent"
content.EntryAssets = New NameTreeNodeElement(Of FileSpecificationElement)(annot, CreationOptions.Indirect)
content.EntryAssets.EntryNames = New ArrayElement(Of Element)(annot)
content.EntryAssets.EntryNames.Add(New Element(New StringAtom(fileName), annot.Host))
content.EntryAssets.EntryNames.Add(fileSpec)

Dim configuration As New RichMediaConfigElement(annot, CreationOptions.Indirect)
configuration.EntryType = "RichMediaConfiguration"
configuration.EntrySubtype = mediaType
Dim instance As New RichMediaInstanceElement(annot, CreationOptions.Indirect)
instance.EntryType = "RichMediaInstance"
instance.EntrySubtype = mediaType
instance.EntryParams = New RichMediaParamsElement(annot)
instance.EntryParams.EntryType = "RichMediaParams"
instance.EntryParams.EntryBinding = "Foreground"
instance.EntryAsset = fileSpec
configuration.EntryInstances = New ArrayElement(Of RichMediaInstanceElement)(annot)
configuration.EntryInstances.Add(instance)

content.EntryConfigurations = New ArrayElement(Of RichMediaConfigElement)(annot)
content.EntryConfigurations.Add(configuration)
annot.EntryRichMediaContent = content

Dim settings As New RichMediaSettingsElement(annot, CreationOptions.Indirect)
settings.EntryType = "RichMediaSettings"
settings.EntryActivation = New RichMediaActivationElement(annot)
settings.EntryActivation.EntryType = "RichMediaActivation"
settings.EntryActivation.EntryConfiguration = configuration
annot.EntryRichMediaSettings = settings
AnnotationElement = annot


ZZ Elements RichMediaContentElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the richmediacontent dictionary object.

Notes

Represents the "Type" entry of the richmediacontent dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "RichMediaContent".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51, page 86.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 341, page 704.


ZZ Elements RichMediaContentElement EntryAssets Property

EntryAssets Property

Type | Default Value | Read Only | Description
[C#] NameTreeNodeElement<FileSpecificationElement> [Visual Basic] NameTreeNodeElement<FileSpecificationElement> | null | No | Represents the "Assets" entry of the richmediacontent dictionary object.

Notes

Represents the "Assets" entry of the richmediacontent dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a NameTreeNodeElement containing FileSpecificationElements.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51, page 86.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 341, page 704.


ZZ Elements RichMediaContentElement EntryConfigurations Property

EntryConfigurations Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<RichMediaConfigElement> [Visual Basic] ArrayElement<RichMediaConfigElement> | null | No | Represents the "Configurations" entry of the richmediacontent dictionary object.

Notes

Represents the "Configurations" entry of the richmediacontent dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains RichMediaConfigElements.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51, page 86.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 341, page 704.


ZZ Elements RichMediaContentElement EntryViews Property

EntryViews Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<D3DViewElement> [Visual Basic] ArrayElement<D3DViewElement> | null | No | Represents the "Views" entry of the richmediacontent dictionary object.

Notes

Represents the "Views" entry of the richmediacontent dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains D3DViewElements.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51, page 86.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 341, page 704.


ZZ Elements RichMediaConfigElement

RichMediaConfigElement Class

This class represents the richmediaconfiguration dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 342, page 706.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51a, page 88.

This class is always an indirect object because RichMediaActivationElement.EntryConfiguration and RichMediaContentElement.EntryConfigurations require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RichMediaConfigElement

Method | Description
RichMediaConfigElement | Create a new RichMediaConfigElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the richmediaconfiguration dictionary object.
EntrySubtype | Represents the "Subtype" entry of the richmediaconfiguration dictionary object.
EntryName | Represents the "Name" entry of the richmediaconfiguration dictionary object.
EntryInstances | Represents the "Instances" entry of the richmediaconfiguration dictionary object.
 | inherited properties...


ZZ Elements RichMediaConfigElement Constructor Function

RichMediaConfigElement Function

Create a new RichMediaConfigElement.

Syntax

[C#]
RichMediaConfigElement()
RichMediaConfigElement(Atom atom, IndirectObject host)
RichMediaConfigElement(IndirectObject obj)
RichMediaConfigElement(Element relation, CreationOptions options)

[Visual Basic]
RichMediaConfigElement()
RichMediaConfigElement(atom As Atom, host As IndirectObject)
RichMediaConfigElement(obj As IndirectObject)
RichMediaConfigElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RichMediaConfigElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1803 in the Annotations example project.

[C#]

if (mediaType != "Flash" && mediaType != "Video" && mediaType != "Sound" && mediaType != "3D")
  throw new ArgumentException("Invalid media type.", "mediaType");

RichMediaAnnotationElement annot = new RichMediaAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "RichMedia";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);

string fileName;
FullFileSpecificationElement fileSpec = new FullFileSpecificationElement(annot);
fileSpec.EntryType = "Filespec";
if (filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase)) {
  fileSpec.EntryFS = "URL";
  fileName = FixUrl(filePathOrUrl);
}
else {
  FileInfo fileInfo = new FileInfo(filePathOrUrl);
  fileSpec.EntryEF = new EmbeddedFileSetElement(annot);
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo);
  fileName = EncodeName(fileInfo.Name);
}
fileSpec.EntryF = fileName;
fileSpec.EntryUF = fileName;

annot.Object.AdbeExtLevel = new int[] { 7, 3 };
RichMediaContentElement content = new RichMediaContentElement(annot, CreationOptions.Indirect);
content.EntryType = "RichMediaContent";
content.EntryAssets = new NameTreeNodeElement<FileSpecificationElement>(annot, CreationOptions.Indirect);
content.EntryAssets.EntryNames = new ArrayElement<Element>(annot);
content.EntryAssets.EntryNames.Add(new Element(new StringAtom(fileName), annot.Host));
content.EntryAssets.EntryNames.Add(fileSpec);

RichMediaConfigElement configuration = new RichMediaConfigElement(annot, CreationOptions.Indirect);
configuration.EntryType = "RichMediaConfiguration";
configuration.EntrySubtype = mediaType;
RichMediaInstanceElement instance = new RichMediaInstanceElement(annot, CreationOptions.Indirect);
instance.EntryType = "RichMediaInstance";
instance.EntrySubtype = mediaType;
instance.EntryParams = new RichMediaParamsElement(annot);
instance.EntryParams.EntryType = "RichMediaParams";
instance.EntryParams.EntryBinding = "Foreground";
instance.EntryAsset = fileSpec;
configuration.EntryInstances = new ArrayElement<RichMediaInstanceElement>(annot);
configuration.EntryInstances.Add(instance);

content.EntryConfigurations = new ArrayElement<RichMediaConfigElement>(annot);
content.EntryConfigurations.Add(configuration);
annot.EntryRichMediaContent = content;

RichMediaSettingsElement settings = new RichMediaSettingsElement(annot, CreationOptions.Indirect);
settings.EntryType = "RichMediaSettings";
settings.EntryActivation = new RichMediaActivationElement(annot);
settings.EntryActivation.EntryType = "RichMediaActivation";
settings.EntryActivation.EntryConfiguration = configuration;
annot.EntryRichMediaSettings = settings;
AnnotationElement = annot;

[VB]

If mediaType <> "Flash" AndAlso mediaType <> "Video" AndAlso mediaType <> "Sound" AndAlso mediaType <> "3D" Then
  Throw New ArgumentException("Invalid media type.", "mediaType")
End If

Dim annot As New RichMediaAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "RichMedia"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)

Dim fileName As String
Dim fileSpec As New FullFileSpecificationElement(annot)
fileSpec.EntryType = "Filespec"
If filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase) Then
  fileSpec.EntryFS = "URL"
  fileName = FixUrl(filePathOrUrl)
Else
  Dim fileInfo As New FileInfo(filePathOrUrl)
  fileSpec.EntryEF = New EmbeddedFileSetElement(annot)
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo)
  fileName = EncodeName(fileInfo.Name)
End If
fileSpec.EntryF = fileName
fileSpec.EntryUF = fileName

annot.Object.AdbeExtLevel = New Integer() { 7, 3 }
Dim content As New RichMediaContentElement(annot, CreationOptions.Indirect)
content.EntryType = "RichMediaContent"
content.EntryAssets = New NameTreeNodeElement(Of FileSpecificationElement)(annot, CreationOptions.Indirect)
content.EntryAssets.EntryNames = New ArrayElement(Of Element)(annot)
content.EntryAssets.EntryNames.Add(New Element(New StringAtom(fileName), annot.Host))
content.EntryAssets.EntryNames.Add(fileSpec)

Dim configuration As New RichMediaConfigElement(annot, CreationOptions.Indirect)
configuration.EntryType = "RichMediaConfiguration"
configuration.EntrySubtype = mediaType
Dim instance As New RichMediaInstanceElement(annot, CreationOptions.Indirect)
instance.EntryType = "RichMediaInstance"
instance.EntrySubtype = mediaType
instance.EntryParams = New RichMediaParamsElement(annot)
instance.EntryParams.EntryType = "RichMediaParams"
instance.EntryParams.EntryBinding = "Foreground"
instance.EntryAsset = fileSpec
configuration.EntryInstances = New ArrayElement(Of RichMediaInstanceElement)(annot)
configuration.EntryInstances.Add(instance)

content.EntryConfigurations = New ArrayElement(Of RichMediaConfigElement)(annot)
content.EntryConfigurations.Add(configuration)
annot.EntryRichMediaContent = content

Dim settings As New RichMediaSettingsElement(annot, CreationOptions.Indirect)
settings.EntryType = "RichMediaSettings"
settings.EntryActivation = New RichMediaActivationElement(annot)
settings.EntryActivation.EntryType = "RichMediaActivation"
settings.EntryActivation.EntryConfiguration = configuration
annot.EntryRichMediaSettings = settings
AnnotationElement = annot


ZZ Elements RichMediaConfigElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the richmediaconfiguration dictionary object.

Notes

Represents the "Type" entry of the richmediaconfiguration dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "RichMediaConfiguration".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51a, page 88.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 342, page 706.


ZZ Elements RichMediaConfigElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the richmediaconfiguration dictionary object.

Notes

Represents the "Subtype" entry of the richmediaconfiguration dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • 3D
  • Flash
  • Sound
  • Video

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51a, page 88.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 342, page 706.


ZZ Elements RichMediaConfigElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Name" entry of the richmediaconfiguration dictionary object.

Notes

Represents the "Name" entry of the richmediaconfiguration dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

The specification defines this property as being of undefined type. So the type of atom or data contained is not part of the specification. For practical purposes this means it may be of any type.

It contains an Element.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51a, page 88.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 342, page 706.


ZZ Elements RichMediaConfigElement EntryInstances Property

EntryInstances Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<RichMediaInstanceElement> [Visual Basic] ArrayElement<RichMediaInstanceElement> | null | No | Represents the "Instances" entry of the richmediaconfiguration dictionary object.

Notes

Represents the "Instances" entry of the richmediaconfiguration dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains RichMediaInstanceElements.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51a, page 88.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 342, page 706.


ZZ Elements RichMediaInstanceElement

RichMediaInstanceElement Class

This class represents the richmediainstance dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 343, page 706.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51b, page 89.

This class is always an indirect object because D3DNodeElement.EntryInstance, RichMediaConfigElement.EntryInstances, RichMediaExecuteActionElement.EntryTI and ViewParamsElement.EntryInstance require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RichMediaInstanceElement

Method | Description
RichMediaInstanceElement | Create a new RichMediaInstanceElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the richmediainstance dictionary object.
EntrySubtype | Represents the "Subtype" entry of the richmediainstance dictionary object.
EntryParams | Represents the "Params" entry of the richmediainstance dictionary object.
EntryAsset | Represents the "Asset" entry of the richmediainstance dictionary object.
 | inherited properties...


ZZ Elements RichMediaInstanceElement Constructor Function

RichMediaInstanceElement Function

Create a new RichMediaInstanceElement.

Syntax

[C#]
RichMediaInstanceElement()
RichMediaInstanceElement(Atom atom, IndirectObject host)
RichMediaInstanceElement(IndirectObject obj)
RichMediaInstanceElement(Element relation, CreationOptions options)

[Visual Basic]
RichMediaInstanceElement()
RichMediaInstanceElement(atom As Atom, host As IndirectObject)
RichMediaInstanceElement(obj As IndirectObject)
RichMediaInstanceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RichMediaInstanceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1803 in the Annotations example project.

[C#]

if (mediaType != "Flash" && mediaType != "Video" && mediaType != "Sound" && mediaType != "3D")
  throw new ArgumentException("Invalid media type.", "mediaType");

RichMediaAnnotationElement annot = new RichMediaAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "RichMedia";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);

string fileName;
FullFileSpecificationElement fileSpec = new FullFileSpecificationElement(annot);
fileSpec.EntryType = "Filespec";
if (filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase)) {
  fileSpec.EntryFS = "URL";
  fileName = FixUrl(filePathOrUrl);
}
else {
  FileInfo fileInfo = new FileInfo(filePathOrUrl);
  fileSpec.EntryEF = new EmbeddedFileSetElement(annot);
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo);
  fileName = EncodeName(fileInfo.Name);
}
fileSpec.EntryF = fileName;
fileSpec.EntryUF = fileName;

annot.Object.AdbeExtLevel = new int[] { 7, 3 };
RichMediaContentElement content = new RichMediaContentElement(annot, CreationOptions.Indirect);
content.EntryType = "RichMediaContent";
content.EntryAssets = new NameTreeNodeElement<FileSpecificationElement>(annot, CreationOptions.Indirect);
content.EntryAssets.EntryNames = new ArrayElement<Element>(annot);
content.EntryAssets.EntryNames.Add(new Element(new StringAtom(fileName), annot.Host));
content.EntryAssets.EntryNames.Add(fileSpec);

RichMediaConfigElement configuration = new RichMediaConfigElement(annot, CreationOptions.Indirect);
configuration.EntryType = "RichMediaConfiguration";
configuration.EntrySubtype = mediaType;
RichMediaInstanceElement instance = new RichMediaInstanceElement(annot, CreationOptions.Indirect);
instance.EntryType = "RichMediaInstance";
instance.EntrySubtype = mediaType;
instance.EntryParams = new RichMediaParamsElement(annot);
instance.EntryParams.EntryType = "RichMediaParams";
instance.EntryParams.EntryBinding = "Foreground";
instance.EntryAsset = fileSpec;
configuration.EntryInstances = new ArrayElement<RichMediaInstanceElement>(annot);
configuration.EntryInstances.Add(instance);

content.EntryConfigurations = new ArrayElement<RichMediaConfigElement>(annot);
content.EntryConfigurations.Add(configuration);
annot.EntryRichMediaContent = content;

RichMediaSettingsElement settings = new RichMediaSettingsElement(annot, CreationOptions.Indirect);
settings.EntryType = "RichMediaSettings";
settings.EntryActivation = new RichMediaActivationElement(annot);
settings.EntryActivation.EntryType = "RichMediaActivation";
settings.EntryActivation.EntryConfiguration = configuration;
annot.EntryRichMediaSettings = settings;
AnnotationElement = annot;

[VB]

If mediaType <> "Flash" AndAlso mediaType <> "Video" AndAlso mediaType <> "Sound" AndAlso mediaType <> "3D" Then
  Throw New ArgumentException("Invalid media type.", "mediaType")
End If

Dim annot As New RichMediaAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "RichMedia"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)

Dim fileName As String
Dim fileSpec As New FullFileSpecificationElement(annot)
fileSpec.EntryType = "Filespec"
If filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase) Then
  fileSpec.EntryFS = "URL"
  fileName = FixUrl(filePathOrUrl)
Else
  Dim fileInfo As New FileInfo(filePathOrUrl)
  fileSpec.EntryEF = New EmbeddedFileSetElement(annot)
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo)
  fileName = EncodeName(fileInfo.Name)
End If
fileSpec.EntryF = fileName
fileSpec.EntryUF = fileName

annot.Object.AdbeExtLevel = New Integer() { 7, 3 }
Dim content As New RichMediaContentElement(annot, CreationOptions.Indirect)
content.EntryType = "RichMediaContent"
content.EntryAssets = New NameTreeNodeElement(Of FileSpecificationElement)(annot, CreationOptions.Indirect)
content.EntryAssets.EntryNames = New ArrayElement(Of Element)(annot)
content.EntryAssets.EntryNames.Add(New Element(New StringAtom(fileName), annot.Host))
content.EntryAssets.EntryNames.Add(fileSpec)

Dim configuration As New RichMediaConfigElement(annot, CreationOptions.Indirect)
configuration.EntryType = "RichMediaConfiguration"
configuration.EntrySubtype = mediaType
Dim instance As New RichMediaInstanceElement(annot, CreationOptions.Indirect)
instance.EntryType = "RichMediaInstance"
instance.EntrySubtype = mediaType
instance.EntryParams = New RichMediaParamsElement(annot)
instance.EntryParams.EntryType = "RichMediaParams"
instance.EntryParams.EntryBinding = "Foreground"
instance.EntryAsset = fileSpec
configuration.EntryInstances = New ArrayElement(Of RichMediaInstanceElement)(annot)
configuration.EntryInstances.Add(instance)

content.EntryConfigurations = New ArrayElement(Of RichMediaConfigElement)(annot)
content.EntryConfigurations.Add(configuration)
annot.EntryRichMediaContent = content

Dim settings As New RichMediaSettingsElement(annot, CreationOptions.Indirect)
settings.EntryType = "RichMediaSettings"
settings.EntryActivation = New RichMediaActivationElement(annot)
settings.EntryActivation.EntryType = "RichMediaActivation"
settings.EntryActivation.EntryConfiguration = configuration
annot.EntryRichMediaSettings = settings
AnnotationElement = annot


ZZ Elements RichMediaInstanceElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the richmediainstance dictionary object.

Notes

Represents the "Type" entry of the richmediainstance dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "RichMediaInstance".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51b, page 89.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 343, page 706.


ZZ Elements RichMediaInstanceElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the richmediainstance dictionary object.

Notes

Represents the "Subtype" entry of the richmediainstance dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • 3D
  • Flash
  • Sound
  • Video

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51b, page 89.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 343, page 706.


ZZ Elements RichMediaInstanceElement EntryParams Property

EntryParams Property

Type | Default Value | Read Only | Description
[C#] RichMediaParamsElement [Visual Basic] RichMediaParamsElement | null | No | Represents the "Params" entry of the richmediainstance dictionary object.

Notes

Represents the "Params" entry of the richmediainstance dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RichMediaParamsElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51b, page 89.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 343, page 706.


ZZ Elements RichMediaInstanceElement EntryAsset Property

EntryAsset Property

Type | Default Value | Read Only | Description
[C#] FileSpecificationElement [Visual Basic] FileSpecificationElement | null | No | Represents the "Asset" entry of the richmediainstance dictionary object.

Notes

Represents the "Asset" entry of the richmediainstance dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a FileSpecificationElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51b, page 89.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 343, page 706.


ZZ Elements RichMediaParamsElement

RichMediaParamsElement Class

This class represents the richmediaparams dictionary. This is definitively detailed in:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51c, page 90.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RichMediaParamsElement

Method | Description
RichMediaParamsElement | Create a new RichMediaParamsElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the richmediaparams dictionary object.
EntryFlashVars | Represents the "FlashVars" entry of the richmediaparams dictionary object.
EntryBinding | Represents the "Binding" entry of the richmediaparams dictionary object.
EntryBindingMaterialName | Represents the "BindingMaterialName" entry of the richmediaparams dictionary object.
EntryCuePoints | Represents the "CuePoints" entry of the richmediaparams dictionary object.
EntrySettings | Represents the "Settings" entry of the richmediaparams dictionary object.
 | inherited properties...


ZZ Elements RichMediaParamsElement Constructor Function

RichMediaParamsElement Function

Create a new RichMediaParamsElement.

Syntax

[C#]
RichMediaParamsElement()
RichMediaParamsElement(Atom atom, IndirectObject host)
RichMediaParamsElement(IndirectObject obj)
RichMediaParamsElement(Element relation, CreationOptions options)

[Visual Basic]
RichMediaParamsElement()
RichMediaParamsElement(atom As Atom, host As IndirectObject)
RichMediaParamsElement(obj As IndirectObject)
RichMediaParamsElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RichMediaParamsElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1803 in the Annotations example project.

[C#]

if (mediaType != "Flash" && mediaType != "Video" && mediaType != "Sound" && mediaType != "3D")
  throw new ArgumentException("Invalid media type.", "mediaType");

RichMediaAnnotationElement annot = new RichMediaAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "RichMedia";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);

string fileName;
FullFileSpecificationElement fileSpec = new FullFileSpecificationElement(annot);
fileSpec.EntryType = "Filespec";
if (filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase)) {
  fileSpec.EntryFS = "URL";
  fileName = FixUrl(filePathOrUrl);
}
else {
  FileInfo fileInfo = new FileInfo(filePathOrUrl);
  fileSpec.EntryEF = new EmbeddedFileSetElement(annot);
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo);
  fileName = EncodeName(fileInfo.Name);
}
fileSpec.EntryF = fileName;
fileSpec.EntryUF = fileName;

annot.Object.AdbeExtLevel = new int[] { 7, 3 };
RichMediaContentElement content = new RichMediaContentElement(annot, CreationOptions.Indirect);
content.EntryType = "RichMediaContent";
content.EntryAssets = new NameTreeNodeElement<FileSpecificationElement>(annot, CreationOptions.Indirect);
content.EntryAssets.EntryNames = new ArrayElement<Element>(annot);
content.EntryAssets.EntryNames.Add(new Element(new StringAtom(fileName), annot.Host));
content.EntryAssets.EntryNames.Add(fileSpec);

RichMediaConfigElement configuration = new RichMediaConfigElement(annot, CreationOptions.Indirect);
configuration.EntryType = "RichMediaConfiguration";
configuration.EntrySubtype = mediaType;
RichMediaInstanceElement instance = new RichMediaInstanceElement(annot, CreationOptions.Indirect);
instance.EntryType = "RichMediaInstance";
instance.EntrySubtype = mediaType;
instance.EntryParams = new RichMediaParamsElement(annot);
instance.EntryParams.EntryType = "RichMediaParams";
instance.EntryParams.EntryBinding = "Foreground";
instance.EntryAsset = fileSpec;
configuration.EntryInstances = new ArrayElement<RichMediaInstanceElement>(annot);
configuration.EntryInstances.Add(instance);

content.EntryConfigurations = new ArrayElement<RichMediaConfigElement>(annot);
content.EntryConfigurations.Add(configuration);
annot.EntryRichMediaContent = content;

RichMediaSettingsElement settings = new RichMediaSettingsElement(annot, CreationOptions.Indirect);
settings.EntryType = "RichMediaSettings";
settings.EntryActivation = new RichMediaActivationElement(annot);
settings.EntryActivation.EntryType = "RichMediaActivation";
settings.EntryActivation.EntryConfiguration = configuration;
annot.EntryRichMediaSettings = settings;
AnnotationElement = annot;

[VB]

If mediaType <> "Flash" AndAlso mediaType <> "Video" AndAlso mediaType <> "Sound" AndAlso mediaType <> "3D" Then
  Throw New ArgumentException("Invalid media type.", "mediaType")
End If

Dim annot As New RichMediaAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "RichMedia"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)

Dim fileName As String
Dim fileSpec As New FullFileSpecificationElement(annot)
fileSpec.EntryType = "Filespec"
If filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase) Then
  fileSpec.EntryFS = "URL"
  fileName = FixUrl(filePathOrUrl)
Else
  Dim fileInfo As New FileInfo(filePathOrUrl)
  fileSpec.EntryEF = New EmbeddedFileSetElement(annot)
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo)
  fileName = EncodeName(fileInfo.Name)
End If
fileSpec.EntryF = fileName
fileSpec.EntryUF = fileName

annot.Object.AdbeExtLevel = New Integer() { 7, 3 }
Dim content As New RichMediaContentElement(annot, CreationOptions.Indirect)
content.EntryType = "RichMediaContent"
content.EntryAssets = New NameTreeNodeElement(Of FileSpecificationElement)(annot, CreationOptions.Indirect)
content.EntryAssets.EntryNames = New ArrayElement(Of Element)(annot)
content.EntryAssets.EntryNames.Add(New Element(New StringAtom(fileName), annot.Host))
content.EntryAssets.EntryNames.Add(fileSpec)

Dim configuration As New RichMediaConfigElement(annot, CreationOptions.Indirect)
configuration.EntryType = "RichMediaConfiguration"
configuration.EntrySubtype = mediaType
Dim instance As New RichMediaInstanceElement(annot, CreationOptions.Indirect)
instance.EntryType = "RichMediaInstance"
instance.EntrySubtype = mediaType
instance.EntryParams = New RichMediaParamsElement(annot)
instance.EntryParams.EntryType = "RichMediaParams"
instance.EntryParams.EntryBinding = "Foreground"
instance.EntryAsset = fileSpec
configuration.EntryInstances = New ArrayElement(Of RichMediaInstanceElement)(annot)
configuration.EntryInstances.Add(instance)

content.EntryConfigurations = New ArrayElement(Of RichMediaConfigElement)(annot)
content.EntryConfigurations.Add(configuration)
annot.EntryRichMediaContent = content

Dim settings As New RichMediaSettingsElement(annot, CreationOptions.Indirect)
settings.EntryType = "RichMediaSettings"
settings.EntryActivation = New RichMediaActivationElement(annot)
settings.EntryActivation.EntryType = "RichMediaActivation"
settings.EntryActivation.EntryConfiguration = configuration
annot.EntryRichMediaSettings = settings
AnnotationElement = annot


ZZ Elements RichMediaParamsElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the richmediaparams dictionary object.

Notes

Represents the "Type" entry of the richmediaparams dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "RichMediaParams".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51c, page 90.


ZZ Elements RichMediaParamsElement EntryFlashVars Property

EntryFlashVars Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "FlashVars" entry of the richmediaparams dictionary object.

Notes

Represents the "FlashVars" entry of the richmediaparams dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

This property may contain one of two different types:.

1) A string representing a PDF string object.

The PDF specification states that this item assumes a value of "No data is sent to the Flash Player" if no value has been provided.

2) A StreamElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51c, page 90.


ZZ Elements RichMediaParamsElement EntryBinding Property

EntryBinding Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Binding" entry of the richmediaparams dictionary object.

Notes

Represents the "Binding" entry of the richmediaparams dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "None" if no value has been provided.

This item may take one of the following valid values:.

  • None
  • Foreground
  • Background
  • Material

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51c, page 90.


ZZ Elements RichMediaParamsElement EntryBindingMaterialName Property

EntryBindingMaterialName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "BindingMaterialName" entry of the richmediaparams dictionary object.

Notes

Represents the "BindingMaterialName" entry of the richmediaparams dictionary object.

It is defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51c, page 90.


ZZ Elements RichMediaParamsElement EntryCuePoints Property

EntryCuePoints Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<CuePointElement> [Visual Basic] ArrayElement<CuePointElement> | null | No | Represents the "CuePoints" entry of the richmediaparams dictionary object.

Notes

Represents the "CuePoints" entry of the richmediaparams dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains CuePointElements.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51c, page 90.


ZZ Elements RichMediaParamsElement EntrySettings Property

EntrySettings Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Settings" entry of the richmediaparams dictionary object.

Notes

Represents the "Settings" entry of the richmediaparams dictionary object.

It is defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF string object.

The PDF specification states that this item assumes a value of "undefined" if no value has been provided.

2) A StreamElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51c, page 90.


ZZ Elements CuePointElement

CuePointElement Class

This class represents the cuepoint dictionary. This is definitively detailed in:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51e, page 92.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.CuePointElement

Method | Description
CuePointElement | Create a new CuePointElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the cuepoint dictionary object.
EntrySubtype | Represents the "Subtype" entry of the cuepoint dictionary object.
EntryName | Represents the "Name" entry of the cuepoint dictionary object.
EntryTime | Represents the "Time" entry of the cuepoint dictionary object.
EntryA | Represents the "A" entry of the cuepoint dictionary object.
 | inherited properties...


ZZ Elements CuePointElement Constructor Function

CuePointElement Function

Create a new CuePointElement.

Syntax

[C#]
CuePointElement()
CuePointElement(Atom atom, IndirectObject host)
CuePointElement(IndirectObject obj)
CuePointElement(Element relation, CreationOptions options)

[Visual Basic]
CuePointElement()
CuePointElement(atom As Atom, host As IndirectObject)
CuePointElement(obj As IndirectObject)
CuePointElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new CuePointElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements CuePointElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the cuepoint dictionary object.

Notes

Represents the "Type" entry of the cuepoint dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "CuePoint".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51e, page 92.


ZZ Elements CuePointElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the cuepoint dictionary object.

Notes

Represents the "Subtype" entry of the cuepoint dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • Navigation
  • Event

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51e, page 92.


ZZ Elements CuePointElement EntryName Property

EntryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Name" entry of the cuepoint dictionary object.

Notes

Represents the "Name" entry of the cuepoint dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51e, page 92.


ZZ Elements CuePointElement EntryTime Property

EntryTime Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Time" entry of the cuepoint dictionary object.

Notes

Represents the "Time" entry of the cuepoint dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51e, page 92.


ZZ Elements CuePointElement EntryA Property

EntryA Property

Type | Default Value | Read Only | Description
[C#] ActionElement [Visual Basic] ActionElement | null | No | Represents the "A" entry of the cuepoint dictionary object.

Notes

Represents the "A" entry of the cuepoint dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an ActionElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51e, page 92.


ZZ Elements ViewParamsElement

ViewParamsElement Class

This class represents the view params dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 345, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51g, page 93.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ViewParamsElement

Method | Description
ViewParamsElement | Create a new ViewParamsElement.
 | inherited methods...

Property | Description
EntryInstance | Represents the "Instance" entry of the view params dictionary object.
EntryData | Represents the "Data" entry of the view params dictionary object.
 | inherited properties...


ZZ Elements ViewParamsElement Constructor Function

ViewParamsElement Function

Create a new ViewParamsElement.

Syntax

[C#]
ViewParamsElement()
ViewParamsElement(Atom atom, IndirectObject host)
ViewParamsElement(IndirectObject obj)
ViewParamsElement(Element relation, CreationOptions options)

[Visual Basic]
ViewParamsElement()
ViewParamsElement(atom As Atom, host As IndirectObject)
ViewParamsElement(obj As IndirectObject)
ViewParamsElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ViewParamsElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ViewParamsElement EntryInstance Property

EntryInstance Property

Type | Default Value | Read Only | Description
[C#] RichMediaInstanceElement [Visual Basic] RichMediaInstanceElement | null | No | Represents the "Instance" entry of the view params dictionary object.

Notes

Represents the "Instance" entry of the view params dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RichMediaInstanceElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51g, page 93.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 345, page 707.


ZZ Elements ViewParamsElement EntryData Property

EntryData Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Data" entry of the view params dictionary object.

Notes

Represents the "Data" entry of the view params dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

This property may contain one of two different types:.

1) A string representing a PDF string object.

2) A StreamElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51g, page 93.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 345, page 707.


ZZ Elements MediaCriteriaElement

MediaCriteriaElement Class

This class represents the media criteria dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 268, page 489.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 279, page 613.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MediaCriteriaElement

Method | Description
MediaCriteriaElement | Create a new MediaCriteriaElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the media criteria dictionary object.
EntryA | Represents the "A" entry of the media criteria dictionary object.
EntryC | Represents the "C" entry of the media criteria dictionary object.
EntryO | Represents the "O" entry of the media criteria dictionary object.
EntryS | Represents the "S" entry of the media criteria dictionary object.
EntryR | Represents the "R" entry of the media criteria dictionary object.
EntryD | Represents the "D" entry of the media criteria dictionary object.
EntryZ | Represents the "Z" entry of the media criteria dictionary object.
EntryV | Represents the "V" entry of the media criteria dictionary object.
EntryP | Represents the "P" entry of the media criteria dictionary object.
EntryL | Represents the "L" entry of the media criteria dictionary object.
 | inherited properties...


ZZ Elements MediaCriteriaElement Constructor Function

MediaCriteriaElement Function

Create a new MediaCriteriaElement.

Syntax

[C#]
MediaCriteriaElement()
MediaCriteriaElement(Atom atom, IndirectObject host)
MediaCriteriaElement(IndirectObject obj)
MediaCriteriaElement(Element relation, CreationOptions options)

[Visual Basic]
MediaCriteriaElement()
MediaCriteriaElement(atom As Atom, host As IndirectObject)
MediaCriteriaElement(obj As IndirectObject)
MediaCriteriaElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaCriteriaElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MediaCriteriaElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the media criteria dictionary object.

Notes

Represents the "Type" entry of the media criteria dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "MediaCriteria".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 268, page 489.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 279, page 613.


ZZ Elements MediaCriteriaElement EntryA Property

EntryA Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "A" entry of the media criteria dictionary object.

Notes

Represents the "A" entry of the media criteria dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 268, page 489.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 279, page 614.


ZZ Elements MediaCriteriaElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "C" entry of the media criteria dictionary object.

Notes

Represents the "C" entry of the media criteria dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 268, page 489.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 279, page 614.


ZZ Elements MediaCriteriaElement EntryO Property

EntryO Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "O" entry of the media criteria dictionary object.

Notes

Represents the "O" entry of the media criteria dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 268, page 489.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 279, page 614.


ZZ Elements MediaCriteriaElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "S" entry of the media criteria dictionary object.

Notes

Represents the "S" entry of the media criteria dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 268, page 489.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 279, page 614.


ZZ Elements MediaCriteriaElement EntryR Property

EntryR Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "R" entry of the media criteria dictionary object.

Notes

Represents the "R" entry of the media criteria dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 268, page 490.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 279, page 614.


ZZ Elements MediaCriteriaElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "D" entry of the media criteria dictionary object.

Notes

Represents the "D" entry of the media criteria dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 268, page 490.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 279, page 614.


ZZ Elements MediaCriteriaElement EntryZ Property

EntryZ Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Z" entry of the media criteria dictionary object.

Notes

Represents the "Z" entry of the media criteria dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 268, page 490.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 279, page 614.


ZZ Elements MediaCriteriaElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<SoftwareIdentifierElement> [Visual Basic] ArrayElement<SoftwareIdentifierElement> | null | No | Represents the "V" entry of the media criteria dictionary object.

Notes

Represents the "V" entry of the media criteria dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains SoftwareIdentifierElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 268, page 490.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 279, page 614.


ZZ Elements MediaCriteriaElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "P" entry of the media criteria dictionary object.

Notes

Represents the "P" entry of the media criteria dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF name objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 268, page 490.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 279, page 614.


ZZ Elements MediaCriteriaElement EntryL Property

EntryL Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "L" entry of the media criteria dictionary object.

Notes

Represents the "L" entry of the media criteria dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 268, page 490.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 279, page 614.


ZZ Elements RenditionElement

RenditionElement Class

This class represents the rendition dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 266, page 489.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 277, page 613.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RenditionElement
         WebSupergoo.ABCpdf12.Elements.MediaRenditionElement
         WebSupergoo.ABCpdf12.Elements.SelectorRenditionElement

Method | Description
RenditionElement | Create a new RenditionElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the rendition dictionary object.
EntryS | Represents the "S" entry of the rendition dictionary object.
EntryN | Represents the "N" entry of the rendition dictionary object.
EntryMH | Represents the "MH" entry of the rendition dictionary object.
EntryBE | Represents the "BE" entry of the rendition dictionary object.
 | inherited properties...


ZZ Elements RenditionElement Constructor Function

RenditionElement Function

Create a new RenditionElement.

Syntax

[C#]
RenditionElement()
RenditionElement(Atom atom, IndirectObject host)
RenditionElement(IndirectObject obj)
RenditionElement(Element relation, CreationOptions options)

[Visual Basic]
RenditionElement()
RenditionElement(atom As Atom, host As IndirectObject)
RenditionElement(obj As IndirectObject)
RenditionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RenditionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements RenditionElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the rendition dictionary object.

Notes

Represents the "Type" entry of the rendition dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Rendition".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 266, page 489.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 277, page 613.


ZZ Elements RenditionElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the rendition dictionary object.

Notes

Represents the "S" entry of the rendition dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • MR
  • SR

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 266, page 489.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 277, page 613.


ZZ Elements RenditionElement EntryN Property

EntryN Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "N" entry of the rendition dictionary object.

Notes

Represents the "N" entry of the rendition dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 266, page 489.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 277, page 613.


ZZ Elements RenditionElement EntryMH Property

EntryMH Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "MH" entry of the rendition dictionary object.

Notes

Represents the "MH" entry of the rendition dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 266, page 489.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 277, page 613.


ZZ Elements RenditionElement EntryBE Property

EntryBE Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "BE" entry of the rendition dictionary object.

Notes

Represents the "BE" entry of the rendition dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 266, page 489.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 277, page 613.


ZZ Elements RenditionMhBeElement

RenditionMhBeElement Class

This class represents the rendition mh/be dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 267, page 489.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 278, page 613.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RenditionMhBeElement

Method | Description
RenditionMhBeElement | Create a new RenditionMhBeElement.
 | inherited methods...

Property | Description
EntryC | Represents the "C" entry of the rendition mh/be dictionary object.
 | inherited properties...


ZZ Elements RenditionMhBeElement Constructor Function

RenditionMhBeElement Function

Create a new RenditionMhBeElement.

Syntax

[C#]
RenditionMhBeElement()
RenditionMhBeElement(Atom atom, IndirectObject host)
RenditionMhBeElement(IndirectObject obj)
RenditionMhBeElement(Element relation, CreationOptions options)

[Visual Basic]
RenditionMhBeElement()
RenditionMhBeElement(atom As Atom, host As IndirectObject)
RenditionMhBeElement(obj As IndirectObject)
RenditionMhBeElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RenditionMhBeElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements RenditionMhBeElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] MediaCriteriaElement [Visual Basic] MediaCriteriaElement | null | No | Represents the "C" entry of the rendition mh/be dictionary object.

Notes

Represents the "C" entry of the rendition mh/be dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a MediaCriteriaElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 267, page 489.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 278, page 613.


ZZ Elements MinimumBitDepthElement

MinimumBitDepthElement Class

This class represents the minimum bit depth dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 269, page 490.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 280, page 615.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MinimumBitDepthElement

Method | Description
MinimumBitDepthElement | Create a new MinimumBitDepthElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the minimum bit depth dictionary object.
EntryV | Represents the "V" entry of the minimum bit depth dictionary object.
EntryM | Represents the "M" entry of the minimum bit depth dictionary object.
 | inherited properties...


ZZ Elements MinimumBitDepthElement Constructor Function

MinimumBitDepthElement Function

Create a new MinimumBitDepthElement.

Syntax

[C#]
MinimumBitDepthElement()
MinimumBitDepthElement(Atom atom, IndirectObject host)
MinimumBitDepthElement(IndirectObject obj)
MinimumBitDepthElement(Element relation, CreationOptions options)

[Visual Basic]
MinimumBitDepthElement()
MinimumBitDepthElement(atom As Atom, host As IndirectObject)
MinimumBitDepthElement(obj As IndirectObject)
MinimumBitDepthElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MinimumBitDepthElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MinimumBitDepthElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the minimum bit depth dictionary object.

Notes

Represents the "Type" entry of the minimum bit depth dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "MinBitDepth".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 269, page 490.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 280, page 615.


ZZ Elements MinimumBitDepthElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "V" entry of the minimum bit depth dictionary object.

Notes

Represents the "V" entry of the minimum bit depth dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

It should have a minimum value of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 269, page 490.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 280, page 615.


ZZ Elements MinimumBitDepthElement EntryM Property

EntryM Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "M" entry of the minimum bit depth dictionary object.

Notes

Represents the "M" entry of the minimum bit depth dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 269, page 490.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 280, page 615.


ZZ Elements MediaRenditionElement

MediaRenditionElement Class

This class represents the media rendition dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 271, page 491.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 282, page 615.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RenditionElement
         WebSupergoo.ABCpdf12.Elements.MediaRenditionElement

Method | Description
MediaRenditionElement | Create a new MediaRenditionElement.
 | inherited methods...

Property | Description
EntryC | Represents the "C" entry of the media rendition dictionary object.
EntryP | Represents the "P" entry of the media rendition dictionary object.
EntrySP | Represents the "SP" entry of the media rendition dictionary object.
 | inherited properties...


ZZ Elements MediaRenditionElement Constructor Function

MediaRenditionElement Function

Create a new MediaRenditionElement.

Syntax

[C#]
MediaRenditionElement()
MediaRenditionElement(Atom atom, IndirectObject host)
MediaRenditionElement(IndirectObject obj)
MediaRenditionElement(Element relation, CreationOptions options)

[Visual Basic]
MediaRenditionElement()
MediaRenditionElement(atom As Atom, host As IndirectObject)
MediaRenditionElement(obj As IndirectObject)
MediaRenditionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaRenditionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1584 in the Annotations example project.

[C#]

bool isUrl = filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase);
if (contentType == null) {
  int end = -1;
  if (isUrl)
    end = filePathOrUrl.IndexOfAny(new char[] { '?', '#' });
  if (end < 0)
    end = filePathOrUrl.Length;
  contentType = GetContentType(filePathOrUrl, end);
  if (contentType == null)
    throw new NotSupportedException("Movie content type is not supported.");
}

ScreenAnnotationElement annot = new ScreenAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "Screen";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);

FullFileSpecificationElement fileSpec = new FullFileSpecificationElement(annot);
fileSpec.EntryType = "Filespec";
if (isUrl) {
  fileSpec.EntryFS = "URL";
  fileSpec.EntryF = filePathOrUrl;
}
else {
  FileInfo fileInfo = new FileInfo(filePathOrUrl);
  fileSpec.EntryF = fileInfo.Name;
  fileSpec.EntryUF = fileInfo.Name;
  fileSpec.EntryEF = new EmbeddedFileSetElement(annot);
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo);
}

MediaClipDataElement mediaClip = new MediaClipDataElement(annot, CreationOptions.Indirect);
mediaClip.EntryS = "MCD";
mediaClip.EntryP = new MediaPermissionsElement(annot);
mediaClip.EntryP.EntryTF = "TEMPACCESS";
mediaClip.EntryCT = contentType;
mediaClip.EntryD = fileSpec;

MediaRenditionElement rendition = new MediaRenditionElement(annot, CreationOptions.Indirect);
rendition.EntryS = "MR";
rendition.EntryC = mediaClip;

RenditionActionElement pageVisibleAction = new RenditionActionElement(annot, CreationOptions.Indirect);
pageVisibleAction.EntryS = "Rendition";
pageVisibleAction.EntryOP = 4;
pageVisibleAction.EntryAN = annot;
pageVisibleAction.EntryR = rendition;

annot.EntryAA = new AnnotationAdditionalActionsElement(annot);
annot.EntryAA.EntryPV = pageVisibleAction;
AnnotationElement = annot;

[VB]

Dim isUrl As Boolean = filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase)
If contentType Is Nothing Then
  Dim [end] As Integer = -1
  If isUrl Then
    [end] = filePathOrUrl.IndexOfAny(New Char() { "?"c, "#"c })
  End If
  If [end] < 0 Then
    [end] = filePathOrUrl.Length
  End If
  contentType = GetContentType(filePathOrUrl, [end])
  If contentType Is Nothing Then
    Throw New NotSupportedException("Movie content type is not supported.")
  End If
End If

Dim annot As New ScreenAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "Screen"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)

Dim fileSpec As New FullFileSpecificationElement(annot)
fileSpec.EntryType = "Filespec"
If isUrl Then
  fileSpec.EntryFS = "URL"
  fileSpec.EntryF = filePathOrUrl
Else
  Dim fileInfo As New FileInfo(filePathOrUrl)
  fileSpec.EntryF = fileInfo.Name
  fileSpec.EntryUF = fileInfo.Name
  fileSpec.EntryEF = New EmbeddedFileSetElement(annot)
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo)
End If

Dim mediaClip As New MediaClipDataElement(annot, CreationOptions.Indirect)
mediaClip.EntryS = "MCD"
mediaClip.EntryP = New MediaPermissionsElement(annot)
mediaClip.EntryP.EntryTF = "TEMPACCESS"
mediaClip.EntryCT = contentType
mediaClip.EntryD = fileSpec

Dim rendition As New MediaRenditionElement(annot, CreationOptions.Indirect)
rendition.EntryS = "MR"
rendition.EntryC = mediaClip

Dim pageVisibleAction As New RenditionActionElement(annot, CreationOptions.Indirect)
pageVisibleAction.EntryS = "Rendition"
pageVisibleAction.EntryOP = 4
pageVisibleAction.EntryAN = annot
pageVisibleAction.EntryR = rendition

annot.EntryAA = New AnnotationAdditionalActionsElement(annot)
annot.EntryAA.EntryPV = pageVisibleAction
AnnotationElement = annot


ZZ Elements MediaRenditionElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] MediaClipElement [Visual Basic] MediaClipElement | null | No | Represents the "C" entry of the media rendition dictionary object.

Notes

Represents the "C" entry of the media rendition dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a MediaClipElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 271, page 491.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 282, page 615.


ZZ Elements MediaRenditionElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] MediaPlayParametersElement [Visual Basic] MediaPlayParametersElement | null | No | Represents the "P" entry of the media rendition dictionary object.

Notes

Represents the "P" entry of the media rendition dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a MediaPlayParametersElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 271, page 491.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 282, page 616.


ZZ Elements MediaRenditionElement EntrySP Property

EntrySP Property

Type | Default Value | Read Only | Description
[C#] MediaScreenParametersElement [Visual Basic] MediaScreenParametersElement | null | No | Represents the "SP" entry of the media rendition dictionary object.

Notes

Represents the "SP" entry of the media rendition dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a MediaScreenParametersElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 271, page 491.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 282, page 616.


ZZ Elements MinimumScreenSizeElement

MinimumScreenSizeElement Class

This class represents the minimum screen size dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 270, page 491.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 281, page 615.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MinimumScreenSizeElement

Method | Description
MinimumScreenSizeElement | Create a new MinimumScreenSizeElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the minimum screen size dictionary object.
EntryV | Represents the "V" entry of the minimum screen size dictionary object.
EntryM | Represents the "M" entry of the minimum screen size dictionary object.
 | inherited properties...


ZZ Elements MinimumScreenSizeElement Constructor Function

MinimumScreenSizeElement Function

Create a new MinimumScreenSizeElement.

Syntax

[C#]
MinimumScreenSizeElement()
MinimumScreenSizeElement(Atom atom, IndirectObject host)
MinimumScreenSizeElement(IndirectObject obj)
MinimumScreenSizeElement(Element relation, CreationOptions options)

[Visual Basic]
MinimumScreenSizeElement()
MinimumScreenSizeElement(atom As Atom, host As IndirectObject)
MinimumScreenSizeElement(obj As IndirectObject)
MinimumScreenSizeElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MinimumScreenSizeElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MinimumScreenSizeElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the minimum screen size dictionary object.

Notes

Represents the "Type" entry of the minimum screen size dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "MinScreenSize".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 270, page 491.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 281, page 615.


ZZ Elements MinimumScreenSizeElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "V" entry of the minimum screen size dictionary object.

Notes

Represents the "V" entry of the minimum screen size dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains integers, representing PDF numeric objects.

Items in this array should have a minimum value of 0.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 270, page 491.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 281, page 615.


ZZ Elements MinimumScreenSizeElement EntryM Property

EntryM Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "M" entry of the minimum screen size dictionary object.

Notes

Represents the "M" entry of the minimum screen size dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 270, page 491.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 281, page 615.


ZZ Elements MediaClipDataElement

MediaClipDataElement Class

This class represents the media clip data dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 274, page 492.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 285, page 617.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MediaClipElement
         WebSupergoo.ABCpdf12.Elements.MediaClipDataElement

Method | Description
MediaClipDataElement | Create a new MediaClipDataElement.
 | inherited methods...

Property | Description
EntryD | Represents the "D" entry of the media clip data dictionary object.
EntryCT | Represents the "CT" entry of the media clip data dictionary object.
EntryP | Represents the "P" entry of the media clip data dictionary object.
EntryAlt | Represents the "Alt" entry of the media clip data dictionary object.
EntryPL | Represents the "PL" entry of the media clip data dictionary object.
EntryMH | Represents the "MH" entry of the media clip data dictionary object.
EntryBE | Represents the "BE" entry of the media clip data dictionary object.
 | inherited properties...


ZZ Elements MediaClipDataElement Constructor Function

MediaClipDataElement Function

Create a new MediaClipDataElement.

Syntax

[C#]
MediaClipDataElement()
MediaClipDataElement(Atom atom, IndirectObject host)
MediaClipDataElement(IndirectObject obj)
MediaClipDataElement(Element relation, CreationOptions options)

[Visual Basic]
MediaClipDataElement()
MediaClipDataElement(atom As Atom, host As IndirectObject)
MediaClipDataElement(obj As IndirectObject)
MediaClipDataElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaClipDataElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1584 in the Annotations example project.

[C#]

bool isUrl = filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase);
if (contentType == null) {
  int end = -1;
  if (isUrl)
    end = filePathOrUrl.IndexOfAny(new char[] { '?', '#' });
  if (end < 0)
    end = filePathOrUrl.Length;
  contentType = GetContentType(filePathOrUrl, end);
  if (contentType == null)
    throw new NotSupportedException("Movie content type is not supported.");
}

ScreenAnnotationElement annot = new ScreenAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "Screen";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);

FullFileSpecificationElement fileSpec = new FullFileSpecificationElement(annot);
fileSpec.EntryType = "Filespec";
if (isUrl) {
  fileSpec.EntryFS = "URL";
  fileSpec.EntryF = filePathOrUrl;
}
else {
  FileInfo fileInfo = new FileInfo(filePathOrUrl);
  fileSpec.EntryF = fileInfo.Name;
  fileSpec.EntryUF = fileInfo.Name;
  fileSpec.EntryEF = new EmbeddedFileSetElement(annot);
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo);
}

MediaClipDataElement mediaClip = new MediaClipDataElement(annot, CreationOptions.Indirect);
mediaClip.EntryS = "MCD";
mediaClip.EntryP = new MediaPermissionsElement(annot);
mediaClip.EntryP.EntryTF = "TEMPACCESS";
mediaClip.EntryCT = contentType;
mediaClip.EntryD = fileSpec;

MediaRenditionElement rendition = new MediaRenditionElement(annot, CreationOptions.Indirect);
rendition.EntryS = "MR";
rendition.EntryC = mediaClip;

RenditionActionElement pageVisibleAction = new RenditionActionElement(annot, CreationOptions.Indirect);
pageVisibleAction.EntryS = "Rendition";
pageVisibleAction.EntryOP = 4;
pageVisibleAction.EntryAN = annot;
pageVisibleAction.EntryR = rendition;

annot.EntryAA = new AnnotationAdditionalActionsElement(annot);
annot.EntryAA.EntryPV = pageVisibleAction;
AnnotationElement = annot;

[VB]

Dim isUrl As Boolean = filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase)
If contentType Is Nothing Then
  Dim [end] As Integer = -1
  If isUrl Then
    [end] = filePathOrUrl.IndexOfAny(New Char() { "?"c, "#"c })
  End If
  If [end] < 0 Then
    [end] = filePathOrUrl.Length
  End If
  contentType = GetContentType(filePathOrUrl, [end])
  If contentType Is Nothing Then
    Throw New NotSupportedException("Movie content type is not supported.")
  End If
End If

Dim annot As New ScreenAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "Screen"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)

Dim fileSpec As New FullFileSpecificationElement(annot)
fileSpec.EntryType = "Filespec"
If isUrl Then
  fileSpec.EntryFS = "URL"
  fileSpec.EntryF = filePathOrUrl
Else
  Dim fileInfo As New FileInfo(filePathOrUrl)
  fileSpec.EntryF = fileInfo.Name
  fileSpec.EntryUF = fileInfo.Name
  fileSpec.EntryEF = New EmbeddedFileSetElement(annot)
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo)
End If

Dim mediaClip As New MediaClipDataElement(annot, CreationOptions.Indirect)
mediaClip.EntryS = "MCD"
mediaClip.EntryP = New MediaPermissionsElement(annot)
mediaClip.EntryP.EntryTF = "TEMPACCESS"
mediaClip.EntryCT = contentType
mediaClip.EntryD = fileSpec

Dim rendition As New MediaRenditionElement(annot, CreationOptions.Indirect)
rendition.EntryS = "MR"
rendition.EntryC = mediaClip

Dim pageVisibleAction As New RenditionActionElement(annot, CreationOptions.Indirect)
pageVisibleAction.EntryS = "Rendition"
pageVisibleAction.EntryOP = 4
pageVisibleAction.EntryAN = annot
pageVisibleAction.EntryR = rendition

annot.EntryAA = New AnnotationAdditionalActionsElement(annot)
annot.EntryAA.EntryPV = pageVisibleAction
AnnotationElement = annot


ZZ Elements MediaClipDataElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "D" entry of the media clip data dictionary object.

Notes

Represents the "D" entry of the media clip data dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A FileSpecificationElement.

2) A FormXObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 274, page 492.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 285, page 617.


ZZ Elements MediaClipDataElement EntryCT Property

EntryCT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "CT" entry of the media clip data dictionary object.

Notes

Represents the "CT" entry of the media clip data dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 274, page 492.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 285, page 617.


ZZ Elements MediaClipDataElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] MediaPermissionsElement [Visual Basic] MediaPermissionsElement | null | No | Represents the "P" entry of the media clip data dictionary object.

Notes

Represents the "P" entry of the media clip data dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a MediaPermissionsElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 274, page 492.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 285, page 617.


ZZ Elements MediaClipDataElement EntryAlt Property

EntryAlt Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Alt" entry of the media clip data dictionary object.

Notes

Represents the "Alt" entry of the media clip data dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 274, page 492.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 285, page 617.


ZZ Elements MediaClipDataElement EntryPL Property

EntryPL Property

Type | Default Value | Read Only | Description
[C#] MediaPlayersElement [Visual Basic] MediaPlayersElement | null | No | Represents the "PL" entry of the media clip data dictionary object.

Notes

Represents the "PL" entry of the media clip data dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a MediaPlayersElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 274, page 493.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 285, page 617.


ZZ Elements MediaClipDataElement EntryMH Property

EntryMH Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "MH" entry of the media clip data dictionary object.

Notes

Represents the "MH" entry of the media clip data dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 274, page 493.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 285, page 617.


ZZ Elements MediaClipDataElement EntryBE Property

EntryBE Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "BE" entry of the media clip data dictionary object.

Notes

Represents the "BE" entry of the media clip data dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 274, page 493.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 285, page 617.


ZZ Elements MediaClipElement

MediaClipElement Class

This class represents the media clip dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 273, page 492.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 284, page 617.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MediaClipElement
         WebSupergoo.ABCpdf12.Elements.MediaClipDataElement
         WebSupergoo.ABCpdf12.Elements.MediaClipSectionElement

Method | Description
MediaClipElement | Create a new MediaClipElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the media clip dictionary object.
EntryS | Represents the "S" entry of the media clip dictionary object.
EntryN | Represents the "N" entry of the media clip dictionary object.
 | inherited properties...


ZZ Elements MediaClipElement Constructor Function

MediaClipElement Function

Create a new MediaClipElement.

Syntax

[C#]
MediaClipElement()
MediaClipElement(Atom atom, IndirectObject host)
MediaClipElement(IndirectObject obj)
MediaClipElement(Element relation, CreationOptions options)

[Visual Basic]
MediaClipElement()
MediaClipElement(atom As Atom, host As IndirectObject)
MediaClipElement(obj As IndirectObject)
MediaClipElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaClipElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MediaClipElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the media clip dictionary object.

Notes

Represents the "Type" entry of the media clip dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "MediaClip".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 273, page 492.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 284, page 617.


ZZ Elements MediaClipElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the media clip dictionary object.

Notes

Represents the "S" entry of the media clip dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • MCD
  • MCS

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 273, page 492.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 284, page 617.


ZZ Elements MediaClipElement EntryN Property

EntryN Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "N" entry of the media clip dictionary object.

Notes

Represents the "N" entry of the media clip dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 273, page 492.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 284, page 617.


ZZ Elements SelectorRenditionElement

SelectorRenditionElement Class

This class represents the selector rendition dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 272, page 492.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 283, page 616.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RenditionElement
         WebSupergoo.ABCpdf12.Elements.SelectorRenditionElement

Method | Description
SelectorRenditionElement | Create a new SelectorRenditionElement.
 | inherited methods...

Property | Description
EntryR | Represents the "R" entry of the selector rendition dictionary object.
 | inherited properties...


ZZ Elements SelectorRenditionElement Constructor Function

SelectorRenditionElement Function

Create a new SelectorRenditionElement.

Syntax

[C#]
SelectorRenditionElement()
SelectorRenditionElement(Atom atom, IndirectObject host)
SelectorRenditionElement(IndirectObject obj)
SelectorRenditionElement(Element relation, CreationOptions options)

[Visual Basic]
SelectorRenditionElement()
SelectorRenditionElement(atom As Atom, host As IndirectObject)
SelectorRenditionElement(obj As IndirectObject)
SelectorRenditionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SelectorRenditionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements SelectorRenditionElement EntryR Property

EntryR Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<RenditionElement> [Visual Basic] ArrayElement<RenditionElement> | null | No | Represents the "R" entry of the selector rendition dictionary object.

Notes

Represents the "R" entry of the selector rendition dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains RenditionElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 272, page 492.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 283, page 616.


ZZ Elements MediaClipDataMhBeElement

MediaClipDataMhBeElement Class

This class represents the media clip data mh/be dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 276, page 494.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 287, page 619.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MediaClipDataMhBeElement

Method | Description
MediaClipDataMhBeElement | Create a new MediaClipDataMhBeElement.
 | inherited methods...

Property | Description
EntryBU | Represents the "BU" entry of the media clip data mh/be dictionary object.
 | inherited properties...


ZZ Elements MediaClipDataMhBeElement Constructor Function

MediaClipDataMhBeElement Function

Create a new MediaClipDataMhBeElement.

Syntax

[C#]
MediaClipDataMhBeElement()
MediaClipDataMhBeElement(Atom atom, IndirectObject host)
MediaClipDataMhBeElement(IndirectObject obj)
MediaClipDataMhBeElement(Element relation, CreationOptions options)

[Visual Basic]
MediaClipDataMhBeElement()
MediaClipDataMhBeElement(atom As Atom, host As IndirectObject)
MediaClipDataMhBeElement(obj As IndirectObject)
MediaClipDataMhBeElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaClipDataMhBeElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MediaClipDataMhBeElement EntryBU Property

EntryBU Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "BU" entry of the media clip data mh/be dictionary object.

Notes

Represents the "BU" entry of the media clip data mh/be dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 276, page 494.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 287, page 619.


ZZ Elements MediaPermissionsElement

MediaPermissionsElement Class

This class represents the media permissions dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 275, page 494.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 286, page 618.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MediaPermissionsElement

Method | Description
MediaPermissionsElement | Create a new MediaPermissionsElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the media permissions dictionary object.
EntryTF | Represents the "TF" entry of the media permissions dictionary object.
 | inherited properties...


ZZ Elements MediaPermissionsElement Constructor Function

MediaPermissionsElement Function

Create a new MediaPermissionsElement.

Syntax

[C#]
MediaPermissionsElement()
MediaPermissionsElement(Atom atom, IndirectObject host)
MediaPermissionsElement(IndirectObject obj)
MediaPermissionsElement(Element relation, CreationOptions options)

[Visual Basic]
MediaPermissionsElement()
MediaPermissionsElement(atom As Atom, host As IndirectObject)
MediaPermissionsElement(obj As IndirectObject)
MediaPermissionsElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaPermissionsElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Annotations.cs line 1584 in the Annotations example project.

[C#]

bool isUrl = filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase)
  || filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase);
if (contentType == null) {
  int end = -1;
  if (isUrl)
    end = filePathOrUrl.IndexOfAny(new char[] { '?', '#' });
  if (end < 0)
    end = filePathOrUrl.Length;
  contentType = GetContentType(filePathOrUrl, end);
  if (contentType == null)
    throw new NotSupportedException("Movie content type is not supported.");
}

ScreenAnnotationElement annot = new ScreenAnnotationElement(AnnotationElement.Object);
annot.EntrySubtype = "Screen";
annot.EntryRect = new RectangleElement(ArrayAtom.FromXRect(new XRect(rect)), annot.Host);

FullFileSpecificationElement fileSpec = new FullFileSpecificationElement(annot);
fileSpec.EntryType = "Filespec";
if (isUrl) {
  fileSpec.EntryFS = "URL";
  fileSpec.EntryF = filePathOrUrl;
}
else {
  FileInfo fileInfo = new FileInfo(filePathOrUrl);
  fileSpec.EntryF = fileInfo.Name;
  fileSpec.EntryUF = fileInfo.Name;
  fileSpec.EntryEF = new EmbeddedFileSetElement(annot);
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo);
}

MediaClipDataElement mediaClip = new MediaClipDataElement(annot, CreationOptions.Indirect);
mediaClip.EntryS = "MCD";
mediaClip.EntryP = new MediaPermissionsElement(annot);
mediaClip.EntryP.EntryTF = "TEMPACCESS";
mediaClip.EntryCT = contentType;
mediaClip.EntryD = fileSpec;

MediaRenditionElement rendition = new MediaRenditionElement(annot, CreationOptions.Indirect);
rendition.EntryS = "MR";
rendition.EntryC = mediaClip;

RenditionActionElement pageVisibleAction = new RenditionActionElement(annot, CreationOptions.Indirect);
pageVisibleAction.EntryS = "Rendition";
pageVisibleAction.EntryOP = 4;
pageVisibleAction.EntryAN = annot;
pageVisibleAction.EntryR = rendition;

annot.EntryAA = new AnnotationAdditionalActionsElement(annot);
annot.EntryAA.EntryPV = pageVisibleAction;
AnnotationElement = annot;

[VB]

Dim isUrl As Boolean = filePathOrUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase) OrElse filePathOrUrl.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase)
If contentType Is Nothing Then
  Dim [end] As Integer = -1
  If isUrl Then
    [end] = filePathOrUrl.IndexOfAny(New Char() { "?"c, "#"c })
  End If
  If [end] < 0 Then
    [end] = filePathOrUrl.Length
  End If
  contentType = GetContentType(filePathOrUrl, [end])
  If contentType Is Nothing Then
    Throw New NotSupportedException("Movie content type is not supported.")
  End If
End If

Dim annot As New ScreenAnnotationElement(AnnotationElement.Object)
annot.EntrySubtype = "Screen"
annot.EntryRect = New RectangleElement(ArrayAtom.FromXRect(New XRect(rect)), annot.Host)

Dim fileSpec As New FullFileSpecificationElement(annot)
fileSpec.EntryType = "Filespec"
If isUrl Then
  fileSpec.EntryFS = "URL"
  fileSpec.EntryF = filePathOrUrl
Else
  Dim fileInfo As New FileInfo(filePathOrUrl)
  fileSpec.EntryF = fileInfo.Name
  fileSpec.EntryUF = fileInfo.Name
  fileSpec.EntryEF = New EmbeddedFileSetElement(annot)
  fileSpec.EntryEF.EntryF = EmbedFileStream(fileInfo)
End If

Dim mediaClip As New MediaClipDataElement(annot, CreationOptions.Indirect)
mediaClip.EntryS = "MCD"
mediaClip.EntryP = New MediaPermissionsElement(annot)
mediaClip.EntryP.EntryTF = "TEMPACCESS"
mediaClip.EntryCT = contentType
mediaClip.EntryD = fileSpec

Dim rendition As New MediaRenditionElement(annot, CreationOptions.Indirect)
rendition.EntryS = "MR"
rendition.EntryC = mediaClip

Dim pageVisibleAction As New RenditionActionElement(annot, CreationOptions.Indirect)
pageVisibleAction.EntryS = "Rendition"
pageVisibleAction.EntryOP = 4
pageVisibleAction.EntryAN = annot
pageVisibleAction.EntryR = rendition

annot.EntryAA = New AnnotationAdditionalActionsElement(annot)
annot.EntryAA.EntryPV = pageVisibleAction
AnnotationElement = annot


ZZ Elements MediaPermissionsElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the media permissions dictionary object.

Notes

Represents the "Type" entry of the media permissions dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "MediaPermissions".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 275, page 494.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 286, page 618.


ZZ Elements MediaPermissionsElement EntryTF Property

EntryTF Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "TF" entry of the media permissions dictionary object.

Notes

Represents the "TF" entry of the media permissions dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

The PDF specification states that this item assumes a value of "TEMPNEVER" if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 275, page 494.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 286, page 619.


ZZ Elements MediaClipSectionElement

MediaClipSectionElement Class

This class represents the media clip section dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 277, page 495.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 288, page 620.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MediaClipElement
         WebSupergoo.ABCpdf12.Elements.MediaClipSectionElement

Method | Description
MediaClipSectionElement | Create a new MediaClipSectionElement.
 | inherited methods...

Property | Description
EntryD | Represents the "D" entry of the media clip section dictionary object.
EntryAlt | Represents the "Alt" entry of the media clip section dictionary object.
EntryMH | Represents the "MH" entry of the media clip section dictionary object.
EntryBE | Represents the "BE" entry of the media clip section dictionary object.
 | inherited properties...


ZZ Elements MediaClipSectionElement Constructor Function

MediaClipSectionElement Function

Create a new MediaClipSectionElement.

Syntax

[C#]
MediaClipSectionElement()
MediaClipSectionElement(Atom atom, IndirectObject host)
MediaClipSectionElement(IndirectObject obj)
MediaClipSectionElement(Element relation, CreationOptions options)

[Visual Basic]
MediaClipSectionElement()
MediaClipSectionElement(atom As Atom, host As IndirectObject)
MediaClipSectionElement(obj As IndirectObject)
MediaClipSectionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaClipSectionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MediaClipSectionElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] MediaClipSectionElement [Visual Basic] MediaClipSectionElement | null | No | Represents the "D" entry of the media clip section dictionary object.

Notes

Represents the "D" entry of the media clip section dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a MediaClipSectionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 277, page 495.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 288, page 620.


ZZ Elements MediaClipSectionElement EntryAlt Property

EntryAlt Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Alt" entry of the media clip section dictionary object.

Notes

Represents the "Alt" entry of the media clip section dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 277, page 495.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 288, page 620.


ZZ Elements MediaClipSectionElement EntryMH Property

EntryMH Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "MH" entry of the media clip section dictionary object.

Notes

Represents the "MH" entry of the media clip section dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 277, page 495.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 288, page 620.


ZZ Elements MediaClipSectionElement EntryBE Property

EntryBE Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "BE" entry of the media clip section dictionary object.

Notes

Represents the "BE" entry of the media clip section dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 277, page 495.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 288, page 620.


ZZ Elements MediaClipSectionMhBeElement

MediaClipSectionMhBeElement Class

This class represents the media clip section mh/be dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 278, page 496.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 289, page 621.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MediaClipSectionMhBeElement

Method | Description
MediaClipSectionMhBeElement | Create a new MediaClipSectionMhBeElement.
 | inherited methods...

Property | Description
EntryB | Represents the "B" entry of the media clip section mh/be dictionary object.
EntryE | Represents the "E" entry of the media clip section mh/be dictionary object.
 | inherited properties...


ZZ Elements MediaClipSectionMhBeElement Constructor Function

MediaClipSectionMhBeElement Function

Create a new MediaClipSectionMhBeElement.

Syntax

[C#]
MediaClipSectionMhBeElement()
MediaClipSectionMhBeElement(Atom atom, IndirectObject host)
MediaClipSectionMhBeElement(IndirectObject obj)
MediaClipSectionMhBeElement(Element relation, CreationOptions options)

[Visual Basic]
MediaClipSectionMhBeElement()
MediaClipSectionMhBeElement(atom As Atom, host As IndirectObject)
MediaClipSectionMhBeElement(obj As IndirectObject)
MediaClipSectionMhBeElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaClipSectionMhBeElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MediaClipSectionMhBeElement EntryB Property

EntryB Property

Type | Default Value | Read Only | Description
[C#] MediaOffsetElement [Visual Basic] MediaOffsetElement | null | No | Represents the "B" entry of the media clip section mh/be dictionary object.

Notes

Represents the "B" entry of the media clip section mh/be dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a MediaOffsetElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 278, page 496.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 289, page 621.


ZZ Elements MediaClipSectionMhBeElement EntryE Property

EntryE Property

Type | Default Value | Read Only | Description
[C#] MediaOffsetElement [Visual Basic] MediaOffsetElement | null | No | Represents the "E" entry of the media clip section mh/be dictionary object.

Notes

Represents the "E" entry of the media clip section mh/be dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a MediaOffsetElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 278, page 496.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 289, page 621.


ZZ Elements MediaPlayParametersElement

MediaPlayParametersElement Class

This class represents the media play parameters dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 279, page 496.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 290, page 621.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MediaPlayParametersElement

Method | Description
MediaPlayParametersElement | Create a new MediaPlayParametersElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the media play parameters dictionary object.
EntryPL | Represents the "PL" entry of the media play parameters dictionary object.
EntryMH | Represents the "MH" entry of the media play parameters dictionary object.
EntryBE | Represents the "BE" entry of the media play parameters dictionary object.
 | inherited properties...


ZZ Elements MediaPlayParametersElement Constructor Function

MediaPlayParametersElement Function

Create a new MediaPlayParametersElement.

Syntax

[C#]
MediaPlayParametersElement()
MediaPlayParametersElement(Atom atom, IndirectObject host)
MediaPlayParametersElement(IndirectObject obj)
MediaPlayParametersElement(Element relation, CreationOptions options)

[Visual Basic]
MediaPlayParametersElement()
MediaPlayParametersElement(atom As Atom, host As IndirectObject)
MediaPlayParametersElement(obj As IndirectObject)
MediaPlayParametersElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaPlayParametersElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MediaPlayParametersElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the media play parameters dictionary object.

Notes

Represents the "Type" entry of the media play parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "MediaPlayParams".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 279, page 496.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 290, page 621.


ZZ Elements MediaPlayParametersElement EntryPL Property

EntryPL Property

Type | Default Value | Read Only | Description
[C#] MediaPlayersElement [Visual Basic] MediaPlayersElement | null | No | Represents the "PL" entry of the media play parameters dictionary object.

Notes

Represents the "PL" entry of the media play parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a MediaPlayersElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 279, page 496.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 290, page 621.


ZZ Elements MediaPlayParametersElement EntryMH Property

EntryMH Property

Type | Default Value | Read Only | Description
[C#] MediaPlayParametersMhBeElement [Visual Basic] MediaPlayParametersMhBeElement | null | No | Represents the "MH" entry of the media play parameters dictionary object.

Notes

Represents the "MH" entry of the media play parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a MediaPlayParametersMhBeElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 279, page 496.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 290, page 621.


ZZ Elements MediaPlayParametersElement EntryBE Property

EntryBE Property

Type | Default Value | Read Only | Description
[C#] MediaPlayParametersMhBeElement [Visual Basic] MediaPlayParametersMhBeElement | null | No | Represents the "BE" entry of the media play parameters dictionary object.

Notes

Represents the "BE" entry of the media play parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a MediaPlayParametersMhBeElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 279, page 496.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 290, page 621.


ZZ Elements MediaPlayParametersMhBeElement

MediaPlayParametersMhBeElement Class

This class represents the media play parameters mh/be dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 280, page 496.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 291, page 622.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MediaPlayParametersMhBeElement

Method | Description
MediaPlayParametersMhBeElement | Create a new MediaPlayParametersMhBeElement.
 | inherited methods...

Property | Description
EntryV | Represents the "V" entry of the media play parameters mh/be dictionary object.
EntryC | Represents the "C" entry of the media play parameters mh/be dictionary object.
EntryF | Represents the "F" entry of the media play parameters mh/be dictionary object.
EntryD | Represents the "D" entry of the media play parameters mh/be dictionary object.
EntryA | Represents the "A" entry of the media play parameters mh/be dictionary object.
EntryRC | Represents the "RC" entry of the media play parameters mh/be dictionary object.
 | inherited properties...


ZZ Elements MediaPlayParametersMhBeElement Constructor Function

MediaPlayParametersMhBeElement Function

Create a new MediaPlayParametersMhBeElement.

Syntax

[C#]
MediaPlayParametersMhBeElement()
MediaPlayParametersMhBeElement(Atom atom, IndirectObject host)
MediaPlayParametersMhBeElement(IndirectObject obj)
MediaPlayParametersMhBeElement(Element relation, CreationOptions options)

[Visual Basic]
MediaPlayParametersMhBeElement()
MediaPlayParametersMhBeElement(atom As Atom, host As IndirectObject)
MediaPlayParametersMhBeElement(obj As IndirectObject)
MediaPlayParametersMhBeElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaPlayParametersMhBeElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MediaPlayParametersMhBeElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "V" entry of the media play parameters mh/be dictionary object.

Notes

Represents the "V" entry of the media play parameters mh/be dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 100 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 280, page 496.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 291, page 622.


ZZ Elements MediaPlayParametersMhBeElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "C" entry of the media play parameters mh/be dictionary object.

Notes

Represents the "C" entry of the media play parameters mh/be dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 280, page 496.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 291, page 622.


ZZ Elements MediaPlayParametersMhBeElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "F" entry of the media play parameters mh/be dictionary object.

Notes

Represents the "F" entry of the media play parameters mh/be dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 5 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 280, page 497.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 291, page 622.


ZZ Elements MediaPlayParametersMhBeElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] MediaDurationElement [Visual Basic] MediaDurationElement | null | No | Represents the "D" entry of the media play parameters mh/be dictionary object.

Notes

Represents the "D" entry of the media play parameters mh/be dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a MediaDurationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 280, page 497.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 291, page 622.


ZZ Elements MediaPlayParametersMhBeElement EntryA Property

EntryA Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "A" entry of the media play parameters mh/be dictionary object.

Notes

Represents the "A" entry of the media play parameters mh/be dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of true if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 280, page 497.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 291, page 622.


ZZ Elements MediaPlayParametersMhBeElement EntryRC Property

EntryRC Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "RC" entry of the media play parameters mh/be dictionary object.

Notes

Represents the "RC" entry of the media play parameters mh/be dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 280, page 497.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 291, page 623.


ZZ Elements MediaDurationElement

MediaDurationElement Class

This class represents the media duration dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 281, page 498.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 292, page 623.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MediaDurationElement

Method | Description
MediaDurationElement | Create a new MediaDurationElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the media duration dictionary object.
EntryS | Represents the "S" entry of the media duration dictionary object.
EntryT | Represents the "T" entry of the media duration dictionary object.
 | inherited properties...


ZZ Elements MediaDurationElement Constructor Function

MediaDurationElement Function

Create a new MediaDurationElement.

Syntax

[C#]
MediaDurationElement()
MediaDurationElement(Atom atom, IndirectObject host)
MediaDurationElement(IndirectObject obj)
MediaDurationElement(Element relation, CreationOptions options)

[Visual Basic]
MediaDurationElement()
MediaDurationElement(atom As Atom, host As IndirectObject)
MediaDurationElement(obj As IndirectObject)
MediaDurationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaDurationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MediaDurationElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the media duration dictionary object.

Notes

Represents the "Type" entry of the media duration dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "MediaDuration".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 281, page 498.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 292, page 623.


ZZ Elements MediaDurationElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the media duration dictionary object.

Notes

Represents the "S" entry of the media duration dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • I
  • F
  • T

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 281, page 498.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 292, page 623.


ZZ Elements MediaDurationElement EntryT Property

EntryT Property

Type | Default Value | Read Only | Description
[C#] TimespanElement [Visual Basic] TimespanElement | null | No | Represents the "T" entry of the media duration dictionary object.

Notes

Represents the "T" entry of the media duration dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a TimespanElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 281, page 498.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 292, page 623.


ZZ Elements MediaScreenParametersElement

MediaScreenParametersElement Class

This class represents the media screen parameters dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 282, page 498.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 293, page 624.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MediaScreenParametersElement

Method | Description
MediaScreenParametersElement | Create a new MediaScreenParametersElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the media screen parameters dictionary object.
EntryMH | Represents the "MH" entry of the media screen parameters dictionary object.
EntryBE | Represents the "BE" entry of the media screen parameters dictionary object.
 | inherited properties...


ZZ Elements MediaScreenParametersElement Constructor Function

MediaScreenParametersElement Function

Create a new MediaScreenParametersElement.

Syntax

[C#]
MediaScreenParametersElement()
MediaScreenParametersElement(Atom atom, IndirectObject host)
MediaScreenParametersElement(IndirectObject obj)
MediaScreenParametersElement(Element relation, CreationOptions options)

[Visual Basic]
MediaScreenParametersElement()
MediaScreenParametersElement(atom As Atom, host As IndirectObject)
MediaScreenParametersElement(obj As IndirectObject)
MediaScreenParametersElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaScreenParametersElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MediaScreenParametersElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the media screen parameters dictionary object.

Notes

Represents the "Type" entry of the media screen parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "MediaScreenParams".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 282, page 498.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 293, page 624.


ZZ Elements MediaScreenParametersElement EntryMH Property

EntryMH Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "MH" entry of the media screen parameters dictionary object.

Notes

Represents the "MH" entry of the media screen parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 282, page 498.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 293, page 624.


ZZ Elements MediaScreenParametersElement EntryBE Property

EntryBE Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "BE" entry of the media screen parameters dictionary object.

Notes

Represents the "BE" entry of the media screen parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 282, page 498.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 293, page 624.


ZZ Elements MediaScreenParametersMhBeElement

MediaScreenParametersMhBeElement Class

This class represents the media screen parameters mh/be dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 283, page 499.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 294, page 624.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MediaScreenParametersMhBeElement

Method | Description
MediaScreenParametersMhBeElement | Create a new MediaScreenParametersMhBeElement.
 | inherited methods...

Property | Description
EntryW | Represents the "W" entry of the media screen parameters mh/be dictionary object.
EntryB | Represents the "B" entry of the media screen parameters mh/be dictionary object.
EntryO | Represents the "O" entry of the media screen parameters mh/be dictionary object.
EntryM | Represents the "M" entry of the media screen parameters mh/be dictionary object.
EntryF | Represents the "F" entry of the media screen parameters mh/be dictionary object.
 | inherited properties...


ZZ Elements MediaScreenParametersMhBeElement Constructor Function

MediaScreenParametersMhBeElement Function

Create a new MediaScreenParametersMhBeElement.

Syntax

[C#]
MediaScreenParametersMhBeElement()
MediaScreenParametersMhBeElement(Atom atom, IndirectObject host)
MediaScreenParametersMhBeElement(IndirectObject obj)
MediaScreenParametersMhBeElement(Element relation, CreationOptions options)

[Visual Basic]
MediaScreenParametersMhBeElement()
MediaScreenParametersMhBeElement(atom As Atom, host As IndirectObject)
MediaScreenParametersMhBeElement(obj As IndirectObject)
MediaScreenParametersMhBeElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaScreenParametersMhBeElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MediaScreenParametersMhBeElement EntryW Property

EntryW Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "W" entry of the media screen parameters mh/be dictionary object.

Notes

Represents the "W" entry of the media screen parameters mh/be dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 3 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 283, page 499.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 294, page 624.


ZZ Elements MediaScreenParametersMhBeElement EntryB Property

EntryB Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "B" entry of the media screen parameters mh/be dictionary object.

Notes

Represents the "B" entry of the media screen parameters mh/be dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 283, page 499.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 294, page 625.


ZZ Elements MediaScreenParametersMhBeElement EntryO Property

EntryO Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "O" entry of the media screen parameters mh/be dictionary object.

Notes

Represents the "O" entry of the media screen parameters mh/be dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

It should have a minimum value of 0 and a maximum of 1.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 283, page 499.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 294, page 625.


ZZ Elements MediaScreenParametersMhBeElement EntryM Property

EntryM Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "M" entry of the media screen parameters mh/be dictionary object.

Notes

Represents the "M" entry of the media screen parameters mh/be dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 283, page 499.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 294, page 625.


ZZ Elements MediaScreenParametersMhBeElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] FloatingWindowParametersElement [Visual Basic] FloatingWindowParametersElement | null | No | Represents the "F" entry of the media screen parameters mh/be dictionary object.

Notes

Represents the "F" entry of the media screen parameters mh/be dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a FloatingWindowParametersElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 283, page 499.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 294, page 625.


ZZ Elements FloatingWindowParametersElement

FloatingWindowParametersElement Class

This class represents the floating window parameters dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 284, page 500.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 295, page 626.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.FloatingWindowParametersElement

Method | Description
FloatingWindowParametersElement | Create a new FloatingWindowParametersElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the floating window parameters dictionary object.
EntryD | Represents the "D" entry of the floating window parameters dictionary object.
EntryRT | Represents the "RT" entry of the floating window parameters dictionary object.
EntryP | Represents the "P" entry of the floating window parameters dictionary object.
EntryO | Represents the "O" entry of the floating window parameters dictionary object.
EntryT | Represents the "T" entry of the floating window parameters dictionary object.
EntryUC | Represents the "UC" entry of the floating window parameters dictionary object.
EntryR | Represents the "R" entry of the floating window parameters dictionary object.
EntryTT | Represents the "TT" entry of the floating window parameters dictionary object.
 | inherited properties...


ZZ Elements FloatingWindowParametersElement Constructor Function

FloatingWindowParametersElement Function

Create a new FloatingWindowParametersElement.

Syntax

[C#]
FloatingWindowParametersElement()
FloatingWindowParametersElement(Atom atom, IndirectObject host)
FloatingWindowParametersElement(IndirectObject obj)
FloatingWindowParametersElement(Element relation, CreationOptions options)

[Visual Basic]
FloatingWindowParametersElement()
FloatingWindowParametersElement(atom As Atom, host As IndirectObject)
FloatingWindowParametersElement(obj As IndirectObject)
FloatingWindowParametersElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new FloatingWindowParametersElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements FloatingWindowParametersElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the floating window parameters dictionary object.

Notes

Represents the "Type" entry of the floating window parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "FWParams".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 284, page 500.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 295, page 626.


ZZ Elements FloatingWindowParametersElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "D" entry of the floating window parameters dictionary object.

Notes

Represents the "D" entry of the floating window parameters dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains integers, representing PDF numeric objects.

Items in this array should have a minimum value of 0.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 284, page 500.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 295, page 626.


ZZ Elements FloatingWindowParametersElement EntryRT Property

EntryRT Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "RT" entry of the floating window parameters dictionary object.

Notes

Represents the "RT" entry of the floating window parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 284, page 500.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 295, page 626.


ZZ Elements FloatingWindowParametersElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "P" entry of the floating window parameters dictionary object.

Notes

Represents the "P" entry of the floating window parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 4 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 284, page 500.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 295, page 626.


ZZ Elements FloatingWindowParametersElement EntryO Property

EntryO Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "O" entry of the floating window parameters dictionary object.

Notes

Represents the "O" entry of the floating window parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 284, page 500.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 295, page 626.


ZZ Elements FloatingWindowParametersElement EntryT Property

EntryT Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "T" entry of the floating window parameters dictionary object.

Notes

Represents the "T" entry of the floating window parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of true if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 284, page 500.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 295, page 626.


ZZ Elements FloatingWindowParametersElement EntryUC Property

EntryUC Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "UC" entry of the floating window parameters dictionary object.

Notes

Represents the "UC" entry of the floating window parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of true if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 284, page 500.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 295, page 626.


ZZ Elements FloatingWindowParametersElement EntryR Property

EntryR Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "R" entry of the floating window parameters dictionary object.

Notes

Represents the "R" entry of the floating window parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 284, page 500.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 295, page 627.


ZZ Elements FloatingWindowParametersElement EntryTT Property

EntryTT Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "TT" entry of the floating window parameters dictionary object.

Notes

Represents the "TT" entry of the floating window parameters dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 284, page 501.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 295, page 627.


ZZ Elements MediaOffsetElement

MediaOffsetElement Class

This class represents the media offset dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 285, page 501.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 296, page 627.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MediaOffsetElement
         WebSupergoo.ABCpdf12.Elements.MediaOffsetFrameElement
         WebSupergoo.ABCpdf12.Elements.MediaOffsetMarkerElement
         WebSupergoo.ABCpdf12.Elements.MediaOffsetTimeElement

Method | Description
MediaOffsetElement | Create a new MediaOffsetElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the media offset dictionary object.
EntryS | Represents the "S" entry of the media offset dictionary object.
 | inherited properties...


ZZ Elements MediaOffsetElement Constructor Function

MediaOffsetElement Function

Create a new MediaOffsetElement.

Syntax

[C#]
MediaOffsetElement()
MediaOffsetElement(Atom atom, IndirectObject host)
MediaOffsetElement(IndirectObject obj)
MediaOffsetElement(Element relation, CreationOptions options)

[Visual Basic]
MediaOffsetElement()
MediaOffsetElement(atom As Atom, host As IndirectObject)
MediaOffsetElement(obj As IndirectObject)
MediaOffsetElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaOffsetElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MediaOffsetElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the media offset dictionary object.

Notes

Represents the "Type" entry of the media offset dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "MediaOffset".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 285, page 501.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 296, page 627.


ZZ Elements MediaOffsetElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the media offset dictionary object.

Notes

Represents the "S" entry of the media offset dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • T
  • F
  • M

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 285, page 501.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 296, page 627.


ZZ Elements MediaOffsetFrameElement

MediaOffsetFrameElement Class

This class represents the media offset frame dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 287, page 501.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 298, page 628.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MediaOffsetElement
         WebSupergoo.ABCpdf12.Elements.MediaOffsetFrameElement

Method | Description
MediaOffsetFrameElement | Create a new MediaOffsetFrameElement.
 | inherited methods...

Property | Description
EntryF | Represents the "F" entry of the media offset frame dictionary object.
 | inherited properties...


ZZ Elements MediaOffsetFrameElement Constructor Function

MediaOffsetFrameElement Function

Create a new MediaOffsetFrameElement.

Syntax

[C#]
MediaOffsetFrameElement()
MediaOffsetFrameElement(Atom atom, IndirectObject host)
MediaOffsetFrameElement(IndirectObject obj)
MediaOffsetFrameElement(Element relation, CreationOptions options)

[Visual Basic]
MediaOffsetFrameElement()
MediaOffsetFrameElement(atom As Atom, host As IndirectObject)
MediaOffsetFrameElement(obj As IndirectObject)
MediaOffsetFrameElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaOffsetFrameElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MediaOffsetFrameElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "F" entry of the media offset frame dictionary object.

Notes

Represents the "F" entry of the media offset frame dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 287, page 501.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 298, page 628.


ZZ Elements MediaOffsetMarkerElement

MediaOffsetMarkerElement Class

This class represents the media offset marker dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 288, page 501.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 299, page 628.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MediaOffsetElement
         WebSupergoo.ABCpdf12.Elements.MediaOffsetMarkerElement

Method | Description
MediaOffsetMarkerElement | Create a new MediaOffsetMarkerElement.
 | inherited methods...

Property | Description
EntryM | Represents the "M" entry of the media offset marker dictionary object.
 | inherited properties...


ZZ Elements MediaOffsetMarkerElement Constructor Function

MediaOffsetMarkerElement Function

Create a new MediaOffsetMarkerElement.

Syntax

[C#]
MediaOffsetMarkerElement()
MediaOffsetMarkerElement(Atom atom, IndirectObject host)
MediaOffsetMarkerElement(IndirectObject obj)
MediaOffsetMarkerElement(Element relation, CreationOptions options)

[Visual Basic]
MediaOffsetMarkerElement()
MediaOffsetMarkerElement(atom As Atom, host As IndirectObject)
MediaOffsetMarkerElement(obj As IndirectObject)
MediaOffsetMarkerElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaOffsetMarkerElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MediaOffsetMarkerElement EntryM Property

EntryM Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "M" entry of the media offset marker dictionary object.

Notes

Represents the "M" entry of the media offset marker dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 288, page 501.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 299, page 628.


ZZ Elements MediaOffsetTimeElement

MediaOffsetTimeElement Class

This class represents the media offset time dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 286, page 501.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 297, page 627.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MediaOffsetElement
         WebSupergoo.ABCpdf12.Elements.MediaOffsetTimeElement

Method | Description
MediaOffsetTimeElement | Create a new MediaOffsetTimeElement.
 | inherited methods...

Property | Description
EntryT | Represents the "T" entry of the media offset time dictionary object.
 | inherited properties...


ZZ Elements MediaOffsetTimeElement Constructor Function

MediaOffsetTimeElement Function

Create a new MediaOffsetTimeElement.

Syntax

[C#]
MediaOffsetTimeElement()
MediaOffsetTimeElement(Atom atom, IndirectObject host)
MediaOffsetTimeElement(IndirectObject obj)
MediaOffsetTimeElement(Element relation, CreationOptions options)

[Visual Basic]
MediaOffsetTimeElement()
MediaOffsetTimeElement(atom As Atom, host As IndirectObject)
MediaOffsetTimeElement(obj As IndirectObject)
MediaOffsetTimeElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaOffsetTimeElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MediaOffsetTimeElement EntryT Property

EntryT Property

Type | Default Value | Read Only | Description
[C#] TimespanElement [Visual Basic] TimespanElement | null | No | Represents the "T" entry of the media offset time dictionary object.

Notes

Represents the "T" entry of the media offset time dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a TimespanElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 286, page 501.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 297, page 627.


ZZ Elements MediaPlayersElement

MediaPlayersElement Class

This class represents the media players dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 290, page 502.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 301, page 629.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MediaPlayersElement

Method | Description
MediaPlayersElement | Create a new MediaPlayersElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the media players dictionary object.
EntryMU | Represents the "MU" entry of the media players dictionary object.
EntryA | Represents the "A" entry of the media players dictionary object.
EntryNU | Represents the "NU" entry of the media players dictionary object.
 | inherited properties...


ZZ Elements MediaPlayersElement Constructor Function

MediaPlayersElement Function

Create a new MediaPlayersElement.

Syntax

[C#]
MediaPlayersElement()
MediaPlayersElement(Atom atom, IndirectObject host)
MediaPlayersElement(IndirectObject obj)
MediaPlayersElement(Element relation, CreationOptions options)

[Visual Basic]
MediaPlayersElement()
MediaPlayersElement(atom As Atom, host As IndirectObject)
MediaPlayersElement(obj As IndirectObject)
MediaPlayersElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaPlayersElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MediaPlayersElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the media players dictionary object.

Notes

Represents the "Type" entry of the media players dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "MediaPlayers".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 290, page 502.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 301, page 629.


ZZ Elements MediaPlayersElement EntryMU Property

EntryMU Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<MediaPlayerInfoElement> [Visual Basic] ArrayElement<MediaPlayerInfoElement> | null | No | Represents the "MU" entry of the media players dictionary object.

Notes

Represents the "MU" entry of the media players dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains MediaPlayerInfoElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 290, page 502.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 301, page 629.


ZZ Elements MediaPlayersElement EntryA Property

EntryA Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<MediaPlayerInfoElement> [Visual Basic] ArrayElement<MediaPlayerInfoElement> | null | No | Represents the "A" entry of the media players dictionary object.

Notes

Represents the "A" entry of the media players dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains MediaPlayerInfoElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 290, page 502.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 301, page 629.


ZZ Elements MediaPlayersElement EntryNU Property

EntryNU Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<MediaPlayerInfoElement> [Visual Basic] ArrayElement<MediaPlayerInfoElement> | null | No | Represents the "NU" entry of the media players dictionary object.

Notes

Represents the "NU" entry of the media players dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains MediaPlayerInfoElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 290, page 502.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 301, page 629.


ZZ Elements TimespanElement

TimespanElement Class

This class represents the timespan dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 289, page 502.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 300, page 628.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.TimespanElement

Method | Description
TimespanElement | Create a new TimespanElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the timespan dictionary object.
EntryS | Represents the "S" entry of the timespan dictionary object.
EntryV | Represents the "V" entry of the timespan dictionary object.
 | inherited properties...


ZZ Elements TimespanElement Constructor Function

TimespanElement Function

Create a new TimespanElement.

Syntax

[C#]
TimespanElement()
TimespanElement(Atom atom, IndirectObject host)
TimespanElement(IndirectObject obj)
TimespanElement(Element relation, CreationOptions options)

[Visual Basic]
TimespanElement()
TimespanElement(atom As Atom, host As IndirectObject)
TimespanElement(obj As IndirectObject)
TimespanElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new TimespanElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements TimespanElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the timespan dictionary object.

Notes

Represents the "Type" entry of the timespan dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Timespan".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 289, page 502.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 300, page 628.


ZZ Elements TimespanElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the timespan dictionary object.

Notes

Represents the "S" entry of the timespan dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "S".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 289, page 502.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 300, page 628.


ZZ Elements TimespanElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "V" entry of the timespan dictionary object.

Notes

Represents the "V" entry of the timespan dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 289, page 502.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 300, page 628.


ZZ Elements MediaPlayerInfoElement

MediaPlayerInfoElement Class

This class represents the media player info dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 291, page 503.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 302, page 630.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MediaPlayerInfoElement

Method | Description
MediaPlayerInfoElement | Create a new MediaPlayerInfoElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the media player info dictionary object.
EntryPID | Represents the "PID" entry of the media player info dictionary object.
EntryMH | Represents the "MH" entry of the media player info dictionary object.
EntryBE | Represents the "BE" entry of the media player info dictionary object.
 | inherited properties...


ZZ Elements MediaPlayerInfoElement Constructor Function

MediaPlayerInfoElement Function

Create a new MediaPlayerInfoElement.

Syntax

[C#]
MediaPlayerInfoElement()
MediaPlayerInfoElement(Atom atom, IndirectObject host)
MediaPlayerInfoElement(IndirectObject obj)
MediaPlayerInfoElement(Element relation, CreationOptions options)

[Visual Basic]
MediaPlayerInfoElement()
MediaPlayerInfoElement(atom As Atom, host As IndirectObject)
MediaPlayerInfoElement(obj As IndirectObject)
MediaPlayerInfoElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MediaPlayerInfoElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MediaPlayerInfoElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the media player info dictionary object.

Notes

Represents the "Type" entry of the media player info dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "MediaPlayerInfo".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 291, page 503.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 302, page 630.


ZZ Elements MediaPlayerInfoElement EntryPID Property

EntryPID Property

Type | Default Value | Read Only | Description
[C#] SoftwareIdentifierElement [Visual Basic] SoftwareIdentifierElement | null | No | Represents the "PID" entry of the media player info dictionary object.

Notes

Represents the "PID" entry of the media player info dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a SoftwareIdentifierElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 291, page 503.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 302, page 630.


ZZ Elements MediaPlayerInfoElement EntryMH Property

EntryMH Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "MH" entry of the media player info dictionary object.

Notes

Represents the "MH" entry of the media player info dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 291, page 503.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 302, page 630.


ZZ Elements MediaPlayerInfoElement EntryBE Property

EntryBE Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "BE" entry of the media player info dictionary object.

Notes

Represents the "BE" entry of the media player info dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 291, page 503.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 302, page 630.


ZZ Elements SoftwareIdentifierElement

SoftwareIdentifierElement Class

This class represents the software identifier dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 292, page 504.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 303, page 631.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.SoftwareIdentifierElement

Method | Description
SoftwareIdentifierElement | Create a new SoftwareIdentifierElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the software identifier dictionary object.
EntryU | Represents the "U" entry of the software identifier dictionary object.
EntryL | Represents the "L" entry of the software identifier dictionary object.
EntryLI | Represents the "LI" entry of the software identifier dictionary object.
EntryH | Represents the "H" entry of the software identifier dictionary object.
EntryHI | Represents the "HI" entry of the software identifier dictionary object.
EntryOS | Represents the "OS" entry of the software identifier dictionary object.
 | inherited properties...


ZZ Elements SoftwareIdentifierElement Constructor Function

SoftwareIdentifierElement Function

Create a new SoftwareIdentifierElement.

Syntax

[C#]
SoftwareIdentifierElement()
SoftwareIdentifierElement(Atom atom, IndirectObject host)
SoftwareIdentifierElement(IndirectObject obj)
SoftwareIdentifierElement(Element relation, CreationOptions options)

[Visual Basic]
SoftwareIdentifierElement()
SoftwareIdentifierElement(atom As Atom, host As IndirectObject)
SoftwareIdentifierElement(obj As IndirectObject)
SoftwareIdentifierElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SoftwareIdentifierElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements SoftwareIdentifierElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the software identifier dictionary object.

Notes

Represents the "Type" entry of the software identifier dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "SoftwareIdentifier".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 292, page 504.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 303, page 631.


ZZ Elements SoftwareIdentifierElement EntryU Property

EntryU Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "U" entry of the software identifier dictionary object.

Notes

Represents the "U" entry of the software identifier dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 292, page 504.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 303, page 631.


ZZ Elements SoftwareIdentifierElement EntryL Property

EntryL Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "L" entry of the software identifier dictionary object.

Notes

Represents the "L" entry of the software identifier dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains integers, representing PDF numeric objects.

Items in this array should have a minimum value of 0.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 292, page 504.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 303, page 631.


ZZ Elements SoftwareIdentifierElement EntryLI Property

EntryLI Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "LI" entry of the software identifier dictionary object.

Notes

Represents the "LI" entry of the software identifier dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of true if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 292, page 504.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 303, page 631.


ZZ Elements SoftwareIdentifierElement EntryH Property

EntryH Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "H" entry of the software identifier dictionary object.

Notes

Represents the "H" entry of the software identifier dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains integers, representing PDF numeric objects.

Items in this array should have a minimum value of 0.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 292, page 504.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 303, page 631.


ZZ Elements SoftwareIdentifierElement EntryHI Property

EntryHI Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "HI" entry of the software identifier dictionary object.

Notes

Represents the "HI" entry of the software identifier dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of true if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 292, page 504.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 303, page 631.


ZZ Elements SoftwareIdentifierElement EntryOS Property

EntryOS Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "OS" entry of the software identifier dictionary object.

Notes

Represents the "OS" entry of the software identifier dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

The PDF specification states that items in this array assume a value of "an empty array" if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 292, page 504.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 303, page 631.


ZZ Elements SoundObjectStreamElement

SoundObjectStreamElement Class

This class represents the sound object stream. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 294, page 506.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 305, page 633.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.SoundObjectStreamElement

Method | Description
SoundObjectStreamElement | Create a new SoundObjectStreamElement.
 | inherited methods...

Property | Description
StreamElement | The StreamElement associated with this class.
EntryType | Represents the "Type" entry of the sound object stream object.
EntryR | Represents the "R" entry of the sound object stream object.
EntryC | Represents the "C" entry of the sound object stream object.
EntryB | Represents the "B" entry of the sound object stream object.
EntryE | Represents the "E" entry of the sound object stream object.
EntryCO | Represents the "CO" entry of the sound object stream object.
EntryCP | Represents the "CP" entry of the sound object stream object.
 | inherited properties...


ZZ Elements SoundObjectStreamElement Constructor Function

SoundObjectStreamElement Function

Create a new SoundObjectStreamElement.

Syntax

[C#]
SoundObjectStreamElement()
SoundObjectStreamElement(Atom atom, IndirectObject host)
SoundObjectStreamElement(IndirectObject obj)
SoundObjectStreamElement(Element relation, CreationOptions options)

[Visual Basic]
SoundObjectStreamElement()
SoundObjectStreamElement(atom As Atom, host As IndirectObject)
SoundObjectStreamElement(obj As IndirectObject)
SoundObjectStreamElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SoundObjectStreamElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements SoundObjectStreamElement StreamElement Property

StreamElement Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | Yes | The StreamElement associated with this class.

Notes

The StreamElement associated with this class.


ZZ Elements SoundObjectStreamElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the sound object stream object.

Notes

Represents the "Type" entry of the sound object stream object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Sound".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 294, page 506.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 305, page 633.


ZZ Elements SoundObjectStreamElement EntryR Property

EntryR Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "R" entry of the sound object stream object.

Notes

Represents the "R" entry of the sound object stream object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 294, page 506.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 305, page 633.


ZZ Elements SoundObjectStreamElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "C" entry of the sound object stream object.

Notes

Represents the "C" entry of the sound object stream object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 294, page 506.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 305, page 633.


ZZ Elements SoundObjectStreamElement EntryB Property

EntryB Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "B" entry of the sound object stream object.

Notes

Represents the "B" entry of the sound object stream object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 8 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 294, page 506.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 305, page 633.


ZZ Elements SoundObjectStreamElement EntryE Property

EntryE Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "E" entry of the sound object stream object.

Notes

Represents the "E" entry of the sound object stream object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Raw" if no value has been provided.

This item may take one of the following valid values:.

  • Raw
  • Signed
  • ALaw

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 294, page 506.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 305, page 633.


ZZ Elements SoundObjectStreamElement EntryCO Property

EntryCO Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "CO" entry of the sound object stream object.

Notes

Represents the "CO" entry of the sound object stream object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 294, page 507.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 305, page 634.


ZZ Elements SoundObjectStreamElement EntryCP Property

EntryCP Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "CP" entry of the sound object stream object.

Notes

Represents the "CP" entry of the sound object stream object.

It is an optional entry defined as part of the PDF 1.0 specification.

The specification defines this property as being of undefined type. So the type of atom or data contained is not part of the specification. For practical purposes this means it may be of any type.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 294, page 507.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 305, page 634.


ZZ Elements MovieActivationElement

MovieActivationElement Class

This class represents the movie activation dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 296, page 508.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 307, page 635.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MovieActivationElement

Method | Description
MovieActivationElement | Create a new MovieActivationElement.
 | inherited methods...

Property | Description
EntryStart | Represents the "Start" entry of the movie activation dictionary object.
EntryDuration | Represents the "Duration" entry of the movie activation dictionary object.
EntryRate | Represents the "Rate" entry of the movie activation dictionary object.
EntryVolume | Represents the "Volume" entry of the movie activation dictionary object.
EntryShowControls | Represents the "ShowControls" entry of the movie activation dictionary object.
EntryMode | Represents the "Mode" entry of the movie activation dictionary object.
EntrySynchronous | Represents the "Synchronous" entry of the movie activation dictionary object.
EntryFWScale | Represents the "FWScale" entry of the movie activation dictionary object.
EntryFWPosition | Represents the "FWPosition" entry of the movie activation dictionary object.
 | inherited properties...


ZZ Elements MovieActivationElement Constructor Function

MovieActivationElement Function

Create a new MovieActivationElement.

Syntax

[C#]
MovieActivationElement()
MovieActivationElement(Atom atom, IndirectObject host)
MovieActivationElement(IndirectObject obj)
MovieActivationElement(Element relation, CreationOptions options)

[Visual Basic]
MovieActivationElement()
MovieActivationElement(atom As Atom, host As IndirectObject)
MovieActivationElement(obj As IndirectObject)
MovieActivationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MovieActivationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MovieActivationElement EntryStart Property

EntryStart Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Start" entry of the movie activation dictionary object.

Notes

Represents the "Start" entry of the movie activation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of three different types:.

1) An integer representing a PDF numeric object.

It should have a minimum value of 0.

2) A string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

3) An array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 296, page 508.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 307, page 635.


ZZ Elements MovieActivationElement EntryDuration Property

EntryDuration Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Duration" entry of the movie activation dictionary object.

Notes

Represents the "Duration" entry of the movie activation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of three different types:.

1) An integer representing a PDF numeric object.

2) A string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

3) An array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 296, page 508.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 307, page 635.


ZZ Elements MovieActivationElement EntryRate Property

EntryRate Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Rate" entry of the movie activation dictionary object.

Notes

Represents the "Rate" entry of the movie activation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 296, page 508.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 307, page 635.


ZZ Elements MovieActivationElement EntryVolume Property

EntryVolume Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Volume" entry of the movie activation dictionary object.

Notes

Represents the "Volume" entry of the movie activation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

It should have a minimum value of 0 and a maximum of 1.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 296, page 508.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 307, page 635.


ZZ Elements MovieActivationElement EntryShowControls Property

EntryShowControls Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "ShowControls" entry of the movie activation dictionary object.

Notes

Represents the "ShowControls" entry of the movie activation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 296, page 508.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 307, page 635.


ZZ Elements MovieActivationElement EntryMode Property

EntryMode Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Mode" entry of the movie activation dictionary object.

Notes

Represents the "Mode" entry of the movie activation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Once" if no value has been provided.

This item may take one of the following valid values:.

  • Once
  • Open
  • Repeat
  • Palindrome

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 296, page 509.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 307, page 636.


ZZ Elements MovieActivationElement EntrySynchronous Property

EntrySynchronous Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "Synchronous" entry of the movie activation dictionary object.

Notes

Represents the "Synchronous" entry of the movie activation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 296, page 509.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 307, page 636.


ZZ Elements MovieActivationElement EntryFWScale Property

EntryFWScale Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "FWScale" entry of the movie activation dictionary object.

Notes

Represents the "FWScale" entry of the movie activation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains integers, representing PDF numeric objects.

Items in this array should have a minimum value of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 296, page 509.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 307, page 636.


ZZ Elements MovieActivationElement EntryFWPosition Property

EntryFWPosition Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "FWPosition" entry of the movie activation dictionary object.

Notes

Represents the "FWPosition" entry of the movie activation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 296, page 509.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 307, page 636.


ZZ Elements MovieElement

MovieElement Class

This class represents the movie dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 295, page 508.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 306, page 635.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MovieElement

Method | Description
MovieElement | Create a new MovieElement.
 | inherited methods...

Property | Description
EntryF | Represents the "F" entry of the movie dictionary object.
EntryAspect | Represents the "Aspect" entry of the movie dictionary object.
EntryRotate | Represents the "Rotate" entry of the movie dictionary object.
EntryPoster | Represents the "Poster" entry of the movie dictionary object.
 | inherited properties...


ZZ Elements MovieElement Constructor Function

MovieElement Function

Create a new MovieElement.

Syntax

[C#]
MovieElement()
MovieElement(Atom atom, IndirectObject host)
MovieElement(IndirectObject obj)
MovieElement(Element relation, CreationOptions options)

[Visual Basic]
MovieElement()
MovieElement(atom As Atom, host As IndirectObject)
MovieElement(obj As IndirectObject)
MovieElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MovieElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MovieElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] FileSpecificationElement [Visual Basic] FileSpecificationElement | null | No | Represents the "F" entry of the movie dictionary object.

Notes

Represents the "F" entry of the movie dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a FileSpecificationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 295, page 508.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 306, page 635.


ZZ Elements MovieElement EntryAspect Property

EntryAspect Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "Aspect" entry of the movie dictionary object.

Notes

Represents the "Aspect" entry of the movie dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains integers, representing PDF numeric objects.

Items in this array should have a minimum value of 0.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 295, page 508.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 306, page 635.


ZZ Elements MovieElement EntryRotate Property

EntryRotate Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "Rotate" entry of the movie dictionary object.

Notes

Represents the "Rotate" entry of the movie dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 295, page 508.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 306, page 635.


ZZ Elements MovieElement EntryPoster Property

EntryPoster Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Poster" entry of the movie dictionary object.

Notes

Represents the "Poster" entry of the movie dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

2) An ImageXObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 295, page 508.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 306, page 635.


ZZ Elements SlideshowElement

SlideshowElement Class

This class represents the slideshow dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 297, page 510.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 308, page 637.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.SlideshowElement

Method | Description
SlideshowElement | Create a new SlideshowElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the slideshow dictionary object.
EntrySubtype | Represents the "Subtype" entry of the slideshow dictionary object.
EntryResources | Represents the "Resources" entry of the slideshow dictionary object.
EntryStartResource | Represents the "StartResource" entry of the slideshow dictionary object.
 | inherited properties...


ZZ Elements SlideshowElement Constructor Function

SlideshowElement Function

Create a new SlideshowElement.

Syntax

[C#]
SlideshowElement()
SlideshowElement(Atom atom, IndirectObject host)
SlideshowElement(IndirectObject obj)
SlideshowElement(Element relation, CreationOptions options)

[Visual Basic]
SlideshowElement()
SlideshowElement(atom As Atom, host As IndirectObject)
SlideshowElement(obj As IndirectObject)
SlideshowElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SlideshowElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements SlideshowElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the slideshow dictionary object.

Notes

Represents the "Type" entry of the slideshow dictionary object.

It is a required entry defined as part of the PDF 1.4 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "SlideShow".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 297, page 510.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 308, page 637.


ZZ Elements SlideshowElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the slideshow dictionary object.

Notes

Represents the "Subtype" entry of the slideshow dictionary object.

It is a required entry defined as part of the PDF 1.4 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "Embedded".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 297, page 510.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 308, page 637.


ZZ Elements SlideshowElement EntryResources Property

EntryResources Property

Type | Default Value | Read Only | Description
[C#] NameTreeNodeElement<Element> [Visual Basic] NameTreeNodeElement<Element> | null | No | Represents the "Resources" entry of the slideshow dictionary object.

Notes

Represents the "Resources" entry of the slideshow dictionary object.

It is a required entry defined as part of the PDF 1.4 specification.

It contains a NameTreeNodeElement containing Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 297, page 510.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 308, page 637.


ZZ Elements SlideshowElement EntryStartResource Property

EntryStartResource Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "StartResource" entry of the slideshow dictionary object.

Notes

Represents the "StartResource" entry of the slideshow dictionary object.

It is a required entry defined as part of the PDF 1.4 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 297, page 510.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 308, page 637.


ZZ Elements D3DAnnotationElement

D3DAnnotationElement Class

This class represents the 3D annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 298, page 512.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 309, page 639.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.33, page 55.

This class is always an indirect object because it inherits from AnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.D3DAnnotationElement

Method | Description
D3DAnnotationElement | Create a new D3DAnnotationElement.
 | inherited methods...

Property | Description
Entry3DD | Represents the "3DD" entry of the 3d annotation object.
Entry3DV | Represents the "3DV" entry of the 3d annotation object.
Entry3DA | Represents the "3DA" entry of the 3d annotation object.
Entry3DI | Represents the "3DI" entry of the 3d annotation object.
Entry3DB | Represents the "3DB" entry of the 3d annotation object.
Entry3DU | Represents the "3DU" entry of the 3d annotation object.
EntryGEO | Represents the "GEO" entry of the 3d annotation object.
 | inherited properties...


ZZ Elements D3DAnnotationElement Constructor Function

D3DAnnotationElement Function

Create a new D3DAnnotationElement.

Syntax

[C#]
D3DAnnotationElement()
D3DAnnotationElement(Atom atom, IndirectObject host)
D3DAnnotationElement(IndirectObject obj)
D3DAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
D3DAnnotationElement()
D3DAnnotationElement(atom As Atom, host As IndirectObject)
D3DAnnotationElement(obj As IndirectObject)
D3DAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new D3DAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements D3DAnnotationElement Entry3DD Property

Entry3DD Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "3DD" entry of the 3d annotation object.

Notes

Represents the "3DD" entry of the 3d annotation object.

It is a required entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A D3DReferenceElement.

2) A D3DStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 298, page 512.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.33, page 55.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 309, page 639.


ZZ Elements D3DAnnotationElement Entry3DV Property

Entry3DV Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "3DV" entry of the 3d annotation object.

Notes

Represents the "3DV" entry of the 3d annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of four different types:.

1) An integer representing a PDF numeric object.

2) A string representing a PDF name object.

This item may take one of the following valid values:.

  • F
  • L
  • D
.

3) A string representing a PDF string object.

4) A D3DViewElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 298, page 512.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.33, page 55.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 309, page 640.


ZZ Elements D3DAnnotationElement Entry3DA Property

Entry3DA Property

Type | Default Value | Read Only | Description
[C#] D3DActivationElement [Visual Basic] D3DActivationElement | null | No | Represents the "3DA" entry of the 3d annotation object.

Notes

Represents the "3DA" entry of the 3d annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a D3DActivationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 298, page 512.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.33, page 55.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 309, page 640.


ZZ Elements D3DAnnotationElement Entry3DI Property

Entry3DI Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "3DI" entry of the 3d annotation object.

Notes

Represents the "3DI" entry of the 3d annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of true if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 298, page 512.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.33, page 55.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 309, page 640.


ZZ Elements D3DAnnotationElement Entry3DB Property

Entry3DB Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "3DB" entry of the 3d annotation object.

Notes

Represents the "3DB" entry of the 3d annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 298, page 513.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.33, page 55.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 309, page 640.


ZZ Elements D3DAnnotationElement Entry3DU Property

Entry3DU Property

Type | Default Value | Read Only | Description
[C#] D3DUnitsElement [Visual Basic] D3DUnitsElement | null | No | Represents the "3DU" entry of the 3d annotation object.

Notes

Represents the "3DU" entry of the 3d annotation object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a D3DUnitsElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 298, page 512.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.33, page 55.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 309, page 640.


ZZ Elements D3DAnnotationElement EntryGEO Property

EntryGEO Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "GEO" entry of the 3d annotation object.

Notes

Represents the "GEO" entry of the 3d annotation object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 298, page 512.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.33, page 55.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 309, page 640.


ZZ Elements D3DActivationElement

D3DActivationElement Class

This class represents the 3D activation dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 299, page 514.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 310, page 642.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.34, page 56.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.D3DActivationElement

Method | Description
D3DActivationElement | Create a new D3DActivationElement.
 | inherited methods...

Property | Description
EntryA | Represents the "A" entry of the 3d activation dictionary object.
EntryAIS | Represents the "AIS" entry of the 3d activation dictionary object.
EntryD | Represents the "D" entry of the 3d activation dictionary object.
EntryDIS | Represents the "DIS" entry of the 3d activation dictionary object.
EntryTB | Represents the "TB" entry of the 3d activation dictionary object.
EntryNP | Represents the "NP" entry of the 3d activation dictionary object.
EntryStyle | Represents the "Style" entry of the 3d activation dictionary object.
EntryWindow | Represents the "Window" entry of the 3d activation dictionary object.
EntryTransparent | Represents the "Transparent" entry of the 3d activation dictionary object.
 | inherited properties...


ZZ Elements D3DActivationElement Constructor Function

D3DActivationElement Function

Create a new D3DActivationElement.

Syntax

[C#]
D3DActivationElement()
D3DActivationElement(Atom atom, IndirectObject host)
D3DActivationElement(IndirectObject obj)
D3DActivationElement(Element relation, CreationOptions options)

[Visual Basic]
D3DActivationElement()
D3DActivationElement(atom As Atom, host As IndirectObject)
D3DActivationElement(obj As IndirectObject)
D3DActivationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new D3DActivationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements D3DActivationElement EntryA Property

EntryA Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "A" entry of the 3d activation dictionary object.

Notes

Represents the "A" entry of the 3d activation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "XA" if no value has been provided.

This item may take one of the following valid values:.

  • PO
  • PV
  • XA

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 299, page 514.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.34, page 56.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 310, page 642.


ZZ Elements D3DActivationElement EntryAIS Property

EntryAIS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "AIS" entry of the 3d activation dictionary object.

Notes

Represents the "AIS" entry of the 3d activation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "L" if no value has been provided.

This item may take one of the following valid values:.

  • I
  • L

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 299, page 514.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.34, page 56.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 310, page 642.


ZZ Elements D3DActivationElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "D" entry of the 3d activation dictionary object.

Notes

Represents the "D" entry of the 3d activation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "PI" if no value has been provided.

This item may take one of the following valid values:.

  • PC
  • PI
  • XD

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 299, page 514.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.34, page 56.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 310, page 642.


ZZ Elements D3DActivationElement EntryDIS Property

EntryDIS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "DIS" entry of the 3d activation dictionary object.

Notes

Represents the "DIS" entry of the 3d activation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "U" if no value has been provided.

This item may take one of the following valid values:.

  • U
  • I
  • L

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 299, page 514.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.34, page 56.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 310, page 643.


ZZ Elements D3DActivationElement EntryTB Property

EntryTB Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "TB" entry of the 3d activation dictionary object.

Notes

Represents the "TB" entry of the 3d activation dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of true if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 299, page 515.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.34, page 56.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 310, page 643.


ZZ Elements D3DActivationElement EntryNP Property

EntryNP Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "NP" entry of the 3d activation dictionary object.

Notes

Represents the "NP" entry of the 3d activation dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 299, page 515.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.34, page 56.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 310, page 643.


ZZ Elements D3DActivationElement EntryStyle Property

EntryStyle Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Style" entry of the 3d activation dictionary object.

Notes

Represents the "Style" entry of the 3d activation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Embedded" if no value has been provided.

This item may take one of the following valid values:.

  • Embedded
  • Windowed

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 299, page 514.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.34, page 56.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 310, page 643.


ZZ Elements D3DActivationElement EntryWindow Property

EntryWindow Property

Type | Default Value | Read Only | Description
[C#] RichMediaWindowElement [Visual Basic] RichMediaWindowElement | null | No | Represents the "Window" entry of the 3d activation dictionary object.

Notes

Represents the "Window" entry of the 3d activation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RichMediaWindowElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 299, page 514.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.34, page 56.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 310, page 643.


ZZ Elements D3DActivationElement EntryTransparent Property

EntryTransparent Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "Transparent" entry of the 3d activation dictionary object.

Notes

Represents the "Transparent" entry of the 3d activation dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 299, page 514.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.34, page 56.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 310, page 643.


ZZ Elements D3DStreamElement

D3DStreamElement Class

This class represents the 3D stream dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 300, page 516.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 311, page 645.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.35, page 56.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.D3DStreamElement

Method | Description
D3DStreamElement | Create a new D3DStreamElement.
 | inherited methods...

Property | Description
StreamElement | The StreamElement associated with this class.
EntryType | Represents the "Type" entry of the 3d stream dictionary object.
EntrySubtype | Represents the "Subtype" entry of the 3d stream dictionary object.
EntryVA | Represents the "VA" entry of the 3d stream dictionary object.
EntryDV | Represents the "DV" entry of the 3d stream dictionary object.
EntryResources | Represents the "Resources" entry of the 3d stream dictionary object.
EntryOnInstantiate | Represents the "OnInstantiate" entry of the 3d stream dictionary object.
EntryAN | Represents the "AN" entry of the 3d stream dictionary object.
EntryColorSpace | Represents the "ColorSpace" entry of the 3d stream dictionary object.
 | inherited properties...


ZZ Elements D3DStreamElement Constructor Function

D3DStreamElement Function

Create a new D3DStreamElement.

Syntax

[C#]
D3DStreamElement()
D3DStreamElement(Atom atom, IndirectObject host)
D3DStreamElement(IndirectObject obj)
D3DStreamElement(Element relation, CreationOptions options)

[Visual Basic]
D3DStreamElement()
D3DStreamElement(atom As Atom, host As IndirectObject)
D3DStreamElement(obj As IndirectObject)
D3DStreamElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new D3DStreamElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements D3DStreamElement StreamElement Property

StreamElement Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | Yes | The StreamElement associated with this class.

Notes

The StreamElement associated with this class.


ZZ Elements D3DStreamElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the 3d stream dictionary object.

Notes

Represents the "Type" entry of the 3d stream dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "3D".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 300, page 516.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.35, page 56.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 311, page 645.


ZZ Elements D3DStreamElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the 3d stream dictionary object.

Notes

Represents the "Subtype" entry of the 3d stream dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • U3D
  • PRC

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 300, page 516.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.35, page 56.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 311, page 645.


ZZ Elements D3DStreamElement EntryVA Property

EntryVA Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<D3DViewElement> [Visual Basic] ArrayElement<D3DViewElement> | null | No | Represents the "VA" entry of the 3d stream dictionary object.

Notes

Represents the "VA" entry of the 3d stream dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains D3DViewElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 300, page 516.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.35, page 56.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 311, page 645.


ZZ Elements D3DStreamElement EntryDV Property

EntryDV Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "DV" entry of the 3d stream dictionary object.

Notes

Represents the "DV" entry of the 3d stream dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of four different types:.

1) An integer representing a PDF numeric object.

2) A string representing a PDF name object.

This item may take one of the following valid values:.

  • F
  • L
  • D
.

3) A string representing a PDF string object.

4) A D3DViewElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 300, page 516.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.35, page 56.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 311, page 645.


ZZ Elements D3DStreamElement EntryResources Property

EntryResources Property

Type | Default Value | Read Only | Description
[C#] NameTreeNodeElement<Element> [Visual Basic] NameTreeNodeElement<Element> | null | No | Represents the "Resources" entry of the 3d stream dictionary object.

Notes

Represents the "Resources" entry of the 3d stream dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a NameTreeNodeElement containing Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 300, page 516.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.35, page 56.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 311, page 645.


ZZ Elements D3DStreamElement EntryOnInstantiate Property

EntryOnInstantiate Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | No | Represents the "OnInstantiate" entry of the 3d stream dictionary object.

Notes

Represents the "OnInstantiate" entry of the 3d stream dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 300, page 516.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.35, page 56.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 311, page 645.


ZZ Elements D3DStreamElement EntryAN Property

EntryAN Property

Type | Default Value | Read Only | Description
[C#] D3DAnimationStyleElement [Visual Basic] D3DAnimationStyleElement | null | No | Represents the "AN" entry of the 3d stream dictionary object.

Notes

Represents the "AN" entry of the 3d stream dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a D3DAnimationStyleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 300, page 516.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.35, page 56.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 311, page 645.


ZZ Elements D3DStreamElement EntryColorSpace Property

EntryColorSpace Property

Type | Default Value | Read Only | Description
[C#] ColorSpaceElement [Visual Basic] ColorSpaceElement | null | No | Represents the "ColorSpace" entry of the 3d stream dictionary object.

Notes

Represents the "ColorSpace" entry of the 3d stream dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a ColorSpaceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 300, page 516.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.35, page 56.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 311, page 645.


ZZ Elements D3DAnimationStyleElement

D3DAnimationStyleElement Class

This class represents the 3D animation style dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 301, page 517.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 312, page 646.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.D3DAnimationStyleElement

Method | Description
D3DAnimationStyleElement | Create a new D3DAnimationStyleElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the 3d animation style dictionary object.
EntrySubtype | Represents the "Subtype" entry of the 3d animation style dictionary object.
EntryPC | Represents the "PC" entry of the 3d animation style dictionary object.
EntryTM | Represents the "TM" entry of the 3d animation style dictionary object.
 | inherited properties...


ZZ Elements D3DAnimationStyleElement Constructor Function

D3DAnimationStyleElement Function

Create a new D3DAnimationStyleElement.

Syntax

[C#]
D3DAnimationStyleElement()
D3DAnimationStyleElement(Atom atom, IndirectObject host)
D3DAnimationStyleElement(IndirectObject obj)
D3DAnimationStyleElement(Element relation, CreationOptions options)

[Visual Basic]
D3DAnimationStyleElement()
D3DAnimationStyleElement(atom As Atom, host As IndirectObject)
D3DAnimationStyleElement(obj As IndirectObject)
D3DAnimationStyleElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new D3DAnimationStyleElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements D3DAnimationStyleElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the 3d animation style dictionary object.

Notes

Represents the "Type" entry of the 3d animation style dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "3DAnimationStyle".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 301, page 517.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 312, page 646.


ZZ Elements D3DAnimationStyleElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the 3d animation style dictionary object.

Notes

Represents the "Subtype" entry of the 3d animation style dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "None" if no value has been provided.

This item may take one of the following valid values:.

  • None
  • Linear
  • Oscillating

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 301, page 517.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 312, page 646.


ZZ Elements D3DAnimationStyleElement EntryPC Property

EntryPC Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "PC" entry of the 3d animation style dictionary object.

Notes

Represents the "PC" entry of the 3d animation style dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 301, page 517.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 312, page 646.


ZZ Elements D3DAnimationStyleElement EntryTM Property

EntryTM Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "TM" entry of the 3d animation style dictionary object.

Notes

Represents the "TM" entry of the 3d animation style dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

It should have a positive value.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 301, page 517.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 312, page 647.


ZZ Elements D3DReferenceElement

D3DReferenceElement Class

This class represents the 3D reference dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 303, page 519.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 314, page 648.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.D3DReferenceElement

Method | Description
D3DReferenceElement | Create a new D3DReferenceElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the 3d reference dictionary object.
Entry3DD | Represents the "3DD" entry of the 3d reference dictionary object.
 | inherited properties...


ZZ Elements D3DReferenceElement Constructor Function

D3DReferenceElement Function

Create a new D3DReferenceElement.

Syntax

[C#]
D3DReferenceElement()
D3DReferenceElement(Atom atom, IndirectObject host)
D3DReferenceElement(IndirectObject obj)
D3DReferenceElement(Element relation, CreationOptions options)

[Visual Basic]
D3DReferenceElement()
D3DReferenceElement(atom As Atom, host As IndirectObject)
D3DReferenceElement(obj As IndirectObject)
D3DReferenceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new D3DReferenceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements D3DReferenceElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the 3d reference dictionary object.

Notes

Represents the "Type" entry of the 3d reference dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "3DRef".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 303, page 519.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 314, page 648.


ZZ Elements D3DReferenceElement Entry3DD Property

Entry3DD Property

Type | Default Value | Read Only | Description
[C#] D3DStreamElement [Visual Basic] D3DStreamElement | null | No | Represents the "3DD" entry of the 3d reference dictionary object.

Notes

Represents the "3DD" entry of the 3d reference dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a D3DStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 303, page 519.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 314, page 648.


ZZ Elements D3DViewElement

D3DViewElement Class

This class represents the 3D view dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 521.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.

This class is always an indirect object because RichMediaActivationElement.EntryView and RichMediaContentElement.EntryViews require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.D3DViewElement

Method | Description
D3DViewElement | Create a new D3DViewElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the 3d view dictionary object.
EntryXN | Represents the "XN" entry of the 3d view dictionary object.
EntryIN | Represents the "IN" entry of the 3d view dictionary object.
EntryC2W | Represents the "C2W" entry of the 3d view dictionary object.
EntryU3DPath | Represents the "U3DPath" entry of the 3d view dictionary object.
EntryCO | Represents the "CO" entry of the 3d view dictionary object.
EntryP | Represents the "P" entry of the 3d view dictionary object.
EntryO | Represents the "O" entry of the 3d view dictionary object.
EntryBG | Represents the "BG" entry of the 3d view dictionary object.
EntryRM | Represents the "RM" entry of the 3d view dictionary object.
EntryLS | Represents the "LS" entry of the 3d view dictionary object.
EntrySA | Represents the "SA" entry of the 3d view dictionary object.
EntryNA | Represents the "NA" entry of the 3d view dictionary object.
EntryNR | Represents the "NR" entry of the 3d view dictionary object.
EntryMS | Represents the "MS" entry of the 3d view dictionary object.
EntryMA | Represents the "MA" entry of the 3d view dictionary object.
EntrySnapshot | Represents the "Snapshot" entry of the 3d view dictionary object.
EntryParams | Represents the "Params" entry of the 3d view dictionary object.
 | inherited properties...


ZZ Elements D3DViewElement Constructor Function

D3DViewElement Function

Create a new D3DViewElement.

Syntax

[C#]
D3DViewElement()
D3DViewElement(Atom atom, IndirectObject host)
D3DViewElement(IndirectObject obj)
D3DViewElement(Element relation, CreationOptions options)

[Visual Basic]
D3DViewElement()
D3DViewElement(atom As Atom, host As IndirectObject)
D3DViewElement(obj As IndirectObject)
D3DViewElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new D3DViewElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements D3DViewElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the 3d view dictionary object.

Notes

Represents the "Type" entry of the 3d view dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "3DView".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 521.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.


ZZ Elements D3DViewElement EntryXN Property

EntryXN Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "XN" entry of the 3d view dictionary object.

Notes

Represents the "XN" entry of the 3d view dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 521.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.


ZZ Elements D3DViewElement EntryIN Property

EntryIN Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "IN" entry of the 3d view dictionary object.

Notes

Represents the "IN" entry of the 3d view dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 521.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.


ZZ Elements D3DViewElement EntryC2W Property

EntryC2W Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "C2W" entry of the 3d view dictionary object.

Notes

Represents the "C2W" entry of the 3d view dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 521.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.


ZZ Elements D3DViewElement EntryU3DPath Property

EntryU3DPath Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "U3DPath" entry of the 3d view dictionary object.

Notes

Represents the "U3DPath" entry of the 3d view dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF string objects.

If you read the specification you will see that an array of one string may be represented as a single string rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 521.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.


ZZ Elements D3DViewElement EntryCO Property

EntryCO Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "CO" entry of the 3d view dictionary object.

Notes

Represents the "CO" entry of the 3d view dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

It should have a minimum value of 0.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 522.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.


ZZ Elements D3DViewElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] ProjectionElement [Visual Basic] ProjectionElement | null | No | Represents the "P" entry of the 3d view dictionary object.

Notes

Represents the "P" entry of the 3d view dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a ProjectionElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 522.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.


ZZ Elements D3DViewElement EntryO Property

EntryO Property

Type | Default Value | Read Only | Description
[C#] FormXObjectElement [Visual Basic] FormXObjectElement | null | No | Represents the "O" entry of the 3d view dictionary object.

Notes

Represents the "O" entry of the 3d view dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a FormXObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 522.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.


ZZ Elements D3DViewElement EntryBG Property

EntryBG Property

Type | Default Value | Read Only | Description
[C#] D3DBackgroundElement [Visual Basic] D3DBackgroundElement | null | No | Represents the "BG" entry of the 3d view dictionary object.

Notes

Represents the "BG" entry of the 3d view dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a D3DBackgroundElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 522.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.


ZZ Elements D3DViewElement EntryRM Property

EntryRM Property

Type | Default Value | Read Only | Description
[C#] RenderModeElement [Visual Basic] RenderModeElement | null | No | Represents the "RM" entry of the 3d view dictionary object.

Notes

Represents the "RM" entry of the 3d view dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a RenderModeElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 522.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.


ZZ Elements D3DViewElement EntryLS Property

EntryLS Property

Type | Default Value | Read Only | Description
[C#] D3DLightingSchemeElement [Visual Basic] D3DLightingSchemeElement | null | No | Represents the "LS" entry of the 3d view dictionary object.

Notes

Represents the "LS" entry of the 3d view dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a D3DLightingSchemeElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 522.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.


ZZ Elements D3DViewElement EntrySA Property

EntrySA Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<D3DCrossSectionElement> [Visual Basic] ArrayElement<D3DCrossSectionElement> | null | No | Represents the "SA" entry of the 3d view dictionary object.

Notes

Represents the "SA" entry of the 3d view dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains an array which contains D3DCrossSectionElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 522.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.


ZZ Elements D3DViewElement EntryNA Property

EntryNA Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<D3DNodeElement> [Visual Basic] ArrayElement<D3DNodeElement> | null | No | Represents the "NA" entry of the 3d view dictionary object.

Notes

Represents the "NA" entry of the 3d view dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains an array which contains D3DNodeElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 522.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.


ZZ Elements D3DViewElement EntryNR Property

EntryNR Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "NR" entry of the 3d view dictionary object.

Notes

Represents the "NR" entry of the 3d view dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 522.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.


ZZ Elements D3DViewElement EntryMS Property

EntryMS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "MS" entry of the 3d view dictionary object.

Notes

Represents the "MS" entry of the 3d view dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • M
  • U3D

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 521.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.


ZZ Elements D3DViewElement EntryMA Property

EntryMA Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<D3DMeasurementElement> [Visual Basic] ArrayElement<D3DMeasurementElement> | null | No | Represents the "MA" entry of the 3d view dictionary object.

Notes

Represents the "MA" entry of the 3d view dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains D3DMeasurementElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 521.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.


ZZ Elements D3DViewElement EntrySnapshot Property

EntrySnapshot Property

Type | Default Value | Read Only | Description
[C#] ImageXObjectElement [Visual Basic] ImageXObjectElement | null | No | Represents the "Snapshot" entry of the 3d view dictionary object.

Notes

Represents the "Snapshot" entry of the 3d view dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an ImageXObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 521.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.


ZZ Elements D3DViewElement EntryParams Property

EntryParams Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<ViewParamsElement> [Visual Basic] ArrayElement<ViewParamsElement> | null | No | Represents the "Params" entry of the 3d view dictionary object.

Notes

Represents the "Params" entry of the 3d view dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains ViewParamsElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 304, page 521.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39, page 57.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 344, page 707.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.51f, page 93.


ZZ Elements ProjectionElement

ProjectionElement Class

This class represents the projection dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 305, page 524.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 316, page 655.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ProjectionElement

Method | Description
ProjectionElement | Create a new ProjectionElement.
 | inherited methods...

Property | Description
EntrySubtype | Represents the "Subtype" entry of the projection dictionary object.
EntryCS | Represents the "CS" entry of the projection dictionary object.
EntryF | Represents the "F" entry of the projection dictionary object.
EntryN | Represents the "N" entry of the projection dictionary object.
EntryFOV | Represents the "FOV" entry of the projection dictionary object.
EntryPS | Represents the "PS" entry of the projection dictionary object.
EntryOS | Represents the "OS" entry of the projection dictionary object.
EntryOB | Represents the "OB" entry of the projection dictionary object.
 | inherited properties...


ZZ Elements ProjectionElement Constructor Function

ProjectionElement Function

Create a new ProjectionElement.

Syntax

[C#]
ProjectionElement()
ProjectionElement(Atom atom, IndirectObject host)
ProjectionElement(IndirectObject obj)
ProjectionElement(Element relation, CreationOptions options)

[Visual Basic]
ProjectionElement()
ProjectionElement(atom As Atom, host As IndirectObject)
ProjectionElement(obj As IndirectObject)
ProjectionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ProjectionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ProjectionElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the projection dictionary object.

Notes

Represents the "Subtype" entry of the projection dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • O
  • P

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 305, page 524.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 316, page 655.


ZZ Elements ProjectionElement EntryCS Property

EntryCS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "CS" entry of the projection dictionary object.

Notes

Represents the "CS" entry of the projection dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "ANF" if no value has been provided.

This item may take one of the following valid values:.

  • XNF
  • far
  • ANF

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 305, page 524.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 316, page 655.


ZZ Elements ProjectionElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "F" entry of the projection dictionary object.

Notes

Represents the "F" entry of the projection dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 305, page 524.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 316, page 655.


ZZ Elements ProjectionElement EntryN Property

EntryN Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "N" entry of the projection dictionary object.

Notes

Represents the "N" entry of the projection dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

It should have a positive value.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 305, page 524.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 316, page 655.


ZZ Elements ProjectionElement EntryFOV Property

EntryFOV Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "FOV" entry of the projection dictionary object.

Notes

Represents the "FOV" entry of the projection dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 305, page 524.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 316, page 655.


ZZ Elements ProjectionElement EntryPS Property

EntryPS Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "PS" entry of the projection dictionary object.

Notes

Represents the "PS" entry of the projection dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A double representing a PDF numeric object.

It should have a positive value.

2) A string representing a PDF name object.

The PDF specification states that this item assumes a value of "W" if no value has been provided.

This item may take one of the following valid values:.

  • W
  • H
  • Min
  • Max

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 305, page 524.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 316, page 655.


ZZ Elements ProjectionElement EntryOS Property

EntryOS Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "OS" entry of the projection dictionary object.

Notes

Represents the "OS" entry of the projection dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

It should have a positive value.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 305, page 524.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 316, page 655.


ZZ Elements ProjectionElement EntryOB Property

EntryOB Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "OB" entry of the projection dictionary object.

Notes

Represents the "OB" entry of the projection dictionary object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Absolute" if no value has been provided.

This item may take one of the following valid values:.

  • W
  • H
  • Min
  • Max
  • Absolute

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 305, page 524.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 316, page 656.


ZZ Elements D3DBackgroundElement

D3DBackgroundElement Class

This class represents the 3D background dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 306, page 527.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 317, page 659.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.D3DBackgroundElement

Method | Description
D3DBackgroundElement | Create a new D3DBackgroundElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the 3d background dictionary object.
EntrySubtype | Represents the "Subtype" entry of the 3d background dictionary object.
EntryCS | Represents the "CS" entry of the 3d background dictionary object.
EntryC | Represents the "C" entry of the 3d background dictionary object.
EntryEA | Represents the "EA" entry of the 3d background dictionary object.
 | inherited properties...


ZZ Elements D3DBackgroundElement Constructor Function

D3DBackgroundElement Function

Create a new D3DBackgroundElement.

Syntax

[C#]
D3DBackgroundElement()
D3DBackgroundElement(Atom atom, IndirectObject host)
D3DBackgroundElement(IndirectObject obj)
D3DBackgroundElement(Element relation, CreationOptions options)

[Visual Basic]
D3DBackgroundElement()
D3DBackgroundElement(atom As Atom, host As IndirectObject)
D3DBackgroundElement(obj As IndirectObject)
D3DBackgroundElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new D3DBackgroundElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements D3DBackgroundElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the 3d background dictionary object.

Notes

Represents the "Type" entry of the 3d background dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "3DBG".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 306, page 527.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 317, page 659.


ZZ Elements D3DBackgroundElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the 3d background dictionary object.

Notes

Represents the "Subtype" entry of the 3d background dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "SC" if no value has been provided.

If provided, this item must always take the value "SC".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 306, page 527.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 317, page 659.


ZZ Elements D3DBackgroundElement EntryCS Property

EntryCS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "CS" entry of the 3d background dictionary object.

Notes

Represents the "CS" entry of the 3d background dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "DeviceRGB" if no value has been provided.

If provided, this item must always take the value "DeviceRGB".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 306, page 527.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 317, page 659.


ZZ Elements D3DBackgroundElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "C" entry of the 3d background dictionary object.

Notes

Represents the "C" entry of the 3d background dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 306, page 527.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 317, page 659.


ZZ Elements D3DBackgroundElement EntryEA Property

EntryEA Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "EA" entry of the 3d background dictionary object.

Notes

Represents the "EA" entry of the 3d background dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 306, page 527.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 317, page 659.


ZZ Elements RenderModeElement

RenderModeElement Class

This class represents the render mode dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 307, page 527.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 318, page 659.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.RenderModeElement

Method | Description
RenderModeElement | Create a new RenderModeElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the render mode dictionary object.
EntrySubtype | Represents the "Subtype" entry of the render mode dictionary object.
EntryAC | Represents the "AC" entry of the render mode dictionary object.
EntryFC | Represents the "FC" entry of the render mode dictionary object.
EntryO | Represents the "O" entry of the render mode dictionary object.
EntryCV | Represents the "CV" entry of the render mode dictionary object.
 | inherited properties...


ZZ Elements RenderModeElement Constructor Function

RenderModeElement Function

Create a new RenderModeElement.

Syntax

[C#]
RenderModeElement()
RenderModeElement(Atom atom, IndirectObject host)
RenderModeElement(IndirectObject obj)
RenderModeElement(Element relation, CreationOptions options)

[Visual Basic]
RenderModeElement()
RenderModeElement(atom As Atom, host As IndirectObject)
RenderModeElement(obj As IndirectObject)
RenderModeElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new RenderModeElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements RenderModeElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the render mode dictionary object.

Notes

Represents the "Type" entry of the render mode dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "3DRenderMode".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 307, page 527.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 318, page 659.


ZZ Elements RenderModeElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the render mode dictionary object.

Notes

Represents the "Subtype" entry of the render mode dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • Solid
  • SolidWireframe
  • Transparent
  • TransparentWireframe
  • BoundingBox
  • TransparentBoundingBox
  • TransparentBoundingBoxOutline
  • Wireframe
  • ShadedWireframe
  • HiddenWireframe
  • Vertices
  • ShadedVertices
  • Illustration
  • SolidOutline
  • ShadedIllustration

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 307, page 527.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 318, page 659.


ZZ Elements RenderModeElement EntryAC Property

EntryAC Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "AC" entry of the render mode dictionary object.

Notes

Represents the "AC" entry of the render mode dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 307, page 528.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 318, page 660.


ZZ Elements RenderModeElement EntryFC Property

EntryFC Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "FC" entry of the render mode dictionary object.

Notes

Represents the "FC" entry of the render mode dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

The PDF specification states that this item assumes a value of "BG" if no value has been provided.

If provided, this item must always take the value "BG".

2) An array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 307, page 528.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 318, page 660.


ZZ Elements RenderModeElement EntryO Property

EntryO Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "O" entry of the render mode dictionary object.

Notes

Represents the "O" entry of the render mode dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0.5 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 307, page 528.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 318, page 660.


ZZ Elements RenderModeElement EntryCV Property

EntryCV Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "CV" entry of the render mode dictionary object.

Notes

Represents the "CV" entry of the render mode dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 45 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 307, page 528.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 318, page 660.


ZZ Elements D3DLightingSchemeElement

D3DLightingSchemeElement Class

This class represents the 3D lighting scheme dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 309, page 530.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 320, page 662.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.D3DLightingSchemeElement

Method | Description
D3DLightingSchemeElement | Create a new D3DLightingSchemeElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the 3d lighting scheme dictionary object.
EntrySubtype | Represents the "Subtype" entry of the 3d lighting scheme dictionary object.
 | inherited properties...


ZZ Elements D3DLightingSchemeElement Constructor Function

D3DLightingSchemeElement Function

Create a new D3DLightingSchemeElement.

Syntax

[C#]
D3DLightingSchemeElement()
D3DLightingSchemeElement(Atom atom, IndirectObject host)
D3DLightingSchemeElement(IndirectObject obj)
D3DLightingSchemeElement(Element relation, CreationOptions options)

[Visual Basic]
D3DLightingSchemeElement()
D3DLightingSchemeElement(atom As Atom, host As IndirectObject)
D3DLightingSchemeElement(obj As IndirectObject)
D3DLightingSchemeElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new D3DLightingSchemeElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements D3DLightingSchemeElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the 3d lighting scheme dictionary object.

Notes

Represents the "Type" entry of the 3d lighting scheme dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "3DLightingScheme".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 309, page 530.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 320, page 662.


ZZ Elements D3DLightingSchemeElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the 3d lighting scheme dictionary object.

Notes

Represents the "Subtype" entry of the 3d lighting scheme dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • Artwork
  • None
  • White
  • Day
  • Night
  • Hard
  • Primary
  • Blue
  • Red
  • Cube
  • CAD
  • Headlamp

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 309, page 530.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 320, page 662.


ZZ Elements D3DCrossSectionElement

D3DCrossSectionElement Class

This class represents the 3D cross section dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 311, page 532.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 322, page 664.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.D3DCrossSectionElement

Method | Description
D3DCrossSectionElement | Create a new D3DCrossSectionElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the 3d cross section dictionary object.
EntryC | Represents the "C" entry of the 3d cross section dictionary object.
EntryO | Represents the "O" entry of the 3d cross section dictionary object.
EntryPO | Represents the "PO" entry of the 3d cross section dictionary object.
EntryPC | Represents the "PC" entry of the 3d cross section dictionary object.
EntryIV | Represents the "IV" entry of the 3d cross section dictionary object.
EntryIC | Represents the "IC" entry of the 3d cross section dictionary object.
EntryST | Represents the "ST" entry of the 3d cross section dictionary object.
EntrySC | Represents the "SC" entry of the 3d cross section dictionary object.
 | inherited properties...


ZZ Elements D3DCrossSectionElement Constructor Function

D3DCrossSectionElement Function

Create a new D3DCrossSectionElement.

Syntax

[C#]
D3DCrossSectionElement()
D3DCrossSectionElement(Atom atom, IndirectObject host)
D3DCrossSectionElement(IndirectObject obj)
D3DCrossSectionElement(Element relation, CreationOptions options)

[Visual Basic]
D3DCrossSectionElement()
D3DCrossSectionElement(atom As Atom, host As IndirectObject)
D3DCrossSectionElement(obj As IndirectObject)
D3DCrossSectionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new D3DCrossSectionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements D3DCrossSectionElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the 3d cross section dictionary object.

Notes

Represents the "Type" entry of the 3d cross section dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "3DCrossSection".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 311, page 532.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 322, page 664.


ZZ Elements D3DCrossSectionElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "C" entry of the 3d cross section dictionary object.

Notes

Represents the "C" entry of the 3d cross section dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 311, page 532.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 322, page 665.


ZZ Elements D3DCrossSectionElement EntryO Property

EntryO Property

Type | Default Value | Read Only | Description
[C#] IList<double?> [Visual Basic] IList<Double?> | null | No | Represents the "O" entry of the 3d cross section dictionary object.

Notes

Represents the "O" entry of the 3d cross section dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 311, page 532.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 322, page 665.


ZZ Elements D3DCrossSectionElement EntryPO Property

EntryPO Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "PO" entry of the 3d cross section dictionary object.

Notes

Represents the "PO" entry of the 3d cross section dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

It should have a minimum value of 0 and a maximum of 1.

The PDF specification states that this item assumes a value of 0.5 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 311, page 532.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 322, page 665.


ZZ Elements D3DCrossSectionElement EntryPC Property

EntryPC Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "PC" entry of the 3d cross section dictionary object.

Notes

Represents the "PC" entry of the 3d cross section dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 311, page 532.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 322, page 665.


ZZ Elements D3DCrossSectionElement EntryIV Property

EntryIV Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "IV" entry of the 3d cross section dictionary object.

Notes

Represents the "IV" entry of the 3d cross section dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 311, page 532.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 322, page 665.


ZZ Elements D3DCrossSectionElement EntryIC Property

EntryIC Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "IC" entry of the 3d cross section dictionary object.

Notes

Represents the "IC" entry of the 3d cross section dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 311, page 532.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 322, page 665.


ZZ Elements D3DCrossSectionElement EntryST Property

EntryST Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "ST" entry of the 3d cross section dictionary object.

Notes

Represents the "ST" entry of the 3d cross section dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 311, page 532.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 322, page 665.


ZZ Elements D3DCrossSectionElement EntrySC Property

EntrySC Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "SC" entry of the 3d cross section dictionary object.

Notes

Represents the "SC" entry of the 3d cross section dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 311, page 532.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 322, page 665.


ZZ Elements D3DNodeElement

D3DNodeElement Class

This class represents the 3D node dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 312, page 538.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 9.47, page 58.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 323, page 670.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.D3DNodeElement

Method | Description
D3DNodeElement | Create a new D3DNodeElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the 3d node dictionary object.
EntryN | Represents the "N" entry of the 3d node dictionary object.
EntryInstance | Represents the "Instance" entry of the 3d node dictionary object.
EntryData | Represents the "Data" entry of the 3d node dictionary object.
EntryRM | Represents the "RM" entry of the 3d node dictionary object.
EntryO | Represents the "O" entry of the 3d node dictionary object.
EntryV | Represents the "V" entry of the 3d node dictionary object.
EntryM | Represents the "M" entry of the 3d node dictionary object.
 | inherited properties...


ZZ Elements D3DNodeElement Constructor Function

D3DNodeElement Function

Create a new D3DNodeElement.

Syntax

[C#]
D3DNodeElement()
D3DNodeElement(Atom atom, IndirectObject host)
D3DNodeElement(IndirectObject obj)
D3DNodeElement(Element relation, CreationOptions options)

[Visual Basic]
D3DNodeElement()
D3DNodeElement(atom As Atom, host As IndirectObject)
D3DNodeElement(obj As IndirectObject)
D3DNodeElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new D3DNodeElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements D3DNodeElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the 3d node dictionary object.

Notes

Represents the "Type" entry of the 3d node dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "3DNode".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 312, page 538.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 323, page 670.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 9.47, page 58.


ZZ Elements D3DNodeElement EntryN Property

EntryN Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "N" entry of the 3d node dictionary object.

Notes

Represents the "N" entry of the 3d node dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 312, page 538.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 323, page 671.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 9.47, page 58.


ZZ Elements D3DNodeElement EntryInstance Property

EntryInstance Property

Type | Default Value | Read Only | Description
[C#] RichMediaInstanceElement [Visual Basic] RichMediaInstanceElement | null | No | Represents the "Instance" entry of the 3d node dictionary object.

Notes

Represents the "Instance" entry of the 3d node dictionary object.

It is defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RichMediaInstanceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 312, page 538.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 323, page 671.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 9.47, page 58.


ZZ Elements D3DNodeElement EntryData Property

EntryData Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Data" entry of the 3d node dictionary object.

Notes

Represents the "Data" entry of the 3d node dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

This property may contain one of two different types:.

1) A string representing a PDF string object.

2) A StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 312, page 538.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 323, page 671.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 9.47, page 58.


ZZ Elements D3DNodeElement EntryRM Property

EntryRM Property

Type | Default Value | Read Only | Description
[C#] RenderModeElement [Visual Basic] RenderModeElement | null | No | Represents the "RM" entry of the 3d node dictionary object.

Notes

Represents the "RM" entry of the 3d node dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a RenderModeElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 312, page 538.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 323, page 671.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 9.47, page 58.


ZZ Elements D3DNodeElement EntryO Property

EntryO Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "O" entry of the 3d node dictionary object.

Notes

Represents the "O" entry of the 3d node dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

It should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 312, page 538.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 323, page 671.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 9.47, page 58.


ZZ Elements D3DNodeElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "V" entry of the 3d node dictionary object.

Notes

Represents the "V" entry of the 3d node dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 312, page 538.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 323, page 671.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 9.47, page 58.


ZZ Elements D3DNodeElement EntryM Property

EntryM Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "M" entry of the 3d node dictionary object.

Notes

Represents the "M" entry of the 3d node dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 312, page 538.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 323, page 671.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 9.47, page 58.


ZZ Elements D3DAnnotationExternalDataElement

D3DAnnotationExternalDataElement Class

This class represents the external data dictionary used to markup 3D annotations. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 313, page 543.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 324, page 675.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ExternalDataElement
         WebSupergoo.ABCpdf12.Elements.D3DAnnotationExternalDataElement

Method | Description
D3DAnnotationExternalDataElement | Create a new D3DAnnotationExternalDataElement.
 | inherited methods...

Property | Description
Entry3DA | Represents the "3DA" entry of the external data dictionary used to markup 3d annotations object.
Entry3DV | Represents the "3DV" entry of the external data dictionary used to markup 3d annotations object.
EntryMD5 | Represents the "MD5" entry of the external data dictionary used to markup 3d annotations object.
 | inherited properties...


ZZ Elements D3DAnnotationExternalDataElement Constructor Function

D3DAnnotationExternalDataElement Function

Create a new D3DAnnotationExternalDataElement.

Syntax

[C#]
D3DAnnotationExternalDataElement()
D3DAnnotationExternalDataElement(Atom atom, IndirectObject host)
D3DAnnotationExternalDataElement(IndirectObject obj)
D3DAnnotationExternalDataElement(Element relation, CreationOptions options)

[Visual Basic]
D3DAnnotationExternalDataElement()
D3DAnnotationExternalDataElement(atom As Atom, host As IndirectObject)
D3DAnnotationExternalDataElement(obj As IndirectObject)
D3DAnnotationExternalDataElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new D3DAnnotationExternalDataElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements D3DAnnotationExternalDataElement Entry3DA Property

Entry3DA Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "3DA" entry of the external data dictionary used to markup 3d annotations object.

Notes

Represents the "3DA" entry of the external data dictionary used to markup 3d annotations object.

It is a required entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF string object.

2) A D3DAnnotationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 313, page 543.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 324, page 676.


ZZ Elements D3DAnnotationExternalDataElement Entry3DV Property

Entry3DV Property

Type | Default Value | Read Only | Description
[C#] D3DViewElement [Visual Basic] D3DViewElement | null | No | Represents the "3DV" entry of the external data dictionary used to markup 3d annotations object.

Notes

Represents the "3DV" entry of the external data dictionary used to markup 3d annotations object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a D3DViewElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 313, page 543.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 324, page 676.


ZZ Elements D3DAnnotationExternalDataElement EntryMD5 Property

EntryMD5 Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "MD5" entry of the external data dictionary used to markup 3d annotations object.

Notes

Represents the "MD5" entry of the external data dictionary used to markup 3d annotations object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 313, page 543.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 324, page 676.


ZZ Elements D3DUnitsElement

D3DUnitsElement Class

This class represents the 3D units dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 325, page 680.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.33a, page 60.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.D3DUnitsElement

Method | Description
D3DUnitsElement | Create a new D3DUnitsElement.
 | inherited methods...

Property | Description
EntryTSm | Represents the "TSm" entry of the 3d units dictionary object.
EntryTSn | Represents the "TSn" entry of the 3d units dictionary object.
EntryTU | Represents the "TU" entry of the 3d units dictionary object.
EntryUSm | Represents the "USm" entry of the 3d units dictionary object.
EntryUSn | Represents the "USn" entry of the 3d units dictionary object.
EntryUU | Represents the "UU" entry of the 3d units dictionary object.
EntryDSm | Represents the "DSm" entry of the 3d units dictionary object.
EntryDSn | Represents the "DSn" entry of the 3d units dictionary object.
EntryDU | Represents the "DU" entry of the 3d units dictionary object.
 | inherited properties...


ZZ Elements D3DUnitsElement Constructor Function

D3DUnitsElement Function

Create a new D3DUnitsElement.

Syntax

[C#]
D3DUnitsElement()
D3DUnitsElement(Atom atom, IndirectObject host)
D3DUnitsElement(IndirectObject obj)
D3DUnitsElement(Element relation, CreationOptions options)

[Visual Basic]
D3DUnitsElement()
D3DUnitsElement(atom As Atom, host As IndirectObject)
D3DUnitsElement(obj As IndirectObject)
D3DUnitsElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new D3DUnitsElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements D3DUnitsElement EntryTSm Property

EntryTSm Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "TSm" entry of the 3d units dictionary object.

Notes

Represents the "TSm" entry of the 3d units dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.33a, page 60.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 325, page 680.


ZZ Elements D3DUnitsElement EntryTSn Property

EntryTSn Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "TSn" entry of the 3d units dictionary object.

Notes

Represents the "TSn" entry of the 3d units dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.33a, page 60.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 325, page 680.


ZZ Elements D3DUnitsElement EntryTU Property

EntryTU Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "TU" entry of the 3d units dictionary object.

Notes

Represents the "TU" entry of the 3d units dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.33a, page 60.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 325, page 680.


ZZ Elements D3DUnitsElement EntryUSm Property

EntryUSm Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "USm" entry of the 3d units dictionary object.

Notes

Represents the "USm" entry of the 3d units dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.33a, page 60.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 325, page 680.


ZZ Elements D3DUnitsElement EntryUSn Property

EntryUSn Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "USn" entry of the 3d units dictionary object.

Notes

Represents the "USn" entry of the 3d units dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.33a, page 60.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 325, page 680.


ZZ Elements D3DUnitsElement EntryUU Property

EntryUU Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "UU" entry of the 3d units dictionary object.

Notes

Represents the "UU" entry of the 3d units dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.33a, page 60.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 325, page 681.


ZZ Elements D3DUnitsElement EntryDSm Property

EntryDSm Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "DSm" entry of the 3d units dictionary object.

Notes

Represents the "DSm" entry of the 3d units dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.33a, page 60.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 325, page 681.


ZZ Elements D3DUnitsElement EntryDSn Property

EntryDSn Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "DSn" entry of the 3d units dictionary object.

Notes

Represents the "DSn" entry of the 3d units dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.33a, page 60.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 325, page 681.


ZZ Elements D3DUnitsElement EntryDU Property

EntryDU Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "DU" entry of the 3d units dictionary object.

Notes

Represents the "DU" entry of the 3d units dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.33a, page 60.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 325, page 681.


ZZ Elements D3DMeasurementElement

D3DMeasurementElement Class

This class represents the 3D measurement dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 326, page 682.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39a, page 62.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.D3DMeasurementElement
         WebSupergoo.ABCpdf12.Elements.D3DAngularMeasurementElement
         WebSupergoo.ABCpdf12.Elements.D3DCommentNoteElement
         WebSupergoo.ABCpdf12.Elements.D3DLinearMeasurementElement
         WebSupergoo.ABCpdf12.Elements.D3DPerpendicularMeasurementElement
         WebSupergoo.ABCpdf12.Elements.D3DRadialMeasurementElement

Method | Description
D3DMeasurementElement | Create a new D3DMeasurementElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the 3d measurement dictionary object.
EntrySubtype | Represents the "Subtype" entry of the 3d measurement dictionary object.
EntryTRL | Represents the "TRL" entry of the 3d measurement dictionary object.
 | inherited properties...


ZZ Elements D3DMeasurementElement Constructor Function

D3DMeasurementElement Function

Create a new D3DMeasurementElement.

Syntax

[C#]
D3DMeasurementElement()
D3DMeasurementElement(Atom atom, IndirectObject host)
D3DMeasurementElement(IndirectObject obj)
D3DMeasurementElement(Element relation, CreationOptions options)

[Visual Basic]
D3DMeasurementElement()
D3DMeasurementElement(atom As Atom, host As IndirectObject)
D3DMeasurementElement(obj As IndirectObject)
D3DMeasurementElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new D3DMeasurementElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements D3DMeasurementElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the 3d measurement dictionary object.

Notes

Represents the "Type" entry of the 3d measurement dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "3DMeasure".

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39a, page 62.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 326, page 682.


ZZ Elements D3DMeasurementElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the 3d measurement dictionary object.

Notes

Represents the "Subtype" entry of the 3d measurement dictionary object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF name object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39a, page 62.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 326, page 683.


ZZ Elements D3DMeasurementElement EntryTRL Property

EntryTRL Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "TRL" entry of the 3d measurement dictionary object.

Notes

Represents the "TRL" entry of the 3d measurement dictionary object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39a, page 62.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 326, page 683.


ZZ Elements D3DLinearMeasurementElement

D3DLinearMeasurementElement Class

This class represents the 3D linear dimension measurement. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 327, page 684.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39b, page 63.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.D3DMeasurementElement
         WebSupergoo.ABCpdf12.Elements.D3DLinearMeasurementElement

Method | Description
D3DLinearMeasurementElement | Create a new D3DLinearMeasurementElement.
 | inherited methods...

Property | Description
EntryAP | Represents the "AP" entry of the 3d linear dimension measurement object.
EntryA1 | Represents the "A1" entry of the 3d linear dimension measurement object.
EntryN1 | Represents the "N1" entry of the 3d linear dimension measurement object.
EntryA2 | Represents the "A2" entry of the 3d linear dimension measurement object.
EntryN2 | Represents the "N2" entry of the 3d linear dimension measurement object.
EntryTP | Represents the "TP" entry of the 3d linear dimension measurement object.
EntryTY | Represents the "TY" entry of the 3d linear dimension measurement object.
EntryTS | Represents the "TS" entry of the 3d linear dimension measurement object.
EntryC | Represents the "C" entry of the 3d linear dimension measurement object.
EntryV | Represents the "V" entry of the 3d linear dimension measurement object.
EntryU | Represents the "U" entry of the 3d linear dimension measurement object.
EntryP | Represents the "P" entry of the 3d linear dimension measurement object.
EntryUT | Represents the "UT" entry of the 3d linear dimension measurement object.
EntryS | Represents the "S" entry of the 3d linear dimension measurement object.
 | inherited properties...


ZZ Elements D3DLinearMeasurementElement Constructor Function

D3DLinearMeasurementElement Function

Create a new D3DLinearMeasurementElement.

Syntax

[C#]
D3DLinearMeasurementElement()
D3DLinearMeasurementElement(Atom atom, IndirectObject host)
D3DLinearMeasurementElement(IndirectObject obj)
D3DLinearMeasurementElement(Element relation, CreationOptions options)

[Visual Basic]
D3DLinearMeasurementElement()
D3DLinearMeasurementElement(atom As Atom, host As IndirectObject)
D3DLinearMeasurementElement(obj As IndirectObject)
D3DLinearMeasurementElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new D3DLinearMeasurementElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements D3DLinearMeasurementElement EntryAP Property

EntryAP Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "AP" entry of the 3d linear dimension measurement object.

Notes

Represents the "AP" entry of the 3d linear dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39b, page 63.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 327, page 684.


ZZ Elements D3DLinearMeasurementElement EntryA1 Property

EntryA1 Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "A1" entry of the 3d linear dimension measurement object.

Notes

Represents the "A1" entry of the 3d linear dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39b, page 63.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 327, page 684.


ZZ Elements D3DLinearMeasurementElement EntryN1 Property

EntryN1 Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "N1" entry of the 3d linear dimension measurement object.

Notes

Represents the "N1" entry of the 3d linear dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39b, page 63.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 327, page 684.


ZZ Elements D3DLinearMeasurementElement EntryA2 Property

EntryA2 Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "A2" entry of the 3d linear dimension measurement object.

Notes

Represents the "A2" entry of the 3d linear dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39b, page 63.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 327, page 684.


ZZ Elements D3DLinearMeasurementElement EntryN2 Property

EntryN2 Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "N2" entry of the 3d linear dimension measurement object.

Notes

Represents the "N2" entry of the 3d linear dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39b, page 63.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 327, page 684.


ZZ Elements D3DLinearMeasurementElement EntryTP Property

EntryTP Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "TP" entry of the 3d linear dimension measurement object.

Notes

Represents the "TP" entry of the 3d linear dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39b, page 63.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 327, page 684.


ZZ Elements D3DLinearMeasurementElement EntryTY Property

EntryTY Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "TY" entry of the 3d linear dimension measurement object.

Notes

Represents the "TY" entry of the 3d linear dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39b, page 63.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 327, page 685.


ZZ Elements D3DLinearMeasurementElement EntryTS Property

EntryTS Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "TS" entry of the 3d linear dimension measurement object.

Notes

Represents the "TS" entry of the 3d linear dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39b, page 63.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 327, page 685.


ZZ Elements D3DLinearMeasurementElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "C" entry of the 3d linear dimension measurement object.

Notes

Represents the "C" entry of the 3d linear dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39b, page 63.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 327, page 685.


ZZ Elements D3DLinearMeasurementElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "V" entry of the 3d linear dimension measurement object.

Notes

Represents the "V" entry of the 3d linear dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39b, page 63.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 327, page 685.


ZZ Elements D3DLinearMeasurementElement EntryU Property

EntryU Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "U" entry of the 3d linear dimension measurement object.

Notes

Represents the "U" entry of the 3d linear dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39b, page 63.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 327, page 685.


ZZ Elements D3DLinearMeasurementElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "P" entry of the 3d linear dimension measurement object.

Notes

Represents the "P" entry of the 3d linear dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39b, page 63.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 327, page 685.


ZZ Elements D3DLinearMeasurementElement EntryUT Property

EntryUT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "UT" entry of the 3d linear dimension measurement object.

Notes

Represents the "UT" entry of the 3d linear dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39b, page 63.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 327, page 685.


ZZ Elements D3DLinearMeasurementElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] ProjectionAnnotationElement [Visual Basic] ProjectionAnnotationElement | null | No | Represents the "S" entry of the 3d linear dimension measurement object.

Notes

Represents the "S" entry of the 3d linear dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a ProjectionAnnotationElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39b, page 63.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 327, page 685.


ZZ Elements D3DPerpendicularMeasurementElement

D3DPerpendicularMeasurementElement Class

This class represents the 3D perpendicular dimension measurement. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 328, page 686.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39c, page 65.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.D3DMeasurementElement
         WebSupergoo.ABCpdf12.Elements.D3DPerpendicularMeasurementElement

Method | Description
D3DPerpendicularMeasurementElement | Create a new D3DPerpendicularMeasurementElement.
 | inherited methods...

Property | Description
EntryAP | Represents the "AP" entry of the 3d perpendicular dimension measurement object.
EntryA1 | Represents the "A1" entry of the 3d perpendicular dimension measurement object.
EntryN1 | Represents the "N1" entry of the 3d perpendicular dimension measurement object.
EntryA2 | Represents the "A2" entry of the 3d perpendicular dimension measurement object.
EntryN2 | Represents the "N2" entry of the 3d perpendicular dimension measurement object.
EntryD1 | Represents the "D1" entry of the 3d perpendicular dimension measurement object.
EntryTP | Represents the "TP" entry of the 3d perpendicular dimension measurement object.
EntryTY | Represents the "TY" entry of the 3d perpendicular dimension measurement object.
EntryTS | Represents the "TS" entry of the 3d perpendicular dimension measurement object.
EntryC | Represents the "C" entry of the 3d perpendicular dimension measurement object.
EntryV | Represents the "V" entry of the 3d perpendicular dimension measurement object.
EntryU | Represents the "U" entry of the 3d perpendicular dimension measurement object.
EntryP | Represents the "P" entry of the 3d perpendicular dimension measurement object.
EntryUT | Represents the "UT" entry of the 3d perpendicular dimension measurement object.
EntryS | Represents the "S" entry of the 3d perpendicular dimension measurement object.
 | inherited properties...


ZZ Elements D3DPerpendicularMeasurementElement Constructor Function

D3DPerpendicularMeasurementElement Function

Create a new D3DPerpendicularMeasurementElement.

Syntax

[C#]
D3DPerpendicularMeasurementElement()
D3DPerpendicularMeasurementElement(Atom atom, IndirectObject host)
D3DPerpendicularMeasurementElement(IndirectObject obj)
D3DPerpendicularMeasurementElement(Element relation, CreationOptions options)

[Visual Basic]
D3DPerpendicularMeasurementElement()
D3DPerpendicularMeasurementElement(atom As Atom, host As IndirectObject)
D3DPerpendicularMeasurementElement(obj As IndirectObject)
D3DPerpendicularMeasurementElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new D3DPerpendicularMeasurementElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements D3DPerpendicularMeasurementElement EntryAP Property

EntryAP Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "AP" entry of the 3d perpendicular dimension measurement object.

Notes

Represents the "AP" entry of the 3d perpendicular dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39c, page 65.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 328, page 686.


ZZ Elements D3DPerpendicularMeasurementElement EntryA1 Property

EntryA1 Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "A1" entry of the 3d perpendicular dimension measurement object.

Notes

Represents the "A1" entry of the 3d perpendicular dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39c, page 65.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 328, page 686.


ZZ Elements D3DPerpendicularMeasurementElement EntryN1 Property

EntryN1 Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "N1" entry of the 3d perpendicular dimension measurement object.

Notes

Represents the "N1" entry of the 3d perpendicular dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39c, page 65.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 328, page 686.


ZZ Elements D3DPerpendicularMeasurementElement EntryA2 Property

EntryA2 Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "A2" entry of the 3d perpendicular dimension measurement object.

Notes

Represents the "A2" entry of the 3d perpendicular dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39c, page 65.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 328, page 687.


ZZ Elements D3DPerpendicularMeasurementElement EntryN2 Property

EntryN2 Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "N2" entry of the 3d perpendicular dimension measurement object.

Notes

Represents the "N2" entry of the 3d perpendicular dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39c, page 65.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 328, page 687.


ZZ Elements D3DPerpendicularMeasurementElement EntryD1 Property

EntryD1 Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "D1" entry of the 3d perpendicular dimension measurement object.

Notes

Represents the "D1" entry of the 3d perpendicular dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39c, page 65.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 328, page 687.


ZZ Elements D3DPerpendicularMeasurementElement EntryTP Property

EntryTP Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "TP" entry of the 3d perpendicular dimension measurement object.

Notes

Represents the "TP" entry of the 3d perpendicular dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39c, page 65.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 328, page 687.


ZZ Elements D3DPerpendicularMeasurementElement EntryTY Property

EntryTY Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "TY" entry of the 3d perpendicular dimension measurement object.

Notes

Represents the "TY" entry of the 3d perpendicular dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39c, page 65.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 328, page 687.


ZZ Elements D3DPerpendicularMeasurementElement EntryTS Property

EntryTS Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "TS" entry of the 3d perpendicular dimension measurement object.

Notes

Represents the "TS" entry of the 3d perpendicular dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39c, page 65.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 328, page 687.


ZZ Elements D3DPerpendicularMeasurementElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "C" entry of the 3d perpendicular dimension measurement object.

Notes

Represents the "C" entry of the 3d perpendicular dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39c, page 65.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 328, page 687.


ZZ Elements D3DPerpendicularMeasurementElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "V" entry of the 3d perpendicular dimension measurement object.

Notes

Represents the "V" entry of the 3d perpendicular dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39c, page 65.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 328, page 687.


ZZ Elements D3DPerpendicularMeasurementElement EntryU Property

EntryU Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "U" entry of the 3d perpendicular dimension measurement object.

Notes

Represents the "U" entry of the 3d perpendicular dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39c, page 65.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 328, page 687.


ZZ Elements D3DPerpendicularMeasurementElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "P" entry of the 3d perpendicular dimension measurement object.

Notes

Represents the "P" entry of the 3d perpendicular dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39c, page 65.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 328, page 687.


ZZ Elements D3DPerpendicularMeasurementElement EntryUT Property

EntryUT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "UT" entry of the 3d perpendicular dimension measurement object.

Notes

Represents the "UT" entry of the 3d perpendicular dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39c, page 65.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 328, page 687.


ZZ Elements D3DPerpendicularMeasurementElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] ProjectionAnnotationElement [Visual Basic] ProjectionAnnotationElement | null | No | Represents the "S" entry of the 3d perpendicular dimension measurement object.

Notes

Represents the "S" entry of the 3d perpendicular dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a ProjectionAnnotationElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39c, page 65.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 328, page 687.


ZZ Elements D3DAngularMeasurementElement

D3DAngularMeasurementElement Class

This class represents the 3D angular dimension measurement. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 329, page 689.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39d, page 68.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.D3DMeasurementElement
         WebSupergoo.ABCpdf12.Elements.D3DAngularMeasurementElement

Method | Description
D3DAngularMeasurementElement | Create a new D3DAngularMeasurementElement.
 | inherited methods...

Property | Description
EntryAP | Represents the "AP" entry of the 3d angular dimension measurement object.
EntryA1 | Represents the "A1" entry of the 3d angular dimension measurement object.
EntryD1 | Represents the "D1" entry of the 3d angular dimension measurement object.
EntryN1 | Represents the "N1" entry of the 3d angular dimension measurement object.
EntryA2 | Represents the "A2" entry of the 3d angular dimension measurement object.
EntryD2 | Represents the "D2" entry of the 3d angular dimension measurement object.
EntryN2 | Represents the "N2" entry of the 3d angular dimension measurement object.
EntryTP | Represents the "TP" entry of the 3d angular dimension measurement object.
EntryTX | Represents the "TX" entry of the 3d angular dimension measurement object.
EntryTY | Represents the "TY" entry of the 3d angular dimension measurement object.
EntryTS | Represents the "TS" entry of the 3d angular dimension measurement object.
EntryC | Represents the "C" entry of the 3d angular dimension measurement object.
EntryV | Represents the "V" entry of the 3d angular dimension measurement object.
EntryP | Represents the "P" entry of the 3d angular dimension measurement object.
EntryUT | Represents the "UT" entry of the 3d angular dimension measurement object.
EntryDR | Represents the "DR" entry of the 3d angular dimension measurement object.
EntryS | Represents the "S" entry of the 3d angular dimension measurement object.
 | inherited properties...


ZZ Elements D3DAngularMeasurementElement Constructor Function

D3DAngularMeasurementElement Function

Create a new D3DAngularMeasurementElement.

Syntax

[C#]
D3DAngularMeasurementElement()
D3DAngularMeasurementElement(Atom atom, IndirectObject host)
D3DAngularMeasurementElement(IndirectObject obj)
D3DAngularMeasurementElement(Element relation, CreationOptions options)

[Visual Basic]
D3DAngularMeasurementElement()
D3DAngularMeasurementElement(atom As Atom, host As IndirectObject)
D3DAngularMeasurementElement(obj As IndirectObject)
D3DAngularMeasurementElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new D3DAngularMeasurementElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements D3DAngularMeasurementElement EntryAP Property

EntryAP Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "AP" entry of the 3d angular dimension measurement object.

Notes

Represents the "AP" entry of the 3d angular dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39d, page 68.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 329, page 689.


ZZ Elements D3DAngularMeasurementElement EntryA1 Property

EntryA1 Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "A1" entry of the 3d angular dimension measurement object.

Notes

Represents the "A1" entry of the 3d angular dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39d, page 68.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 329, page 689.


ZZ Elements D3DAngularMeasurementElement EntryD1 Property

EntryD1 Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "D1" entry of the 3d angular dimension measurement object.

Notes

Represents the "D1" entry of the 3d angular dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39d, page 68.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 329, page 689.


ZZ Elements D3DAngularMeasurementElement EntryN1 Property

EntryN1 Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "N1" entry of the 3d angular dimension measurement object.

Notes

Represents the "N1" entry of the 3d angular dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39d, page 68.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 329, page 689.


ZZ Elements D3DAngularMeasurementElement EntryA2 Property

EntryA2 Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "A2" entry of the 3d angular dimension measurement object.

Notes

Represents the "A2" entry of the 3d angular dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39d, page 68.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 329, page 689.


ZZ Elements D3DAngularMeasurementElement EntryD2 Property

EntryD2 Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "D2" entry of the 3d angular dimension measurement object.

Notes

Represents the "D2" entry of the 3d angular dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39d, page 68.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 329, page 689.


ZZ Elements D3DAngularMeasurementElement EntryN2 Property

EntryN2 Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "N2" entry of the 3d angular dimension measurement object.

Notes

Represents the "N2" entry of the 3d angular dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39d, page 68.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 329, page 689.


ZZ Elements D3DAngularMeasurementElement EntryTP Property

EntryTP Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "TP" entry of the 3d angular dimension measurement object.

Notes

Represents the "TP" entry of the 3d angular dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39d, page 68.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 329, page 689.


ZZ Elements D3DAngularMeasurementElement EntryTX Property

EntryTX Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "TX" entry of the 3d angular dimension measurement object.

Notes

Represents the "TX" entry of the 3d angular dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39d, page 68.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 329, page 689.


ZZ Elements D3DAngularMeasurementElement EntryTY Property

EntryTY Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "TY" entry of the 3d angular dimension measurement object.

Notes

Represents the "TY" entry of the 3d angular dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39d, page 68.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 329, page 689.


ZZ Elements D3DAngularMeasurementElement EntryTS Property

EntryTS Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "TS" entry of the 3d angular dimension measurement object.

Notes

Represents the "TS" entry of the 3d angular dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 12 if no value has been provided.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39d, page 68.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 329, page 690.


ZZ Elements D3DAngularMeasurementElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "C" entry of the 3d angular dimension measurement object.

Notes

Represents the "C" entry of the 3d angular dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39d, page 68.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 329, page 690.


ZZ Elements D3DAngularMeasurementElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "V" entry of the 3d angular dimension measurement object.

Notes

Represents the "V" entry of the 3d angular dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39d, page 68.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 329, page 690.


ZZ Elements D3DAngularMeasurementElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "P" entry of the 3d angular dimension measurement object.

Notes

Represents the "P" entry of the 3d angular dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39d, page 68.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 329, page 690.


ZZ Elements D3DAngularMeasurementElement EntryUT Property

EntryUT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "UT" entry of the 3d angular dimension measurement object.

Notes

Represents the "UT" entry of the 3d angular dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39d, page 68.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 329, page 690.


ZZ Elements D3DAngularMeasurementElement EntryDR Property

EntryDR Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "DR" entry of the 3d angular dimension measurement object.

Notes

Represents the "DR" entry of the 3d angular dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of true if no value has been provided.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39d, page 68.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 329, page 690.


ZZ Elements D3DAngularMeasurementElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] ProjectionAnnotationElement [Visual Basic] ProjectionAnnotationElement | null | No | Represents the "S" entry of the 3d angular dimension measurement object.

Notes

Represents the "S" entry of the 3d angular dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a ProjectionAnnotationElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39d, page 68.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 329, page 690.


ZZ Elements D3DRadialMeasurementElement

D3DRadialMeasurementElement Class

This class represents the 3D radial dimension measurement. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 692.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.D3DMeasurementElement
         WebSupergoo.ABCpdf12.Elements.D3DRadialMeasurementElement

Method | Description
D3DRadialMeasurementElement | Create a new D3DRadialMeasurementElement.
 | inherited methods...

Property | Description
EntryAP | Represents the "AP" entry of the 3d radial dimension measurement object.
EntryA1 | Represents the "A1" entry of the 3d radial dimension measurement object.
EntryA2 | Represents the "A2" entry of the 3d radial dimension measurement object.
EntryN2 | Represents the "N2" entry of the 3d radial dimension measurement object.
EntryA3 | Represents the "A3" entry of the 3d radial dimension measurement object.
EntryA4 | Represents the "A4" entry of the 3d radial dimension measurement object.
EntryTP | Represents the "TP" entry of the 3d radial dimension measurement object.
EntryTX | Represents the "TX" entry of the 3d radial dimension measurement object.
EntryTY | Represents the "TY" entry of the 3d radial dimension measurement object.
EntryEL | Represents the "EL" entry of the 3d radial dimension measurement object.
EntryTS | Represents the "TS" entry of the 3d radial dimension measurement object.
EntryC | Represents the "C" entry of the 3d radial dimension measurement object.
EntryV | Represents the "V" entry of the 3d radial dimension measurement object.
EntryU | Represents the "U" entry of the 3d radial dimension measurement object.
EntryP | Represents the "P" entry of the 3d radial dimension measurement object.
EntryUT | Represents the "UT" entry of the 3d radial dimension measurement object.
EntrySC | Represents the "SC" entry of the 3d radial dimension measurement object.
EntryR | Represents the "R" entry of the 3d radial dimension measurement object.
EntryS | Represents the "S" entry of the 3d radial dimension measurement object.
 | inherited properties...


ZZ Elements D3DRadialMeasurementElement Constructor Function

D3DRadialMeasurementElement Function

Create a new D3DRadialMeasurementElement.

Syntax

[C#]
D3DRadialMeasurementElement()
D3DRadialMeasurementElement(Atom atom, IndirectObject host)
D3DRadialMeasurementElement(IndirectObject obj)
D3DRadialMeasurementElement(Element relation, CreationOptions options)

[Visual Basic]
D3DRadialMeasurementElement()
D3DRadialMeasurementElement(atom As Atom, host As IndirectObject)
D3DRadialMeasurementElement(obj As IndirectObject)
D3DRadialMeasurementElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new D3DRadialMeasurementElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements D3DRadialMeasurementElement EntryAP Property

EntryAP Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "AP" entry of the 3d radial dimension measurement object.

Notes

Represents the "AP" entry of the 3d radial dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 692.


ZZ Elements D3DRadialMeasurementElement EntryA1 Property

EntryA1 Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "A1" entry of the 3d radial dimension measurement object.

Notes

Represents the "A1" entry of the 3d radial dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 692.


ZZ Elements D3DRadialMeasurementElement EntryA2 Property

EntryA2 Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "A2" entry of the 3d radial dimension measurement object.

Notes

Represents the "A2" entry of the 3d radial dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 692.


ZZ Elements D3DRadialMeasurementElement EntryN2 Property

EntryN2 Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "N2" entry of the 3d radial dimension measurement object.

Notes

Represents the "N2" entry of the 3d radial dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 692.


ZZ Elements D3DRadialMeasurementElement EntryA3 Property

EntryA3 Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "A3" entry of the 3d radial dimension measurement object.

Notes

Represents the "A3" entry of the 3d radial dimension measurement object.

It is defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 692.


ZZ Elements D3DRadialMeasurementElement EntryA4 Property

EntryA4 Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "A4" entry of the 3d radial dimension measurement object.

Notes

Represents the "A4" entry of the 3d radial dimension measurement object.

It is defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 692.


ZZ Elements D3DRadialMeasurementElement EntryTP Property

EntryTP Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "TP" entry of the 3d radial dimension measurement object.

Notes

Represents the "TP" entry of the 3d radial dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 692.


ZZ Elements D3DRadialMeasurementElement EntryTX Property

EntryTX Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "TX" entry of the 3d radial dimension measurement object.

Notes

Represents the "TX" entry of the 3d radial dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 692.


ZZ Elements D3DRadialMeasurementElement EntryTY Property

EntryTY Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "TY" entry of the 3d radial dimension measurement object.

Notes

Represents the "TY" entry of the 3d radial dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 692.


ZZ Elements D3DRadialMeasurementElement EntryEL Property

EntryEL Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "EL" entry of the 3d radial dimension measurement object.

Notes

Represents the "EL" entry of the 3d radial dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 60 if no value has been provided.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 692.


ZZ Elements D3DRadialMeasurementElement EntryTS Property

EntryTS Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "TS" entry of the 3d radial dimension measurement object.

Notes

Represents the "TS" entry of the 3d radial dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 12 if no value has been provided.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 692.


ZZ Elements D3DRadialMeasurementElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "C" entry of the 3d radial dimension measurement object.

Notes

Represents the "C" entry of the 3d radial dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 692.


ZZ Elements D3DRadialMeasurementElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "V" entry of the 3d radial dimension measurement object.

Notes

Represents the "V" entry of the 3d radial dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 692.


ZZ Elements D3DRadialMeasurementElement EntryU Property

EntryU Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "U" entry of the 3d radial dimension measurement object.

Notes

Represents the "U" entry of the 3d radial dimension measurement object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 693.


ZZ Elements D3DRadialMeasurementElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "P" entry of the 3d radial dimension measurement object.

Notes

Represents the "P" entry of the 3d radial dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 693.


ZZ Elements D3DRadialMeasurementElement EntryUT Property

EntryUT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "UT" entry of the 3d radial dimension measurement object.

Notes

Represents the "UT" entry of the 3d radial dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 693.


ZZ Elements D3DRadialMeasurementElement EntrySC Property

EntrySC Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "SC" entry of the 3d radial dimension measurement object.

Notes

Represents the "SC" entry of the 3d radial dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 693.


ZZ Elements D3DRadialMeasurementElement EntryR Property

EntryR Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "R" entry of the 3d radial dimension measurement object.

Notes

Represents the "R" entry of the 3d radial dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of true if no value has been provided.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 693.


ZZ Elements D3DRadialMeasurementElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] ProjectionAnnotationElement [Visual Basic] ProjectionAnnotationElement | null | No | Represents the "S" entry of the 3d radial dimension measurement object.

Notes

Represents the "S" entry of the 3d radial dimension measurement object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a ProjectionAnnotationElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39e, page 71.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 330, page 693.


ZZ Elements D3DCommentNoteElement

D3DCommentNoteElement Class

This class represents the 3D comment note. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 331, page 694.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39f, page 74.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.D3DMeasurementElement
         WebSupergoo.ABCpdf12.Elements.D3DCommentNoteElement

Method | Description
D3DCommentNoteElement | Create a new D3DCommentNoteElement.
 | inherited methods...

Property | Description
EntryA1 | Represents the "A1" entry of the 3d comment note object.
EntryN1 | Represents the "N1" entry of the 3d comment note object.
EntryTP | Represents the "TP" entry of the 3d comment note object.
EntryTB | Represents the "TB" entry of the 3d comment note object.
EntryTS | Represents the "TS" entry of the 3d comment note object.
EntryC | Represents the "C" entry of the 3d comment note object.
EntryUT | Represents the "UT" entry of the 3d comment note object.
EntryS | Represents the "S" entry of the 3d comment note object.
 | inherited properties...


ZZ Elements D3DCommentNoteElement Constructor Function

D3DCommentNoteElement Function

Create a new D3DCommentNoteElement.

Syntax

[C#]
D3DCommentNoteElement()
D3DCommentNoteElement(Atom atom, IndirectObject host)
D3DCommentNoteElement(IndirectObject obj)
D3DCommentNoteElement(Element relation, CreationOptions options)

[Visual Basic]
D3DCommentNoteElement()
D3DCommentNoteElement(atom As Atom, host As IndirectObject)
D3DCommentNoteElement(obj As IndirectObject)
D3DCommentNoteElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new D3DCommentNoteElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements D3DCommentNoteElement EntryA1 Property

EntryA1 Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "A1" entry of the 3d comment note object.

Notes

Represents the "A1" entry of the 3d comment note object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39f, page 74.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 331, page 694.


ZZ Elements D3DCommentNoteElement EntryN1 Property

EntryN1 Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "N1" entry of the 3d comment note object.

Notes

Represents the "N1" entry of the 3d comment note object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39f, page 74.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 331, page 694.


ZZ Elements D3DCommentNoteElement EntryTP Property

EntryTP Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "TP" entry of the 3d comment note object.

Notes

Represents the "TP" entry of the 3d comment note object.

It is a required entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39f, page 74.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 331, page 694.


ZZ Elements D3DCommentNoteElement EntryTB Property

EntryTB Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "TB" entry of the 3d comment note object.

Notes

Represents the "TB" entry of the 3d comment note object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains integers, representing PDF numeric objects.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39f, page 74.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 331, page 695.


ZZ Elements D3DCommentNoteElement EntryTS Property

EntryTS Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "TS" entry of the 3d comment note object.

Notes

Represents the "TS" entry of the 3d comment note object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 12 if no value has been provided.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39f, page 74.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 331, page 695.


ZZ Elements D3DCommentNoteElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "C" entry of the 3d comment note object.

Notes

Represents the "C" entry of the 3d comment note object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39f, page 74.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 331, page 695.


ZZ Elements D3DCommentNoteElement EntryUT Property

EntryUT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "UT" entry of the 3d comment note object.

Notes

Represents the "UT" entry of the 3d comment note object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a string representing a PDF string object.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39f, page 74.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 331, page 695.


ZZ Elements D3DCommentNoteElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] ProjectionAnnotationElement [Visual Basic] ProjectionAnnotationElement | null | No | Represents the "S" entry of the 3d comment note object.

Notes

Represents the "S" entry of the 3d comment note object.

It is an optional entry defined as part of the PDF 1.7 Extension Level 3 specification.

It contains a ProjectionAnnotationElement.

For definitive details see:.

Adobe Supplement to the ISO 32000, BaseVersion: 1.7, ExtensionLevel: 3; Table: 9.39f, page 74.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 331, page 695.


ZZ Elements DocumentPartElement

DocumentPartElement Class

This class represents the dpart dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 409, page 829.

This class is always an indirect object because DocumentPartGoToActionElement.EntryDp, DpartElement.EntryDParts, DpartElement.EntryParent, DpartrootElement.EntryDPartRootNode and PageObjectElement.EntryDPart require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.DocumentPartElement

Method | Description
DocumentPartElement | Create a new DocumentPartElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the dpart dictionary object.
EntryParent | Represents the "Parent" entry of the dpart dictionary object.
EntryDParts | Represents the "DParts" entry of the dpart dictionary object.
EntryStart | Represents the "Start" entry of the dpart dictionary object.
EntryEnd | Represents the "End" entry of the dpart dictionary object.
EntryDPM | Represents the "DPM" entry of the dpart dictionary object.
EntryAF | Represents the "AF" entry of the dpart dictionary object.
 | inherited properties...


ZZ Elements DocumentPartElement Constructor Function

DocumentPartElement Function

Create a new DocumentPartElement.

Syntax

[C#]
DocumentPartElement()
DocumentPartElement(Atom atom, IndirectObject host)
DocumentPartElement(IndirectObject obj)
DocumentPartElement(Element relation, CreationOptions options)

[Visual Basic]
DocumentPartElement()
DocumentPartElement(atom As Atom, host As IndirectObject)
DocumentPartElement(obj As IndirectObject)
DocumentPartElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new DocumentPartElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements DocumentPartElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the dpart dictionary object.

Notes

Represents the "Type" entry of the dpart dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "DPart".

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 409, page 829.


ZZ Elements DocumentPartElement EntryParent Property

EntryParent Property

Type | Default Value | Read Only | Description
[C#] DocumentPartElement [Visual Basic] DocumentPartElement | null | No | Represents the "Parent" entry of the dpart dictionary object.

Notes

Represents the "Parent" entry of the dpart dictionary object.

It is a required entry defined as part of the PDF 2.0 specification.

It contains a DocumentPartElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 409, page 829.


ZZ Elements DocumentPartElement EntryDParts Property

EntryDParts Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "DParts" entry of the dpart dictionary object.

Notes

Represents the "DParts" entry of the dpart dictionary object.

It is defined as part of the PDF 2.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 409, page 829.


ZZ Elements DocumentPartElement EntryStart Property

EntryStart Property

Type | Default Value | Read Only | Description
[C#] PageObjectElement [Visual Basic] PageObjectElement | null | No | Represents the "Start" entry of the dpart dictionary object.

Notes

Represents the "Start" entry of the dpart dictionary object.

It is defined as part of the PDF 2.0 specification.

It contains a PageObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 409, page 830.


ZZ Elements DocumentPartElement EntryEnd Property

EntryEnd Property

Type | Default Value | Read Only | Description
[C#] PageObjectElement [Visual Basic] PageObjectElement | null | No | Represents the "End" entry of the dpart dictionary object.

Notes

Represents the "End" entry of the dpart dictionary object.

It is defined as part of the PDF 2.0 specification.

It contains a PageObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 409, page 830.


ZZ Elements DocumentPartElement EntryDPM Property

EntryDPM Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "DPM" entry of the dpart dictionary object.

Notes

Represents the "DPM" entry of the dpart dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 409, page 830.


ZZ Elements DocumentPartElement EntryAF Property

EntryAF Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FileSpecificationElement> [Visual Basic] ArrayElement<FileSpecificationElement> | null | No | Represents the "AF" entry of the dpart dictionary object.

Notes

Represents the "AF" entry of the dpart dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains FileSpecificationElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 409, page 830.


ZZ Elements DocumentPartRootElement

DocumentPartRootElement Class

This class represents the dpartroot dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 408, page 829.

This class is always an indirect object because DpartElement.EntryParent requires it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.DocumentPartRootElement

Method | Description
DocumentPartRootElement | Create a new DocumentPartRootElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the dpartroot dictionary object.
EntryDPartRootNode | Represents the "DPartRootNode" entry of the dpartroot dictionary object.
EntryRecordLevel | Represents the "RecordLevel" entry of the dpartroot dictionary object.
EntryNodeNameList | Represents the "NodeNameList" entry of the dpartroot dictionary object.
 | inherited properties...


ZZ Elements DocumentPartRootElement Constructor Function

DocumentPartRootElement Function

Create a new DocumentPartRootElement.

Syntax

[C#]
DocumentPartRootElement()
DocumentPartRootElement(Atom atom, IndirectObject host)
DocumentPartRootElement(IndirectObject obj)
DocumentPartRootElement(Element relation, CreationOptions options)

[Visual Basic]
DocumentPartRootElement()
DocumentPartRootElement(atom As Atom, host As IndirectObject)
DocumentPartRootElement(obj As IndirectObject)
DocumentPartRootElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new DocumentPartRootElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements DocumentPartRootElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the dpartroot dictionary object.

Notes

Represents the "Type" entry of the dpartroot dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "DPartRoot".

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 408, page 829.


ZZ Elements DocumentPartRootElement EntryDPartRootNode Property

EntryDPartRootNode Property

Type | Default Value | Read Only | Description
[C#] DocumentPartElement [Visual Basic] DocumentPartElement | null | No | Represents the "DPartRootNode" entry of the dpartroot dictionary object.

Notes

Represents the "DPartRootNode" entry of the dpartroot dictionary object.

It is a required entry defined as part of the PDF 2.0 specification.

It contains a DocumentPartElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 408, page 829.


ZZ Elements DocumentPartRootElement EntryRecordLevel Property

EntryRecordLevel Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "RecordLevel" entry of the dpartroot dictionary object.

Notes

Represents the "RecordLevel" entry of the dpartroot dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 408, page 829.


ZZ Elements DocumentPartRootElement EntryNodeNameList Property

EntryNodeNameList Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "NodeNameList" entry of the dpartroot dictionary object.

Notes

Represents the "NodeNameList" entry of the dpartroot dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains strings, representing PDF name objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 408, page 829.


ZZ Elements NamespaceElement

NamespaceElement Class

This class represents the namespace dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 356, page 725.

This class is always an indirect object because AttributeObjectElement.EntryNS, NamespaceElement.EntryRoleMapNS and StructureElementElement.EntryNS require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.NamespaceElement

Method | Description
NamespaceElement | Create a new NamespaceElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the namespace dictionary object.
EntryNS | Represents the "NS" entry of the namespace dictionary object.
EntrySchema | Represents the "Schema" entry of the namespace dictionary object.
EntryRoleMapNS | Represents the "RoleMapNS" entry of the namespace dictionary object.
 | inherited properties...


ZZ Elements NamespaceElement Constructor Function

NamespaceElement Function

Create a new NamespaceElement.

Syntax

[C#]
NamespaceElement()
NamespaceElement(Atom atom, IndirectObject host)
NamespaceElement(IndirectObject obj)
NamespaceElement(Element relation, CreationOptions options)

[Visual Basic]
NamespaceElement()
NamespaceElement(atom As Atom, host As IndirectObject)
NamespaceElement(obj As IndirectObject)
NamespaceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new NamespaceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements NamespaceElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the namespace dictionary object.

Notes

Represents the "Type" entry of the namespace dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Namespace".

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 356, page 725.


ZZ Elements NamespaceElement EntryNS Property

EntryNS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "NS" entry of the namespace dictionary object.

Notes

Represents the "NS" entry of the namespace dictionary object.

It is a required entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 356, page 725.


ZZ Elements NamespaceElement EntrySchema Property

EntrySchema Property

Type | Default Value | Read Only | Description
[C#] FileSpecificationElement [Visual Basic] FileSpecificationElement | null | No | Represents the "Schema" entry of the namespace dictionary object.

Notes

Represents the "Schema" entry of the namespace dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a FileSpecificationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 356, page 725.


ZZ Elements NamespaceElement EntryRoleMapNS Property

EntryRoleMapNS Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "RoleMapNS" entry of the namespace dictionary object.

Notes

Represents the "RoleMapNS" entry of the namespace dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 356, page 725.


ZZ Elements OutputProfilesElement

OutputProfilesElement Class

This class represents the destoutputprofileref dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 402, page 817.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OutputProfilesElement

Method | Description
OutputProfilesElement | Create a new OutputProfilesElement.
 | inherited methods...

Property | Description
EntryCheckSum | Represents the "CheckSum" entry of the destoutputprofileref dictionary object.
EntryColorantTable | Represents the "ColorantTable" entry of the destoutputprofileref dictionary object.
EntryICCVersion | Represents the "ICCVersion" entry of the destoutputprofileref dictionary object.
EntryProfileCS | Represents the "ProfileCS" entry of the destoutputprofileref dictionary object.
EntryProfileName | Represents the "ProfileName" entry of the destoutputprofileref dictionary object.
EntryURLs | Represents the "URLs" entry of the destoutputprofileref dictionary object.
 | inherited properties...


ZZ Elements OutputProfilesElement Constructor Function

OutputProfilesElement Function

Create a new OutputProfilesElement.

Syntax

[C#]
OutputProfilesElement()
OutputProfilesElement(Atom atom, IndirectObject host)
OutputProfilesElement(IndirectObject obj)
OutputProfilesElement(Element relation, CreationOptions options)

[Visual Basic]
OutputProfilesElement()
OutputProfilesElement(atom As Atom, host As IndirectObject)
OutputProfilesElement(obj As IndirectObject)
OutputProfilesElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OutputProfilesElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OutputProfilesElement EntryCheckSum Property

EntryCheckSum Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "CheckSum" entry of the destoutputprofileref dictionary object.

Notes

Represents the "CheckSum" entry of the destoutputprofileref dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 402, page 817.


ZZ Elements OutputProfilesElement EntryColorantTable Property

EntryColorantTable Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "ColorantTable" entry of the destoutputprofileref dictionary object.

Notes

Represents the "ColorantTable" entry of the destoutputprofileref dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF name objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 402, page 817.


ZZ Elements OutputProfilesElement EntryICCVersion Property

EntryICCVersion Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ICCVersion" entry of the destoutputprofileref dictionary object.

Notes

Represents the "ICCVersion" entry of the destoutputprofileref dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 402, page 817.


ZZ Elements OutputProfilesElement EntryProfileCS Property

EntryProfileCS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ProfileCS" entry of the destoutputprofileref dictionary object.

Notes

Represents the "ProfileCS" entry of the destoutputprofileref dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 402, page 817.


ZZ Elements OutputProfilesElement EntryProfileName Property

EntryProfileName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ProfileName" entry of the destoutputprofileref dictionary object.

Notes

Represents the "ProfileName" entry of the destoutputprofileref dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 402, page 817.


ZZ Elements OutputProfilesElement EntryURLs Property

EntryURLs Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FileSpecificationElement> [Visual Basic] ArrayElement<FileSpecificationElement> | null | No | Represents the "URLs" entry of the destoutputprofileref dictionary object.

Notes

Represents the "URLs" entry of the destoutputprofileref dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an array which contains FileSpecificationElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 402, page 817.


ZZ Elements MetadataStreamElement

MetadataStreamElement Class

This class represents the metadata stream. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 315, page 549.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 347, page 711.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MetadataStreamElement

Method | Description
MetadataStreamElement | Create a new MetadataStreamElement.
 | inherited methods...

Property | Description
StreamElement | The StreamElement associated with this class.
EntryType | Represents the "Type" entry of the metadata stream object.
EntrySubtype | Represents the "Subtype" entry of the metadata stream object.
 | inherited properties...


ZZ Elements MetadataStreamElement Constructor Function

MetadataStreamElement Function

Create a new MetadataStreamElement.

Syntax

[C#]
MetadataStreamElement()
MetadataStreamElement(Atom atom, IndirectObject host)
MetadataStreamElement(IndirectObject obj)
MetadataStreamElement(Element relation, CreationOptions options)

[Visual Basic]
MetadataStreamElement()
MetadataStreamElement(atom As Atom, host As IndirectObject)
MetadataStreamElement(obj As IndirectObject)
MetadataStreamElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MetadataStreamElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MetadataStreamElement StreamElement Property

StreamElement Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | Yes | The StreamElement associated with this class.

Notes

The StreamElement associated with this class.


ZZ Elements MetadataStreamElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the metadata stream object.

Notes

Represents the "Type" entry of the metadata stream object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "Metadata".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 315, page 549.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 347, page 711.


ZZ Elements MetadataStreamElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the metadata stream object.

Notes

Represents the "Subtype" entry of the metadata stream object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "XML".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 315, page 549.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 347, page 711.


ZZ Elements DocumentInformationElement

DocumentInformationElement Class

This class represents the document information dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 317, page 550.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 349, page 712.

This class is always an indirect object because CrossReferenceStreamElement.EntryInfo and FileTrailerElement.EntryInfo require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.DocumentInformationElement

Method | Description
DocumentInformationElement | Create a new DocumentInformationElement.
 | inherited methods...

Property | Description
EntryTitle | Represents the "Title" entry of the document information dictionary object.
EntryAuthor | Represents the "Author" entry of the document information dictionary object.
EntrySubject | Represents the "Subject" entry of the document information dictionary object.
EntryKeywords | Represents the "Keywords" entry of the document information dictionary object.
EntryCreator | Represents the "Creator" entry of the document information dictionary object.
EntryProducer | Represents the "Producer" entry of the document information dictionary object.
EntryCreationDate | Represents the "CreationDate" entry of the document information dictionary object.
EntryModDate | Represents the "ModDate" entry of the document information dictionary object.
EntryTrapped | Represents the "Trapped" entry of the document information dictionary object.
 | inherited properties...


ZZ Elements DocumentInformationElement Constructor Function

DocumentInformationElement Function

Create a new DocumentInformationElement.

Syntax

[C#]
DocumentInformationElement()
DocumentInformationElement(Atom atom, IndirectObject host)
DocumentInformationElement(IndirectObject obj)
DocumentInformationElement(Element relation, CreationOptions options)

[Visual Basic]
DocumentInformationElement()
DocumentInformationElement(atom As Atom, host As IndirectObject)
DocumentInformationElement(obj As IndirectObject)
DocumentInformationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new DocumentInformationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements DocumentInformationElement EntryTitle Property

EntryTitle Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Title" entry of the document information dictionary object.

Notes

Represents the "Title" entry of the document information dictionary object.

It is an optional entry defined as part of the PDF 1.1 specification. It was deprecated in PDF 2.0.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 317, page 550.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 349, page 712.


ZZ Elements DocumentInformationElement EntryAuthor Property

EntryAuthor Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Author" entry of the document information dictionary object.

Notes

Represents the "Author" entry of the document information dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 317, page 550.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 349, page 712.


ZZ Elements DocumentInformationElement EntrySubject Property

EntrySubject Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subject" entry of the document information dictionary object.

Notes

Represents the "Subject" entry of the document information dictionary object.

It is an optional entry defined as part of the PDF 1.1 specification. It was deprecated in PDF 2.0.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 317, page 550.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 349, page 712.


ZZ Elements DocumentInformationElement EntryKeywords Property

EntryKeywords Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Keywords" entry of the document information dictionary object.

Notes

Represents the "Keywords" entry of the document information dictionary object.

It is an optional entry defined as part of the PDF 1.1 specification. It was deprecated in PDF 2.0.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 317, page 550.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 349, page 712.


ZZ Elements DocumentInformationElement EntryCreator Property

EntryCreator Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Creator" entry of the document information dictionary object.

Notes

Represents the "Creator" entry of the document information dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 317, page 550.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 349, page 712.


ZZ Elements DocumentInformationElement EntryProducer Property

EntryProducer Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Producer" entry of the document information dictionary object.

Notes

Represents the "Producer" entry of the document information dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 317, page 550.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 349, page 712.


ZZ Elements DocumentInformationElement EntryCreationDate Property

EntryCreationDate Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "CreationDate" entry of the document information dictionary object.

Notes

Represents the "CreationDate" entry of the document information dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a date string. For details see the StringAtom.DateToString and StringAtom.StringToDate functions.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 317, page 550.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 349, page 712.


ZZ Elements DocumentInformationElement EntryModDate Property

EntryModDate Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ModDate" entry of the document information dictionary object.

Notes

Represents the "ModDate" entry of the document information dictionary object.

It is an optional entry defined as part of the PDF 1.1 specification.

It contains a string representing a PDF string object.

This is encoded as a date string. For details see the StringAtom.DateToString and StringAtom.StringToDate functions.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 317, page 550.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 349, page 713.


ZZ Elements DocumentInformationElement EntryTrapped Property

EntryTrapped Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Trapped" entry of the document information dictionary object.

Notes

Represents the "Trapped" entry of the document information dictionary object.

It is an optional entry defined as part of the PDF 1.3 specification. It was deprecated in PDF 2.0.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Unknown" if no value has been provided.

This item may take one of the following valid values:.

  • True
  • False
  • Unknown

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 317, page 550.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 349, page 713.


ZZ Elements PagePieceDataElement

PagePieceDataElement Class

This class represents the page-piece data dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 319, page 552.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 351, page 715.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.PagePieceDataElement

Method | Description
PagePieceDataElement | Create a new PagePieceDataElement.
 | inherited methods...

Property | Description
EntryLastModified | Represents the "LastModified" entry of the page-piece data dictionary object.
EntryPrivate | Represents the "Private" entry of the page-piece data dictionary object.
 | inherited properties...


ZZ Elements PagePieceDataElement Constructor Function

PagePieceDataElement Function

Create a new PagePieceDataElement.

Syntax

[C#]
PagePieceDataElement()
PagePieceDataElement(Atom atom, IndirectObject host)
PagePieceDataElement(IndirectObject obj)
PagePieceDataElement(Element relation, CreationOptions options)

[Visual Basic]
PagePieceDataElement()
PagePieceDataElement(atom As Atom, host As IndirectObject)
PagePieceDataElement(obj As IndirectObject)
PagePieceDataElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new PagePieceDataElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements PagePieceDataElement EntryLastModified Property

EntryLastModified Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "LastModified" entry of the page-piece data dictionary object.

Notes

Represents the "LastModified" entry of the page-piece data dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a date string. For details see the StringAtom.DateToString and StringAtom.StringToDate functions.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 319, page 552.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 351, page 715.


ZZ Elements PagePieceDataElement EntryPrivate Property

EntryPrivate Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Private" entry of the page-piece data dictionary object.

Notes

Represents the "Private" entry of the page-piece data dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

The specification defines this property as being of any type. So any type of atom or data content is valid.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 319, page 552.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 351, page 715.


ZZ Elements MarkInformationElement

MarkInformationElement Class

This class represents the mark information dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 321, page 556.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 353, page 719.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MarkInformationElement

Method | Description
MarkInformationElement | Create a new MarkInformationElement.
 | inherited methods...

Property | Description
EntryMarked | Represents the "Marked" entry of the mark information dictionary object.
EntryUserProperties | Represents the "UserProperties" entry of the mark information dictionary object.
EntrySuspects | Represents the "Suspects" entry of the mark information dictionary object.
 | inherited properties...


ZZ Elements MarkInformationElement Constructor Function

MarkInformationElement Function

Create a new MarkInformationElement.

Syntax

[C#]
MarkInformationElement()
MarkInformationElement(Atom atom, IndirectObject host)
MarkInformationElement(IndirectObject obj)
MarkInformationElement(Element relation, CreationOptions options)

[Visual Basic]
MarkInformationElement()
MarkInformationElement(atom As Atom, host As IndirectObject)
MarkInformationElement(obj As IndirectObject)
MarkInformationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MarkInformationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MarkInformationElement EntryMarked Property

EntryMarked Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "Marked" entry of the mark information dictionary object.

Notes

Represents the "Marked" entry of the mark information dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 321, page 556.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 353, page 719.


ZZ Elements MarkInformationElement EntryUserProperties Property

EntryUserProperties Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "UserProperties" entry of the mark information dictionary object.

Notes

Represents the "UserProperties" entry of the mark information dictionary object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 321, page 556.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 353, page 719.


ZZ Elements MarkInformationElement EntrySuspects Property

EntrySuspects Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "Suspects" entry of the mark information dictionary object.

Notes

Represents the "Suspects" entry of the mark information dictionary object.

It is an optional entry defined as part of the PDF 1.6 specification. It was deprecated in PDF 2.0.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 321, page 556.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 353, page 719.


ZZ Elements StructureTreeRootElement

StructureTreeRootElement Class

This class represents the structure tree root. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 322, page 557.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 354, page 719.

This class is always an indirect object because OutlineItemElement.EntrySE and StructureElementElement.EntryP require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.StructureTreeRootElement

Method | Description
StructureTreeRootElement | Create a new StructureTreeRootElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the structure tree root object.
EntryK | Represents the "K" entry of the structure tree root object.
EntryIDTree | Represents the "IDTree" entry of the structure tree root object.
EntryParentTree | Represents the "ParentTree" entry of the structure tree root object.
EntryParentTreeNextKey | Represents the "ParentTreeNextKey" entry of the structure tree root object.
EntryRoleMap | Represents the "RoleMap" entry of the structure tree root object.
EntryClassMap | Represents the "ClassMap" entry of the structure tree root object.
EntryNamespaces | Represents the "Namespaces" entry of the structure tree root object.
EntryPronunciationLexicon | Represents the "PronunciationLexicon" entry of the structure tree root object.
EntryAF | Represents the "AF" entry of the structure tree root object.
 | inherited properties...


ZZ Elements StructureTreeRootElement Constructor Function

StructureTreeRootElement Function

Create a new StructureTreeRootElement.

Syntax

[C#]
StructureTreeRootElement()
StructureTreeRootElement(Atom atom, IndirectObject host)
StructureTreeRootElement(IndirectObject obj)
StructureTreeRootElement(Element relation, CreationOptions options)

[Visual Basic]
StructureTreeRootElement()
StructureTreeRootElement(atom As Atom, host As IndirectObject)
StructureTreeRootElement(obj As IndirectObject)
StructureTreeRootElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new StructureTreeRootElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements StructureTreeRootElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the structure tree root object.

Notes

Represents the "Type" entry of the structure tree root object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "StructTreeRoot".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 322, page 557.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 354, page 719.


ZZ Elements StructureTreeRootElement EntryK Property

EntryK Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<StructureElementElement> [Visual Basic] ArrayElement<StructureElementElement> | null | No | Represents the "K" entry of the structure tree root object.

Notes

Represents the "K" entry of the structure tree root object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains StructureElementElements.

If you read the specification you will see that an array of one StructureElementElement may be represented as a single StructureElementElement rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 322, page 557.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 354, page 719.


ZZ Elements StructureTreeRootElement EntryIDTree Property

EntryIDTree Property

Type | Default Value | Read Only | Description
[C#] NameTreeNodeElement<StructureElementElement> [Visual Basic] NameTreeNodeElement<StructureElementElement> | null | No | Represents the "IDTree" entry of the structure tree root object.

Notes

Represents the "IDTree" entry of the structure tree root object.

It is defined as part of the PDF 1.0 specification.

It contains a NameTreeNodeElement containing StructureElementElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 322, page 557.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 354, page 719.


ZZ Elements StructureTreeRootElement EntryParentTree Property

EntryParentTree Property

Type | Default Value | Read Only | Description
[C#] NumberTreeNodeElement<Element> [Visual Basic] NumberTreeNodeElement<Element> | null | No | Represents the "ParentTree" entry of the structure tree root object.

Notes

Represents the "ParentTree" entry of the structure tree root object.

It is defined as part of the PDF 1.0 specification.

It contains a NumberTreeNodeElement containing Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 322, page 557.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 354, page 720.


ZZ Elements StructureTreeRootElement EntryParentTreeNextKey Property

EntryParentTreeNextKey Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "ParentTreeNextKey" entry of the structure tree root object.

Notes

Represents the "ParentTreeNextKey" entry of the structure tree root object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 322, page 557.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 354, page 720.


ZZ Elements StructureTreeRootElement EntryRoleMap Property

EntryRoleMap Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "RoleMap" entry of the structure tree root object.

Notes

Represents the "RoleMap" entry of the structure tree root object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 322, page 557.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 354, page 720.


ZZ Elements StructureTreeRootElement EntryClassMap Property

EntryClassMap Property

Type | Default Value | Read Only | Description
[C#] DictElement<ArrayElement<AttributesElement>> [Visual Basic] DictElement<ArrayElement<AttributesElement>> | null | No | Represents the "ClassMap" entry of the structure tree root object.

Notes

Represents the "ClassMap" entry of the structure tree root object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 322, page 557.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 354, page 720.


ZZ Elements StructureTreeRootElement EntryNamespaces Property

EntryNamespaces Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<NamespaceElement> [Visual Basic] ArrayElement<NamespaceElement> | null | No | Represents the "Namespaces" entry of the structure tree root object.

Notes

Represents the "Namespaces" entry of the structure tree root object.

It is defined as part of the PDF 2.0 specification.

It contains an array which contains NamespaceElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 322, page 557.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 354, page 720.


ZZ Elements StructureTreeRootElement EntryPronunciationLexicon Property

EntryPronunciationLexicon Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FileSpecificationElement> [Visual Basic] ArrayElement<FileSpecificationElement> | null | No | Represents the "PronunciationLexicon" entry of the structure tree root object.

Notes

Represents the "PronunciationLexicon" entry of the structure tree root object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains FileSpecificationElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 322, page 557.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 354, page 720.


ZZ Elements StructureTreeRootElement EntryAF Property

EntryAF Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FileSpecificationElement> [Visual Basic] ArrayElement<FileSpecificationElement> | null | No | Represents the "AF" entry of the structure tree root object.

Notes

Represents the "AF" entry of the structure tree root object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains FileSpecificationElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 322, page 557.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 354, page 720.


ZZ Elements StructureElementElement

StructureElementElement Class

This class represents the structure element dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 558.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 721.

This class is always an indirect object because OutlineItemElement.EntrySE, StructureElementElement.EntryP and StructureElementElement.EntryRef require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.StructureElementElement

Method | Description
StructureElementElement | Create a new StructureElementElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the structure element dictionary object.
EntryS | Represents the "S" entry of the structure element dictionary object.
EntryP | Represents the "P" entry of the structure element dictionary object.
EntryID | Represents the "ID" entry of the structure element dictionary object.
EntryPg | Represents the "Pg" entry of the structure element dictionary object.
EntryK | Represents the "K" entry of the structure element dictionary object.
EntryA | Represents the "A" entry of the structure element dictionary object.
EntryC | Represents the "C" entry of the structure element dictionary object.
EntryR | Represents the "R" entry of the structure element dictionary object.
EntryT | Represents the "T" entry of the structure element dictionary object.
EntryLang | Represents the "Lang" entry of the structure element dictionary object.
EntryAlt | Represents the "Alt" entry of the structure element dictionary object.
EntryE | Represents the "E" entry of the structure element dictionary object.
EntryActualText | Represents the "ActualText" entry of the structure element dictionary object.
EntryRef | Represents the "Ref" entry of the structure element dictionary object.
EntryAF | Represents the "AF" entry of the structure element dictionary object.
EntryNS | Represents the "NS" entry of the structure element dictionary object.
EntryPhoneticAlphabet | Represents the "PhoneticAlphabet" entry of the structure element dictionary object.
EntryPhoneme | Represents the "Phoneme" entry of the structure element dictionary object.
 | inherited properties...


ZZ Elements StructureElementElement Constructor Function

StructureElementElement Function

Create a new StructureElementElement.

Syntax

[C#]
StructureElementElement()
StructureElementElement(Atom atom, IndirectObject host)
StructureElementElement(IndirectObject obj)
StructureElementElement(Element relation, CreationOptions options)

[Visual Basic]
StructureElementElement()
StructureElementElement(atom As Atom, host As IndirectObject)
StructureElementElement(obj As IndirectObject)
StructureElementElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new StructureElementElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.

Example

This code snippet is taken from Form1.cs line 294 in the AccessiblePDF example project.

[C#]

if (table.Items.Count <= 1)
  continue; // too small
int index = 0;
StructureElementElement parent = null;
StructureElementElement tb = new StructureElementElement(document);
tb.EntryType = "StructElem";
tb.EntryS = "Table";
foreach (Row row in table.Items) {
  StructureElementElement tr = new StructureElementElement(document);
  tr.EntryType = "StructElem";
  tr.EntryS = "TR";
  tr.SetParent(tb);
  foreach (StructureElementElement item in row.Items) {
    if ((parent == null) && (item != null)) {
      Debug.Assert(item.EntryP is StructureTreeRootElement == false);
      parent = item.EntryP as StructureElementElement;
      index = parent.EntryK.IndexOf(item);
    }
    StructureElementElement td = new StructureElementElement(document);
    td.EntryType = "StructElem";
    td.EntryS = "TD";
    td.SetParent(tr);
    if (item != null)
      item.SetParent(td);
  }
}
tb.SetParent(parent, index);

[VB]

If table.Items.Count <= 1 Then
  continue ' too small
End If
Dim index As Integer = 0
Dim parent As StructureElementElement = Nothing
Dim tb As New StructureElementElement(document)
tb.EntryType = "StructElem"
tb.EntryS = "Table"
For Each row As Row In table.Items
  Dim tr As New StructureElementElement(document)
  tr.EntryType = "StructElem"
  tr.EntryS = "TR"
  tr.SetParent(tb)
  For Each item As StructureElementElement In row.Items
    If (parent Is Nothing) AndAlso (item IsNot Nothing) Then
      Debug.Assert(TypeOf item.EntryP Is StructureTreeRootElement = False)
      parent = TryCast(item.EntryP, StructureElementElement)
      index = parent.EntryK.IndexOf(item)
    End If
    Dim td As New StructureElementElement(document)
    td.EntryType = "StructElem"
    td.EntryS = "TD"
    td.SetParent(tr)
    If item IsNot Nothing Then
      item.SetParent(td)
    End If
  Next item
Next row
tb.SetParent(parent, index)

This code snippet is taken from Form1.cs line 335 in the AccessiblePDF example project.

[C#]

theDoc.Read(src);
AccessibilityOperation op = new AccessibilityOperation(theDoc);
op.PageContents.AddPages();
op.MakeAccessible();
theDoc.Save(dst);
Structure tags = new Structure();
tags.Load(theDoc);
// reorder elements so that they go from top to bottom
StructureElementElement document = (StructureElementElement)tags.Root.EntryK[0];
KidArranger.SortTopToBottom(tags, document);
// determine what styles are used for headers and change tag type appropriately
List<StructureElementElement> elements = tags.FindElementsByType("P");
Dictionary<string, List<StructureElementElement>> styles = new Dictionary<string, List<StructureElementElement>>();
foreach (StructureElementElement element in elements) {
  string weight = null;
  if (!element.GetStyle().TryGetValue("font-weight", out weight))
    continue; // we are only interested in bold fonts
  int value = 0;
  if ((!int.TryParse(weight, out value)) || (value < 700))
    continue;
  string size = null;
  if (!element.GetStyle().TryGetValue("font-size", out size))
    continue;
  List<StructureElementElement> matches = null;
  if (!styles.TryGetValue(size, out matches)) {
    matches = new List<StructureElementElement>();
    styles[size] = matches;
  }
  matches.Add(element);
}
List<Style> headers = new List<Style>();
foreach (KeyValuePair<string, List<StructureElementElement>> pair in styles)
  headers.Add(new Style(pair.Key, pair.Value));
headers.Sort((i1, i2) => i1.Elements.Count.CompareTo(i2.Elements.Count));
for (int i = 0; i < headers.Count; i++) {
  if (i > 4)
    break; // limit the number of header levels
  string tag = "H" + (i + 1).ToString();
  foreach (StructureElementElement element in headers[i].Elements) {
    element.EntryS = tag;
  }
}
theDoc.Save(dst);

[VB]

theDoc.Read(src)
Dim op As New AccessibilityOperation(theDoc)
op.PageContents.AddPages()
op.MakeAccessible()
theDoc.Save(dst)
Dim tags As [Structure] = New [Structure]()
tags.Load(theDoc)
' reorder elements so that they go from top to bottom
Dim document As StructureElementElement = CType(tags.Root.EntryK(0), StructureElementElement)
KidArranger.SortTopToBottom(tags, document)
' determine what styles are used for headers and change tag type appropriately
Dim elements As List(Of StructureElementElement) = tags.FindElementsByType("P")
Dim styles As New Dictionary(Of String, List(Of StructureElementElement))()
For Each element As StructureElementElement In elements
  Dim weight As String = Nothing
  If Not element.GetStyle().TryGetValue("font-weight", weight) Then
    Continue For ' we are only interested in bold fonts
  End If
  Dim value As Integer = 0
  If (Not Integer.TryParse(weight, value)) OrElse (value < 700) Then
    Continue For
  End If
  Dim size As String = Nothing
  If Not element.GetStyle().TryGetValue("font-size", size) Then
    Continue For
  End If
  Dim matches As List(Of StructureElementElement) = Nothing
  If Not styles.TryGetValue(size, matches) Then
    matches = New List(Of StructureElementElement)()
    styles(size) = matches
  End If
  matches.Add(element)
Next element
Dim headers As New List(Of Style)()
For Each pair As KeyValuePair(Of String, List(Of StructureElementElement)) In styles
  headers.Add(New Style(pair.Key, pair.Value))
Next pair
headers.Sort(Function(i1, i2) i1.Elements.Count.CompareTo(i2.Elements.Count))
For i As Integer = 0 To headers.Count - 1
  If i > 4 Then
    Exit For ' limit the number of header levels
  End If
  Dim tag As String = "H" & (i + 1).ToString()
  For Each element As StructureElementElement In headers(i).Elements
    element.EntryS = tag
  Next element
Next i
theDoc.Save(dst)

This code snippet is taken from Form1.cs line 406 in the AccessiblePDF example project.

[C#]

list = new StructureElementElement(document);
list.EntryType = "StructElem";
list.EntryS = "L";
Debug.Assert(element.EntryP is StructureTreeRootElement == false);
StructureElementElement parent = element.EntryP as StructureElementElement;
Debug.Assert(parent != null);
int index = parent.EntryK.IndexOf(element);
list.SetParent(parent, index);

[VB]

list = New StructureElementElement(document)
list.EntryType = "StructElem"
list.EntryS = "L"
Debug.Assert(TypeOf element.EntryP Is StructureTreeRootElement = False)
Dim parent As StructureElementElement = TryCast(element.EntryP, StructureElementElement)
Debug.Assert(parent IsNot Nothing)
Dim index As Integer = parent.EntryK.IndexOf(element)
list.SetParent(parent, index)

This code snippet is taken from Form1.cs line 435 in the AccessiblePDF example project.

[C#]

theDoc.Read(src);
AccessibilityOperation op = new AccessibilityOperation(theDoc);
op.PageContents.AddPages();
op.MakeAccessible();
theDoc.Save(dst);
Structure tags = new Structure();
tags.Load(theDoc);
// reorder elements so that they go from top to bottom
StructureElementElement document = (StructureElementElement)tags.Root.EntryK[0];
KidArranger.SortTopToBottom(tags, document);
// define structure hierarchy template
List<Heading> template = new List<Heading>();
template.Add(new Heading("Title ", "Part", 1));
template.Add(new Heading("Subheader ", "Sect", 2));
// detect and insert section item structure
List<StructureElementElement> elements = tags.FindElementsByType("P");
Stack<StructureElementElement> hierarchy = new Stack<StructureElementElement>();
foreach (StructureElementElement element in elements) {
  string text = element.EntryActualText.TrimStart();
  foreach (Heading item in template) {
    if (text.StartsWith(item.Match)) {
      while (hierarchy.Count >= item.Level)
        hierarchy.Pop();
      if (hierarchy.Count == item.Level - 1) {
        StructureElementElement heading = new StructureElementElement(document);
        heading.EntryType = "StructElem";
        heading.EntryS = item.Type;
        StructureElementElement parent = (StructureElementElement)element.EntryP;
        int index = parent.EntryK.IndexOf(element);
        heading.SetParent(hierarchy.Count > 0 ? hierarchy.Peek() : parent, index);
        hierarchy.Push(heading);
      }
      break;
    }
  }
  if (hierarchy.Count > 0)
    element.SetParent(hierarchy.Peek(), Int32.MaxValue);
}
theDoc.Save(dst);

[VB]

theDoc.Read(src)
Dim op As New AccessibilityOperation(theDoc)
op.PageContents.AddPages()
op.MakeAccessible()
theDoc.Save(dst)
Dim tags As [Structure] = New [Structure]()
tags.Load(theDoc)
' reorder elements so that they go from top to bottom
Dim document As StructureElementElement = CType(tags.Root.EntryK(0), StructureElementElement)
KidArranger.SortTopToBottom(tags, document)
' define structure hierarchy template
Dim template As New List(Of Heading)()
template.Add(New Heading("Title ", "Part", 1))
template.Add(New Heading("Subheader ", "Sect", 2))
' detect and insert section item structure
Dim elements As List(Of StructureElementElement) = tags.FindElementsByType("P")
Dim hierarchy As New Stack(Of StructureElementElement)()
For Each element As StructureElementElement In elements
  Dim text As String = element.EntryActualText.TrimStart()
  For Each item As Heading In template
    If text.StartsWith(item.Match) Then
      Do While hierarchy.Count >= item.Level
        hierarchy.Pop()
      Loop
      If hierarchy.Count = item.Level - 1 Then
        Dim heading As New StructureElementElement(document)
        heading.EntryType = "StructElem"
        heading.EntryS = item.Type
        Dim parent As StructureElementElement = CType(element.EntryP, StructureElementElement)
        Dim index As Integer = parent.EntryK.IndexOf(element)
        heading.SetParent(If(hierarchy.Count > 0, hierarchy.Peek(), parent), index)
        hierarchy.Push(heading)
      End If
      Exit For
    End If
  Next item
  If hierarchy.Count > 0 Then
    element.SetParent(hierarchy.Peek(), Int32.MaxValue)
  End If
Next element
theDoc.Save(dst)

This code snippet is taken from TableDetection.cs line 171 in the AccessiblePDF example project.

[C#]

_tags = tags;
_items = new List<StructureElementElement>();

[VB]

_tags = tags
_items = New List(Of StructureElementElement)()

This code snippet is taken from TaggedPDF.cs line 61 in the AccessiblePDF example project.

[C#]

_root = new StructureElementElement(root, _catalog);
DictAtom tree = _catalog.Resolve(Atom.GetItem(_root.Atom, "ParentTree")) as DictAtom;
_parentTree = new ParentTree(this, tree);

[VB]

_root = New StructureElementElement(root, _catalog)
Dim tree As DictAtom = TryCast(_catalog.Resolve(Atom.GetItem(_root.Atom, "ParentTree")), DictAtom)
_parentTree = New ParentTree(Me, tree)

This code snippet is taken from TaggedPDF.cs line 69 in the AccessiblePDF example project.

[C#]

List<StructureElementElement> items = new List<StructureElementElement>();
FindElementsByType(_root, items, type);
return items;

[VB]

Dim items As New List(Of StructureElementElement)()
FindElementsByType(_root, items, type)
Return items


ZZ Elements StructureElementElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the structure element dictionary object.

Notes

Represents the "Type" entry of the structure element dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "StructElem".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 558.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 721.


ZZ Elements StructureElementElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the structure element dictionary object.

Notes

Represents the "S" entry of the structure element dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The specification defines this as exensible which means that it may contain entries in addition to those defined in the specification.

In fact almost all objects are extensible but the fact that it is explicitly mentioned, implies that extra entries should be regarded as normal rather than exceptional.

For further details see The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: Annex E, page 673..

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 558.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 721.


ZZ Elements StructureElementElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "P" entry of the structure element dictionary object.

Notes

Represents the "P" entry of the structure element dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A StructureElementElement.

2) A StructureTreeRootElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 558.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 721.


ZZ Elements StructureElementElement EntryID Property

EntryID Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ID" entry of the structure element dictionary object.

Notes

Represents the "ID" entry of the structure element dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 558.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 721.


ZZ Elements StructureElementElement EntryPg Property

EntryPg Property

Type | Default Value | Read Only | Description
[C#] PageObjectElement [Visual Basic] PageObjectElement | null | No | Represents the "Pg" entry of the structure element dictionary object.

Notes

Represents the "Pg" entry of the structure element dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a PageObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 558.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 721.


ZZ Elements StructureElementElement EntryK Property

EntryK Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "K" entry of the structure element dictionary object.

Notes

Represents the "K" entry of the structure element dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains StructureElementElements.

If you read the specification you will see that an array of one StructureElementElement may be represented as a single StructureElementElement rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 558.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 721.


ZZ Elements StructureElementElement EntryA Property

EntryA Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "A" entry of the structure element dictionary object.

Notes

Represents the "A" entry of the structure element dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains AttributesElements.

If you read the specification you will see that an array of one AttributesElement may be represented as a single AttributesElement rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 558.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 722.


ZZ Elements StructureElementElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "C" entry of the structure element dictionary object.

Notes

Represents the "C" entry of the structure element dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

2) An array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 558.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 722.


ZZ Elements StructureElementElement EntryR Property

EntryR Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "R" entry of the structure element dictionary object.

Notes

Represents the "R" entry of the structure element dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

It should have a minimum value of 0.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 558.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 722.


ZZ Elements StructureElementElement EntryT Property

EntryT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "T" entry of the structure element dictionary object.

Notes

Represents the "T" entry of the structure element dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 559.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 722.


ZZ Elements StructureElementElement EntryLang Property

EntryLang Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Lang" entry of the structure element dictionary object.

Notes

Represents the "Lang" entry of the structure element dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 559.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 722.


ZZ Elements StructureElementElement EntryAlt Property

EntryAlt Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Alt" entry of the structure element dictionary object.

Notes

Represents the "Alt" entry of the structure element dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 559.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 722.


ZZ Elements StructureElementElement EntryE Property

EntryE Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "E" entry of the structure element dictionary object.

Notes

Represents the "E" entry of the structure element dictionary object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 559.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 722.


ZZ Elements StructureElementElement EntryActualText Property

EntryActualText Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ActualText" entry of the structure element dictionary object.

Notes

Represents the "ActualText" entry of the structure element dictionary object.

It is an optional entry defined as part of the PDF 1.4 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 559.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 722.


ZZ Elements StructureElementElement EntryRef Property

EntryRef Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<StructureElementElement> [Visual Basic] ArrayElement<StructureElementElement> | null | No | Represents the "Ref" entry of the structure element dictionary object.

Notes

Represents the "Ref" entry of the structure element dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains StructureElementElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 558.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 721.


ZZ Elements StructureElementElement EntryAF Property

EntryAF Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FileSpecificationElement> [Visual Basic] ArrayElement<FileSpecificationElement> | null | No | Represents the "AF" entry of the structure element dictionary object.

Notes

Represents the "AF" entry of the structure element dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an array which contains FileSpecificationElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 558.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 722.


ZZ Elements StructureElementElement EntryNS Property

EntryNS Property

Type | Default Value | Read Only | Description
[C#] NamespaceElement [Visual Basic] NamespaceElement | null | No | Represents the "NS" entry of the structure element dictionary object.

Notes

Represents the "NS" entry of the structure element dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a NamespaceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 558.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 722.


ZZ Elements StructureElementElement EntryPhoneticAlphabet Property

EntryPhoneticAlphabet Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "PhoneticAlphabet" entry of the structure element dictionary object.

Notes

Represents the "PhoneticAlphabet" entry of the structure element dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "ipa" if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 558.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 723.


ZZ Elements StructureElementElement EntryPhoneme Property

EntryPhoneme Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Phoneme" entry of the structure element dictionary object.

Notes

Represents the "Phoneme" entry of the structure element dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 323, page 558.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 355, page 723.


ZZ Elements MarkedContentReferenceElement

MarkedContentReferenceElement Class

This class represents the marked-content reference dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 324, page 561.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 357, page 727.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.MarkedContentReferenceElement

Method | Description
MarkedContentReferenceElement | Create a new MarkedContentReferenceElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the marked-content reference dictionary object.
EntryPg | Represents the "Pg" entry of the marked-content reference dictionary object.
EntryStm | Represents the "Stm" entry of the marked-content reference dictionary object.
EntryStmOwn | Represents the "StmOwn" entry of the marked-content reference dictionary object.
EntryMCID | Represents the "MCID" entry of the marked-content reference dictionary object.
 | inherited properties...


ZZ Elements MarkedContentReferenceElement Constructor Function

MarkedContentReferenceElement Function

Create a new MarkedContentReferenceElement.

Syntax

[C#]
MarkedContentReferenceElement()
MarkedContentReferenceElement(Atom atom, IndirectObject host)
MarkedContentReferenceElement(IndirectObject obj)
MarkedContentReferenceElement(Element relation, CreationOptions options)

[Visual Basic]
MarkedContentReferenceElement()
MarkedContentReferenceElement(atom As Atom, host As IndirectObject)
MarkedContentReferenceElement(obj As IndirectObject)
MarkedContentReferenceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new MarkedContentReferenceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements MarkedContentReferenceElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the marked-content reference dictionary object.

Notes

Represents the "Type" entry of the marked-content reference dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "MCR".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 324, page 561.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 357, page 727.


ZZ Elements MarkedContentReferenceElement EntryPg Property

EntryPg Property

Type | Default Value | Read Only | Description
[C#] PageObjectElement [Visual Basic] PageObjectElement | null | No | Represents the "Pg" entry of the marked-content reference dictionary object.

Notes

Represents the "Pg" entry of the marked-content reference dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a PageObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 324, page 561.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 357, page 727.


ZZ Elements MarkedContentReferenceElement EntryStm Property

EntryStm Property

Type | Default Value | Read Only | Description
[C#] FormXObjectElement [Visual Basic] FormXObjectElement | null | No | Represents the "Stm" entry of the marked-content reference dictionary object.

Notes

Represents the "Stm" entry of the marked-content reference dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a FormXObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 324, page 561.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 357, page 727.


ZZ Elements MarkedContentReferenceElement EntryStmOwn Property

EntryStmOwn Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "StmOwn" entry of the marked-content reference dictionary object.

Notes

Represents the "StmOwn" entry of the marked-content reference dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

The specification defines this property as being of any type. So any type of atom or data content is valid.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 324, page 561.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 357, page 727.


ZZ Elements MarkedContentReferenceElement EntryMCID Property

EntryMCID Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "MCID" entry of the marked-content reference dictionary object.

Notes

Represents the "MCID" entry of the marked-content reference dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 324, page 561.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 357, page 727.


ZZ Elements ObjectReferenceElement

ObjectReferenceElement Class

This class represents the object reference dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 325, page 564.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 358, page 730.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.ObjectReferenceElement

Method | Description
ObjectReferenceElement | Create a new ObjectReferenceElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the object reference dictionary object.
EntryPg | Represents the "Pg" entry of the object reference dictionary object.
EntryObj | Represents the "Obj" entry of the object reference dictionary object.
 | inherited properties...


ZZ Elements ObjectReferenceElement Constructor Function

ObjectReferenceElement Function

Create a new ObjectReferenceElement.

Syntax

[C#]
ObjectReferenceElement()
ObjectReferenceElement(Atom atom, IndirectObject host)
ObjectReferenceElement(IndirectObject obj)
ObjectReferenceElement(Element relation, CreationOptions options)

[Visual Basic]
ObjectReferenceElement()
ObjectReferenceElement(atom As Atom, host As IndirectObject)
ObjectReferenceElement(obj As IndirectObject)
ObjectReferenceElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ObjectReferenceElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ObjectReferenceElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the object reference dictionary object.

Notes

Represents the "Type" entry of the object reference dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item must always be provided and must always take the value "OBJR".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 325, page 564.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 358, page 730.


ZZ Elements ObjectReferenceElement EntryPg Property

EntryPg Property

Type | Default Value | Read Only | Description
[C#] PageObjectElement [Visual Basic] PageObjectElement | null | No | Represents the "Pg" entry of the object reference dictionary object.

Notes

Represents the "Pg" entry of the object reference dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a PageObjectElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 325, page 564.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 358, page 730.


ZZ Elements ObjectReferenceElement EntryObj Property

EntryObj Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Obj" entry of the object reference dictionary object.

Notes

Represents the "Obj" entry of the object reference dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

The specification defines this property as being of any type. So any type of atom or data content is valid.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 325, page 564.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 358, page 730.


ZZ Elements AttributesElement

AttributesElement Class

This class represents the attribute object dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 327, page 567.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 360, page 734.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AttributesElement
         WebSupergoo.ABCpdf12.Elements.ArtifactAttributesElement
         WebSupergoo.ABCpdf12.Elements.LinkAttributesElement
         WebSupergoo.ABCpdf12.Elements.StandardStructureAttributesElement
         WebSupergoo.ABCpdf12.Elements.UserPropertiesAttributesElement

Method | Description
AttributesElement | Create a new AttributesElement.
 | inherited methods...

Property | Description
StreamElement | The StreamElement associated with this class.
EntryO | Represents the "O" entry of the attribute object dictionary object.
EntryNS | Represents the "NS" entry of the attribute object dictionary object.
 | inherited properties...


ZZ Elements AttributesElement Constructor Function

AttributesElement Function

Create a new AttributesElement.

Syntax

[C#]
AttributesElement()
AttributesElement(Atom atom, IndirectObject host)
AttributesElement(IndirectObject obj)
AttributesElement(Element relation, CreationOptions options)

[Visual Basic]
AttributesElement()
AttributesElement(atom As Atom, host As IndirectObject)
AttributesElement(obj As IndirectObject)
AttributesElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new AttributesElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements AttributesElement StreamElement Property

StreamElement Property

Type | Default Value | Read Only | Description
[C#] StreamElement [Visual Basic] StreamElement | null | Yes | The StreamElement associated with this class.

Notes

The StreamElement associated with this class.


ZZ Elements AttributesElement EntryO Property

EntryO Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "O" entry of the attribute object dictionary object.

Notes

Represents the "O" entry of the attribute object dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • Layout
  • List
  • PrintField
  • Table
  • Link

The specification defines this as exensible which means that it may contain entries in addition to those defined in the specification.

In fact almost all objects are extensible but the fact that it is explicitly mentioned, implies that extra entries should be regarded as normal rather than exceptional.

For further details see The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: Annex E, page 673..

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 327, page 567.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 360, page 734.


ZZ Elements AttributesElement EntryNS Property

EntryNS Property

Type | Default Value | Read Only | Description
[C#] NamespaceElement [Visual Basic] NamespaceElement | null | No | Represents the "NS" entry of the attribute object dictionary object.

Notes

Represents the "NS" entry of the attribute object dictionary object.

It is defined as part of the PDF 2.0 specification.

It contains a NamespaceElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 327, page 567.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 360, page 734.


ZZ Elements UserPropertiesAttributesElement

UserPropertiesAttributesElement Class

This class represents the user properties attributes. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 328, page 569.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 361, page 736.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AttributesElement
         WebSupergoo.ABCpdf12.Elements.UserPropertiesAttributesElement

Method | Description
UserPropertiesAttributesElement | Create a new UserPropertiesAttributesElement.
 | inherited methods...

Property | Description
EntryP | Represents the "P" entry of the user properties attributes object.
 | inherited properties...


ZZ Elements UserPropertiesAttributesElement Constructor Function

UserPropertiesAttributesElement Function

Create a new UserPropertiesAttributesElement.

Syntax

[C#]
UserPropertiesAttributesElement()
UserPropertiesAttributesElement(Atom atom, IndirectObject host)
UserPropertiesAttributesElement(IndirectObject obj)
UserPropertiesAttributesElement(Element relation, CreationOptions options)

[Visual Basic]
UserPropertiesAttributesElement()
UserPropertiesAttributesElement(atom As Atom, host As IndirectObject)
UserPropertiesAttributesElement(obj As IndirectObject)
UserPropertiesAttributesElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new UserPropertiesAttributesElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements UserPropertiesAttributesElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<UserPropertyElement> [Visual Basic] ArrayElement<UserPropertyElement> | null | No | Represents the "P" entry of the user properties attributes object.

Notes

Represents the "P" entry of the user properties attributes object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains UserPropertyElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 328, page 569.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 361, page 736.


ZZ Elements UserPropertyElement

UserPropertyElement Class

This class represents the user property dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 329, page 569.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 362, page 736.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.UserPropertyElement

Method | Description
UserPropertyElement | Create a new UserPropertyElement.
 | inherited methods...

Property | Description
EntryN | Represents the "N" entry of the user property dictionary object.
EntryV | Represents the "V" entry of the user property dictionary object.
EntryF | Represents the "F" entry of the user property dictionary object.
EntryH | Represents the "H" entry of the user property dictionary object.
 | inherited properties...


ZZ Elements UserPropertyElement Constructor Function

UserPropertyElement Function

Create a new UserPropertyElement.

Syntax

[C#]
UserPropertyElement()
UserPropertyElement(Atom atom, IndirectObject host)
UserPropertyElement(IndirectObject obj)
UserPropertyElement(Element relation, CreationOptions options)

[Visual Basic]
UserPropertyElement()
UserPropertyElement(atom As Atom, host As IndirectObject)
UserPropertyElement(obj As IndirectObject)
UserPropertyElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new UserPropertyElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements UserPropertyElement EntryN Property

EntryN Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "N" entry of the user property dictionary object.

Notes

Represents the "N" entry of the user property dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 329, page 569.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 362, page 736.


ZZ Elements UserPropertyElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "V" entry of the user property dictionary object.

Notes

Represents the "V" entry of the user property dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

The specification defines this property as being of any type. So any type of atom or data content is valid.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 329, page 569.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 362, page 736.


ZZ Elements UserPropertyElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "F" entry of the user property dictionary object.

Notes

Represents the "F" entry of the user property dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 329, page 569.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 362, page 737.


ZZ Elements UserPropertyElement EntryH Property

EntryH Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "H" entry of the user property dictionary object.

Notes

Represents the "H" entry of the user property dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 329, page 569.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 362, page 737.


ZZ Elements StandardStructureAttributesElement

StandardStructureAttributesElement Class

This class represents the standard structure attributes. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 593.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 347, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 382, page 784.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 348, page 609.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 383, page 785.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 349, page 610.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 384, page 785.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AttributesElement
         WebSupergoo.ABCpdf12.Elements.StandardStructureAttributesElement
            WebSupergoo.ABCpdf12.Elements.StandardLayoutAttributesElement

Method | Description
StandardStructureAttributesElement | Create a new StandardStructureAttributesElement.
 | inherited methods...

Property | Description
EntryListNumbering | Represents the "ListNumbering" entry of the standard structure attributes object.
EntryContinuedList | Represents the "ContinuedList" entry of the standard structure attributes object.
EntryContinuedFrom | Represents the "ContinuedFrom" entry of the standard structure attributes object.
EntryRole | Represents the "Role" entry of the standard structure attributes object.
Entry_checked | Represents the "checked" entry of the standard structure attributes object.
EntryChecked | Represents the "Checked" entry of the standard structure attributes object.
EntryDesc | Represents the "Desc" entry of the standard structure attributes object.
EntryRowSpan | Represents the "RowSpan" entry of the standard structure attributes object.
EntryColSpan | Represents the "ColSpan" entry of the standard structure attributes object.
EntryHeaders | Represents the "Headers" entry of the standard structure attributes object.
EntryScope | Represents the "Scope" entry of the standard structure attributes object.
EntrySummary | Represents the "Summary" entry of the standard structure attributes object.
EntryShort | Represents the "Short" entry of the standard structure attributes object.
 | inherited properties...


ZZ Elements StandardStructureAttributesElement Constructor Function

StandardStructureAttributesElement Function

Create a new StandardStructureAttributesElement.

Syntax

[C#]
StandardStructureAttributesElement()
StandardStructureAttributesElement(Atom atom, IndirectObject host)
StandardStructureAttributesElement(IndirectObject obj)
StandardStructureAttributesElement(Element relation, CreationOptions options)

[Visual Basic]
StandardStructureAttributesElement()
StandardStructureAttributesElement(atom As Atom, host As IndirectObject)
StandardStructureAttributesElement(obj As IndirectObject)
StandardStructureAttributesElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new StandardStructureAttributesElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements StandardStructureAttributesElement EntryListNumbering Property

EntryListNumbering Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ListNumbering" entry of the standard structure attributes object.

Notes

Represents the "ListNumbering" entry of the standard structure attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "None" if no value has been provided.

This item may take one of the following valid values:.

  • None
  • Disc
  • Circle
  • Square
  • Decimal
  • UpperRoman
  • LowerRoman
  • UpperAlpha
  • LowerAlpha

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 593.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 347, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 382, page 784.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 348, page 609.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 383, page 785.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 349, page 610.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 384, page 785.


ZZ Elements StandardStructureAttributesElement EntryContinuedList Property

EntryContinuedList Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "ContinuedList" entry of the standard structure attributes object.

Notes

Represents the "ContinuedList" entry of the standard structure attributes object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a bool representing a PDF boolean object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 593.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 347, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 382, page 784.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 348, page 609.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 383, page 785.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 349, page 610.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 384, page 785.


ZZ Elements StandardStructureAttributesElement EntryContinuedFrom Property

EntryContinuedFrom Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ContinuedFrom" entry of the standard structure attributes object.

Notes

Represents the "ContinuedFrom" entry of the standard structure attributes object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 593.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 347, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 382, page 784.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 348, page 609.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 383, page 785.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 349, page 610.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 384, page 785.


ZZ Elements StandardStructureAttributesElement EntryRole Property

EntryRole Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Role" entry of the standard structure attributes object.

Notes

Represents the "Role" entry of the standard structure attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • rb
  • cb
  • pb
  • tv

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 593.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 347, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 382, page 784.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 348, page 609.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 383, page 785.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 349, page 610.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 384, page 785.


ZZ Elements StandardStructureAttributesElement Entry_checked Property

Entry_checked Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "checked" entry of the standard structure attributes object.

Notes

Represents the "checked" entry of the standard structure attributes object.

It is an optional entry defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "off" if no value has been provided.

This item may take one of the following valid values:.

  • on
  • off
  • neutral

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 593.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 347, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 382, page 784.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 348, page 609.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 383, page 785.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 349, page 610.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 384, page 785.


ZZ Elements StandardStructureAttributesElement EntryChecked Property

EntryChecked Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Checked" entry of the standard structure attributes object.

Notes

Represents the "Checked" entry of the standard structure attributes object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "off" if no value has been provided.

This item may take one of the following valid values:.

  • on
  • off
  • neutral

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 593.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 347, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 382, page 784.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 348, page 609.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 383, page 785.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 349, page 610.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 384, page 785.


ZZ Elements StandardStructureAttributesElement EntryDesc Property

EntryDesc Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Desc" entry of the standard structure attributes object.

Notes

Represents the "Desc" entry of the standard structure attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 593.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 347, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 382, page 784.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 348, page 609.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 383, page 785.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 349, page 610.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 384, page 785.


ZZ Elements StandardStructureAttributesElement EntryRowSpan Property

EntryRowSpan Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "RowSpan" entry of the standard structure attributes object.

Notes

Represents the "RowSpan" entry of the standard structure attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 593.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 347, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 382, page 784.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 348, page 609.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 383, page 785.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 349, page 610.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 384, page 785.


ZZ Elements StandardStructureAttributesElement EntryColSpan Property

EntryColSpan Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "ColSpan" entry of the standard structure attributes object.

Notes

Represents the "ColSpan" entry of the standard structure attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 593.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 347, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 382, page 784.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 348, page 609.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 383, page 785.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 349, page 610.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 384, page 785.


ZZ Elements StandardStructureAttributesElement EntryHeaders Property

EntryHeaders Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "Headers" entry of the standard structure attributes object.

Notes

Represents the "Headers" entry of the standard structure attributes object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an array which contains strings, representing PDF string objects.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 593.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 347, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 382, page 784.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 348, page 609.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 383, page 785.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 349, page 610.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 384, page 785.


ZZ Elements StandardStructureAttributesElement EntryScope Property

EntryScope Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Scope" entry of the standard structure attributes object.

Notes

Represents the "Scope" entry of the standard structure attributes object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • Row
  • Column
  • Both

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 593.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 347, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 382, page 784.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 348, page 609.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 383, page 785.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 349, page 610.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 384, page 785.


ZZ Elements StandardStructureAttributesElement EntrySummary Property

EntrySummary Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Summary" entry of the standard structure attributes object.

Notes

Represents the "Summary" entry of the standard structure attributes object.

It is an optional entry defined as part of the PDF 1.7 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 593.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 347, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 382, page 784.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 348, page 609.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 383, page 785.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 349, page 610.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 384, page 785.


ZZ Elements StandardStructureAttributesElement EntryShort Property

EntryShort Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Short" entry of the standard structure attributes object.

Notes

Represents the "Short" entry of the standard structure attributes object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; page 593.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 347, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 382, page 784.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 348, page 609.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 383, page 785.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 349, page 610.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 384, page 785.


ZZ Elements StandardLayoutAttributesElement

StandardLayoutAttributesElement Class

This class represents the standard layout attributes. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AttributesElement
         WebSupergoo.ABCpdf12.Elements.StandardStructureAttributesElement
            WebSupergoo.ABCpdf12.Elements.StandardLayoutAttributesElement

Method | Description
StandardLayoutAttributesElement | Create a new StandardLayoutAttributesElement.
 | inherited methods...

Property | Description
EntryPlacement | Represents the "Placement" entry of the standard layout attributes object.
EntryWritingMode | Represents the "WritingMode" entry of the standard layout attributes object.
EntryBackgroundColor | Represents the "BackgroundColor" entry of the standard layout attributes object.
EntryBorderColor | Represents the "BorderColor" entry of the standard layout attributes object.
EntryBorderStyle | Represents the "BorderStyle" entry of the standard layout attributes object.
EntryBorderThickness | Represents the "BorderThickness" entry of the standard layout attributes object.
EntryPadding | Represents the "Padding" entry of the standard layout attributes object.
EntryColor | Represents the "Color" entry of the standard layout attributes object.
EntrySpaceBefore | Represents the "SpaceBefore" entry of the standard layout attributes object.
EntrySpaceAfter | Represents the "SpaceAfter" entry of the standard layout attributes object.
EntryStartIndent | Represents the "StartIndent" entry of the standard layout attributes object.
EntryEndIndent | Represents the "EndIndent" entry of the standard layout attributes object.
EntryTextIndent | Represents the "TextIndent" entry of the standard layout attributes object.
EntryTextAlign | Represents the "TextAlign" entry of the standard layout attributes object.
EntryBBox | Represents the "BBox" entry of the standard layout attributes object.
EntryWidth | Represents the "Width" entry of the standard layout attributes object.
EntryHeight | Represents the "Height" entry of the standard layout attributes object.
EntryBlockAlign | Represents the "BlockAlign" entry of the standard layout attributes object.
EntryInlineAlign | Represents the "InlineAlign" entry of the standard layout attributes object.
EntryTBorderStyle | Represents the "TBorderStyle" entry of the standard layout attributes object.
EntryTPadding | Represents the "TPadding" entry of the standard layout attributes object.
EntryBaselineShift | Represents the "BaselineShift" entry of the standard layout attributes object.
EntryLineHeight | Represents the "LineHeight" entry of the standard layout attributes object.
EntryTextDecorationColor | Represents the "TextDecorationColor" entry of the standard layout attributes object.
EntryTextDecorationThickness | Represents the "TextDecorationThickness" entry of the standard layout attributes object.
EntryTextDecorationType | Represents the "TextDecorationType" entry of the standard layout attributes object.
EntryRubyAlign | Represents the "RubyAlign" entry of the standard layout attributes object.
EntryRubyPosition | Represents the "RubyPosition" entry of the standard layout attributes object.
EntryGlyphOrientationVertical | Represents the "GlyphOrientationVertical" entry of the standard layout attributes object.
EntryTextPosition | Represents the "TextPosition" entry of the standard layout attributes object.
EntryColumnCount | Represents the "ColumnCount" entry of the standard layout attributes object.
EntryColumnGap | Represents the "ColumnGap" entry of the standard layout attributes object.
EntryColumnWidths | Represents the "ColumnWidths" entry of the standard layout attributes object.
 | inherited properties...


ZZ Elements StandardLayoutAttributesElement Constructor Function

StandardLayoutAttributesElement Function

Create a new StandardLayoutAttributesElement.

Syntax

[C#]
StandardLayoutAttributesElement()
StandardLayoutAttributesElement(Atom atom, IndirectObject host)
StandardLayoutAttributesElement(IndirectObject obj)
StandardLayoutAttributesElement(Element relation, CreationOptions options)

[Visual Basic]
StandardLayoutAttributesElement()
StandardLayoutAttributesElement(atom As Atom, host As IndirectObject)
StandardLayoutAttributesElement(obj As IndirectObject)
StandardLayoutAttributesElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new StandardLayoutAttributesElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements StandardLayoutAttributesElement EntryPlacement Property

EntryPlacement Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Placement" entry of the standard layout attributes object.

Notes

Represents the "Placement" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Inline" if no value has been provided.

This item may take one of the following valid values:.

  • Block
  • Inline
  • Before
  • Start
  • End

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryWritingMode Property

EntryWritingMode Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "WritingMode" entry of the standard layout attributes object.

Notes

Represents the "WritingMode" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "LrTb" if no value has been provided.

This item may take one of the following valid values:.

  • LrTb
  • RlTb
  • TbRl

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 598.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 771.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryBackgroundColor Property

EntryBackgroundColor Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "BackgroundColor" entry of the standard layout attributes object.

Notes

Represents the "BackgroundColor" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 598.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 771.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryBorderColor Property

EntryBorderColor Property

Type | Default Value | Read Only | Description
[C#] IList<double?> [Visual Basic] IList<Double?> | null | No | Represents the "BorderColor" entry of the standard layout attributes object.

Notes

Represents the "BorderColor" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 598.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 772.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryBorderStyle Property

EntryBorderStyle Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "BorderStyle" entry of the standard layout attributes object.

Notes

Represents the "BorderStyle" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an array which contains strings, representing PDF name objects.

The PDF specification states that items in this array assume a value of "None" if no value has been provided.

Items in this array may take one of the following valid values:.

  • None
  • Hidden
  • Dotted
  • Dashed
  • Solid
  • Double
  • Groove
  • Ridge
  • Inset
  • Outset
.

If you read the specification you will see that an array of one string may be represented as a single string rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 599.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 772.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryBorderThickness Property

EntryBorderThickness Property

Type | Default Value | Read Only | Description
[C#] IList<double?> [Visual Basic] IList<Double?> | null | No | Represents the "BorderThickness" entry of the standard layout attributes object.

Notes

Represents the "BorderThickness" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0.

If you read the specification you will see that an array of one double may be represented as a single double rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 599.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 773.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryPadding Property

EntryPadding Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Padding" entry of the standard layout attributes object.

Notes

Represents the "Padding" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an array which contains doubles, representing PDF numeric objects.

The PDF specification states that items in this array assume a value of 0 if no value has been provided.

If you read the specification you will see that an array of one double may be represented as a single double rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 773.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryColor Property

EntryColor Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Color" entry of the standard layout attributes object.

Notes

Represents the "Color" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 773.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntrySpaceBefore Property

EntrySpaceBefore Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "SpaceBefore" entry of the standard layout attributes object.

Notes

Represents the "SpaceBefore" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntrySpaceAfter Property

EntrySpaceAfter Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "SpaceAfter" entry of the standard layout attributes object.

Notes

Represents the "SpaceAfter" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryStartIndent Property

EntryStartIndent Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "StartIndent" entry of the standard layout attributes object.

Notes

Represents the "StartIndent" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryEndIndent Property

EntryEndIndent Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "EndIndent" entry of the standard layout attributes object.

Notes

Represents the "EndIndent" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryTextIndent Property

EntryTextIndent Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "TextIndent" entry of the standard layout attributes object.

Notes

Represents the "TextIndent" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryTextAlign Property

EntryTextAlign Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "TextAlign" entry of the standard layout attributes object.

Notes

Represents the "TextAlign" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Start" if no value has been provided.

This item may take one of the following valid values:.

  • Start
  • Center
  • End
  • Justify

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryBBox Property

EntryBBox Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "BBox" entry of the standard layout attributes object.

Notes

Represents the "BBox" entry of the standard layout attributes object.

It is defined as part of the PDF 1.0 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryWidth Property

EntryWidth Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Width" entry of the standard layout attributes object.

Notes

Represents the "Width" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A double representing a PDF numeric object.

2) A string representing a PDF name object.

The PDF specification states that this item assumes a value of "Auto" if no value has been provided.

If provided, this item must always take the value "Auto".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryHeight Property

EntryHeight Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Height" entry of the standard layout attributes object.

Notes

Represents the "Height" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A double representing a PDF numeric object.

2) A string representing a PDF name object.

The PDF specification states that this item assumes a value of "Auto" if no value has been provided.

If provided, this item must always take the value "Auto".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryBlockAlign Property

EntryBlockAlign Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "BlockAlign" entry of the standard layout attributes object.

Notes

Represents the "BlockAlign" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Before" if no value has been provided.

This item may take one of the following valid values:.

  • Before
  • Middle
  • After
  • Justify

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryInlineAlign Property

EntryInlineAlign Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "InlineAlign" entry of the standard layout attributes object.

Notes

Represents the "InlineAlign" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Start" if no value has been provided.

This item may take one of the following valid values:.

  • Start
  • Center
  • End

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryTBorderStyle Property

EntryTBorderStyle Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "TBorderStyle" entry of the standard layout attributes object.

Notes

Represents the "TBorderStyle" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an array which contains strings, representing PDF name objects.

The PDF specification states that items in this array assume a value of "None" if no value has been provided.

Items in this array may take one of the following valid values:.

  • None
  • Hidden
  • Dotted
  • Dashed
  • Solid
  • Double
  • Groove
  • Ridge
  • Inset
  • Outset
.

If you read the specification you will see that an array of one string may be represented as a single string rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryTPadding Property

EntryTPadding Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "TPadding" entry of the standard layout attributes object.

Notes

Represents the "TPadding" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an array which contains integers, representing PDF numeric objects.

Items in this array should have a minimum value of 1.

The PDF specification states that items in this array assume a value of 0 if no value has been provided.

If you read the specification you will see that an array of one integer may be represented as a single integer rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryBaselineShift Property

EntryBaselineShift Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "BaselineShift" entry of the standard layout attributes object.

Notes

Represents the "BaselineShift" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryLineHeight Property

EntryLineHeight Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "LineHeight" entry of the standard layout attributes object.

Notes

Represents the "LineHeight" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A double representing a PDF numeric object.

2) A string representing a PDF name object.

The PDF specification states that this item assumes a value of "Normal" if no value has been provided.

This item may take one of the following valid values:.

  • Normal
  • Auto

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryTextDecorationColor Property

EntryTextDecorationColor Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "TextDecorationColor" entry of the standard layout attributes object.

Notes

Represents the "TextDecorationColor" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryTextDecorationThickness Property

EntryTextDecorationThickness Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "TextDecorationThickness" entry of the standard layout attributes object.

Notes

Represents the "TextDecorationThickness" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a double representing a PDF numeric object.

It should have a minimum value of 0.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryTextDecorationType Property

EntryTextDecorationType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "TextDecorationType" entry of the standard layout attributes object.

Notes

Represents the "TextDecorationType" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "None" if no value has been provided.

This item may take one of the following valid values:.

  • None
  • Underline
  • Overline
  • LineThrough

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryRubyAlign Property

EntryRubyAlign Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "RubyAlign" entry of the standard layout attributes object.

Notes

Represents the "RubyAlign" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Distribute" if no value has been provided.

This item may take one of the following valid values:.

  • Start
  • Center
  • End
  • Justify
  • Distribute

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryRubyPosition Property

EntryRubyPosition Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "RubyPosition" entry of the standard layout attributes object.

Notes

Represents the "RubyPosition" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Before" if no value has been provided.

This item may take one of the following valid values:.

  • Before
  • After
  • Warichu
  • Inline

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryGlyphOrientationVertical Property

EntryGlyphOrientationVertical Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "GlyphOrientationVertical" entry of the standard layout attributes object.

Notes

Represents the "GlyphOrientationVertical" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.5 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Auto" if no value has been provided.

This item may take one of the following valid values:.

  • angle
  • Auto
  • or

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryTextPosition Property

EntryTextPosition Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "TextPosition" entry of the standard layout attributes object.

Notes

Represents the "TextPosition" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value ":".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryColumnCount Property

EntryColumnCount Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "ColumnCount" entry of the standard layout attributes object.

Notes

Represents the "ColumnCount" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryColumnGap Property

EntryColumnGap Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "ColumnGap" entry of the standard layout attributes object.

Notes

Represents the "ColumnGap" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains an array which contains doubles, representing PDF numeric objects.

If you read the specification you will see that an array of one double may be represented as a single double rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements StandardLayoutAttributesElement EntryColumnWidths Property

EntryColumnWidths Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "ColumnWidths" entry of the standard layout attributes object.

Notes

Represents the "ColumnWidths" entry of the standard layout attributes object.

It is an optional entry defined as part of the PDF 1.6 specification.

It contains an array which contains doubles, representing PDF numeric objects.

If you read the specification you will see that an array of one double may be represented as a single double rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 343, page 597.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 378, page 770.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 344, page 600.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 379, page 774.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 345, page 604.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 380, page 778.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 346, page 608.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 381, page 782.


ZZ Elements WebCaptureInformationElement

WebCaptureInformationElement Class

This class represents the web capture information dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 350, page 617.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 386, page 796.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.WebCaptureInformationElement

Method | Description
WebCaptureInformationElement | Create a new WebCaptureInformationElement.
 | inherited methods...

Property | Description
EntryV | Represents the "V" entry of the web capture information dictionary object.
EntryC | Represents the "C" entry of the web capture information dictionary object.
 | inherited properties...


ZZ Elements WebCaptureInformationElement Constructor Function

WebCaptureInformationElement Function

Create a new WebCaptureInformationElement.

Syntax

[C#]
WebCaptureInformationElement()
WebCaptureInformationElement(Atom atom, IndirectObject host)
WebCaptureInformationElement(IndirectObject obj)
WebCaptureInformationElement(Element relation, CreationOptions options)

[Visual Basic]
WebCaptureInformationElement()
WebCaptureInformationElement(atom As Atom, host As IndirectObject)
WebCaptureInformationElement(obj As IndirectObject)
WebCaptureInformationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new WebCaptureInformationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements WebCaptureInformationElement EntryV Property

EntryV Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "V" entry of the web capture information dictionary object.

Notes

Represents the "V" entry of the web capture information dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 350, page 617.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 386, page 796.


ZZ Elements WebCaptureInformationElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<WebCaptureCommandElement> [Visual Basic] ArrayElement<WebCaptureCommandElement> | null | No | Represents the "C" entry of the web capture information dictionary object.

Notes

Represents the "C" entry of the web capture information dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains WebCaptureCommandElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 350, page 617.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 386, page 796.


ZZ Elements WebCaptureContentSetElement

WebCaptureContentSetElement Class

This class represents the web capture content set. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 352, page 621.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 388, page 801.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.WebCaptureContentSetElement
         WebSupergoo.ABCpdf12.Elements.WebCaptureImageSetElement
         WebSupergoo.ABCpdf12.Elements.WebCapturePageSetElement

Method | Description
WebCaptureContentSetElement | Create a new WebCaptureContentSetElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the web capture content set object.
EntryS | Represents the "S" entry of the web capture content set object.
EntryID | Represents the "ID" entry of the web capture content set object.
EntryO | Represents the "O" entry of the web capture content set object.
EntrySI | Represents the "SI" entry of the web capture content set object.
EntryCT | Represents the "CT" entry of the web capture content set object.
EntryTS | Represents the "TS" entry of the web capture content set object.
 | inherited properties...


ZZ Elements WebCaptureContentSetElement Constructor Function

WebCaptureContentSetElement Function

Create a new WebCaptureContentSetElement.

Syntax

[C#]
WebCaptureContentSetElement()
WebCaptureContentSetElement(Atom atom, IndirectObject host)
WebCaptureContentSetElement(IndirectObject obj)
WebCaptureContentSetElement(Element relation, CreationOptions options)

[Visual Basic]
WebCaptureContentSetElement()
WebCaptureContentSetElement(atom As Atom, host As IndirectObject)
WebCaptureContentSetElement(obj As IndirectObject)
WebCaptureContentSetElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new WebCaptureContentSetElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements WebCaptureContentSetElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the web capture content set object.

Notes

Represents the "Type" entry of the web capture content set object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "SpiderContentSet".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 352, page 621.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 388, page 801.


ZZ Elements WebCaptureContentSetElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the web capture content set object.

Notes

Represents the "S" entry of the web capture content set object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • SPS
  • SIS

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 352, page 621.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 388, page 801.


ZZ Elements WebCaptureContentSetElement EntryID Property

EntryID Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ID" entry of the web capture content set object.

Notes

Represents the "ID" entry of the web capture content set object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 352, page 622.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 388, page 801.


ZZ Elements WebCaptureContentSetElement EntryO Property

EntryO Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "O" entry of the web capture content set object.

Notes

Represents the "O" entry of the web capture content set object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 352, page 622.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 388, page 801.


ZZ Elements WebCaptureContentSetElement EntrySI Property

EntrySI Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<SourceInformationElement> [Visual Basic] ArrayElement<SourceInformationElement> | null | No | Represents the "SI" entry of the web capture content set object.

Notes

Represents the "SI" entry of the web capture content set object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains SourceInformationElements.

If you read the specification you will see that an array of one SourceInformationElement may be represented as a single SourceInformationElement rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 352, page 622.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 388, page 801.


ZZ Elements WebCaptureContentSetElement EntryCT Property

EntryCT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "CT" entry of the web capture content set object.

Notes

Represents the "CT" entry of the web capture content set object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 352, page 622.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 388, page 801.


ZZ Elements WebCaptureContentSetElement EntryTS Property

EntryTS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "TS" entry of the web capture content set object.

Notes

Represents the "TS" entry of the web capture content set object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a date string. For details see the StringAtom.DateToString and StringAtom.StringToDate functions.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 352, page 622.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 388, page 801.


ZZ Elements WebCaptureImageSetElement

WebCaptureImageSetElement Class

This class represents the web capture image set. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 354, page 622.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 390, page 802.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.WebCaptureContentSetElement
         WebSupergoo.ABCpdf12.Elements.WebCaptureImageSetElement

Method | Description
WebCaptureImageSetElement | Create a new WebCaptureImageSetElement.
 | inherited methods...

Property | Description
EntryR | Represents the "R" entry of the web capture image set object.
 | inherited properties...


ZZ Elements WebCaptureImageSetElement Constructor Function

WebCaptureImageSetElement Function

Create a new WebCaptureImageSetElement.

Syntax

[C#]
WebCaptureImageSetElement()
WebCaptureImageSetElement(Atom atom, IndirectObject host)
WebCaptureImageSetElement(IndirectObject obj)
WebCaptureImageSetElement(Element relation, CreationOptions options)

[Visual Basic]
WebCaptureImageSetElement()
WebCaptureImageSetElement(atom As Atom, host As IndirectObject)
WebCaptureImageSetElement(obj As IndirectObject)
WebCaptureImageSetElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new WebCaptureImageSetElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements WebCaptureImageSetElement EntryR Property

EntryR Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "R" entry of the web capture image set object.

Notes

Represents the "R" entry of the web capture image set object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains integers, representing PDF numeric objects.

If you read the specification you will see that an array of one integer may be represented as a single integer rather than an array. However we always present this property as an array to simplify the interface. It is only if you add or remove items in the array, that the underlying representation will be changed.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 354, page 622.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 390, page 802.


ZZ Elements WebCapturePageSetElement

WebCapturePageSetElement Class

This class represents the web capture page set. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 353, page 622.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 389, page 802.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.WebCaptureContentSetElement
         WebSupergoo.ABCpdf12.Elements.WebCapturePageSetElement

Method | Description
WebCapturePageSetElement | Create a new WebCapturePageSetElement.
 | inherited methods...

Property | Description
EntryT | Represents the "T" entry of the web capture page set object.
EntryTID | Represents the "TID" entry of the web capture page set object.
 | inherited properties...


ZZ Elements WebCapturePageSetElement Constructor Function

WebCapturePageSetElement Function

Create a new WebCapturePageSetElement.

Syntax

[C#]
WebCapturePageSetElement()
WebCapturePageSetElement(Atom atom, IndirectObject host)
WebCapturePageSetElement(IndirectObject obj)
WebCapturePageSetElement(Element relation, CreationOptions options)

[Visual Basic]
WebCapturePageSetElement()
WebCapturePageSetElement(atom As Atom, host As IndirectObject)
WebCapturePageSetElement(obj As IndirectObject)
WebCapturePageSetElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new WebCapturePageSetElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements WebCapturePageSetElement EntryT Property

EntryT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "T" entry of the web capture page set object.

Notes

Represents the "T" entry of the web capture page set object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 353, page 622.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 389, page 802.


ZZ Elements WebCapturePageSetElement EntryTID Property

EntryTID Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "TID" entry of the web capture page set object.

Notes

Represents the "TID" entry of the web capture page set object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 353, page 622.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 389, page 802.


ZZ Elements SourceInformationElement

SourceInformationElement Class

This class represents the source information dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 355, page 623.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 391, page 803.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.SourceInformationElement

Method | Description
SourceInformationElement | Create a new SourceInformationElement.
 | inherited methods...

Property | Description
EntryAU | Represents the "AU" entry of the source information dictionary object.
EntryTS | Represents the "TS" entry of the source information dictionary object.
EntryE | Represents the "E" entry of the source information dictionary object.
EntryS | Represents the "S" entry of the source information dictionary object.
EntryC | Represents the "C" entry of the source information dictionary object.
 | inherited properties...


ZZ Elements SourceInformationElement Constructor Function

SourceInformationElement Function

Create a new SourceInformationElement.

Syntax

[C#]
SourceInformationElement()
SourceInformationElement(Atom atom, IndirectObject host)
SourceInformationElement(IndirectObject obj)
SourceInformationElement(Element relation, CreationOptions options)

[Visual Basic]
SourceInformationElement()
SourceInformationElement(atom As Atom, host As IndirectObject)
SourceInformationElement(obj As IndirectObject)
SourceInformationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SourceInformationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements SourceInformationElement EntryAU Property

EntryAU Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "AU" entry of the source information dictionary object.

Notes

Represents the "AU" entry of the source information dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

2) An UrlAliasElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 355, page 623.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 391, page 803.


ZZ Elements SourceInformationElement EntryTS Property

EntryTS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "TS" entry of the source information dictionary object.

Notes

Represents the "TS" entry of the source information dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a date string. For details see the StringAtom.DateToString and StringAtom.StringToDate functions.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 355, page 623.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 391, page 803.


ZZ Elements SourceInformationElement EntryE Property

EntryE Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "E" entry of the source information dictionary object.

Notes

Represents the "E" entry of the source information dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a date string. For details see the StringAtom.DateToString and StringAtom.StringToDate functions.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 355, page 623.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 391, page 803.


ZZ Elements SourceInformationElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "S" entry of the source information dictionary object.

Notes

Represents the "S" entry of the source information dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 355, page 623.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 391, page 803.


ZZ Elements SourceInformationElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] WebCaptureCommandElement [Visual Basic] WebCaptureCommandElement | null | No | Represents the "C" entry of the source information dictionary object.

Notes

Represents the "C" entry of the source information dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a WebCaptureCommandElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 355, page 623.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 391, page 803.


ZZ Elements UrlAliasElement

UrlAliasElement Class

This class represents the url alias dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 356, page 624.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 392, page 804.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.UrlAliasElement

Method | Description
UrlAliasElement | Create a new UrlAliasElement.
 | inherited methods...

Property | Description
EntryU | Represents the "U" entry of the url alias dictionary object.
EntryC | Represents the "C" entry of the url alias dictionary object.
 | inherited properties...


ZZ Elements UrlAliasElement Constructor Function

UrlAliasElement Function

Create a new UrlAliasElement.

Syntax

[C#]
UrlAliasElement()
UrlAliasElement(Atom atom, IndirectObject host)
UrlAliasElement(IndirectObject obj)
UrlAliasElement(Element relation, CreationOptions options)

[Visual Basic]
UrlAliasElement()
UrlAliasElement(atom As Atom, host As IndirectObject)
UrlAliasElement(obj As IndirectObject)
UrlAliasElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new UrlAliasElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements UrlAliasElement EntryU Property

EntryU Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "U" entry of the url alias dictionary object.

Notes

Represents the "U" entry of the url alias dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 356, page 624.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 392, page 804.


ZZ Elements UrlAliasElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "C" entry of the url alias dictionary object.

Notes

Represents the "C" entry of the url alias dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 356, page 624.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 392, page 804.


ZZ Elements WebCaptureCommandElement

WebCaptureCommandElement Class

This class represents the web capture command dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 357, page 624.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 393, page 804.

This class is always an indirect object because SourceInformationElement.EntryC and WebCaptureInformationElement.EntryC require it to be so.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.WebCaptureCommandElement

Method | Description
WebCaptureCommandElement | Create a new WebCaptureCommandElement.
 | inherited methods...

Property | Description
EntryURL | Represents the "URL" entry of the web capture command dictionary object.
EntryL | Represents the "L" entry of the web capture command dictionary object.
EntryF | Represents the "F" entry of the web capture command dictionary object.
EntryP | Represents the "P" entry of the web capture command dictionary object.
EntryCT | Represents the "CT" entry of the web capture command dictionary object.
EntryH | Represents the "H" entry of the web capture command dictionary object.
EntryS | Represents the "S" entry of the web capture command dictionary object.
 | inherited properties...


ZZ Elements WebCaptureCommandElement Constructor Function

WebCaptureCommandElement Function

Create a new WebCaptureCommandElement.

Syntax

[C#]
WebCaptureCommandElement()
WebCaptureCommandElement(Atom atom, IndirectObject host)
WebCaptureCommandElement(IndirectObject obj)
WebCaptureCommandElement(Element relation, CreationOptions options)

[Visual Basic]
WebCaptureCommandElement()
WebCaptureCommandElement(atom As Atom, host As IndirectObject)
WebCaptureCommandElement(obj As IndirectObject)
WebCaptureCommandElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new WebCaptureCommandElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements WebCaptureCommandElement EntryURL Property

EntryURL Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "URL" entry of the web capture command dictionary object.

Notes

Represents the "URL" entry of the web capture command dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 357, page 624.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 393, page 804.


ZZ Elements WebCaptureCommandElement EntryL Property

EntryL Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "L" entry of the web capture command dictionary object.

Notes

Represents the "L" entry of the web capture command dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 357, page 624.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 393, page 805.


ZZ Elements WebCaptureCommandElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "F" entry of the web capture command dictionary object.

Notes

Represents the "F" entry of the web capture command dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

The PDF specification states that this item assumes a value of 0 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 357, page 624.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 393, page 805.


ZZ Elements WebCaptureCommandElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "P" entry of the web capture command dictionary object.

Notes

Represents the "P" entry of the web capture command dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF string object.

2) A StreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 357, page 624.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 393, page 805.


ZZ Elements WebCaptureCommandElement EntryCT Property

EntryCT Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "CT" entry of the web capture command dictionary object.

Notes

Represents the "CT" entry of the web capture command dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This is encoded as a string using single byte ASCII encoding.

The PDF specification states that this item assumes a value of "application / x-www-form-urlencoded" if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 357, page 624.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 393, page 805.


ZZ Elements WebCaptureCommandElement EntryH Property

EntryH Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "H" entry of the web capture command dictionary object.

Notes

Represents the "H" entry of the web capture command dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 357, page 624.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 393, page 805.


ZZ Elements WebCaptureCommandElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] WebCaptureCommandSettingsElement [Visual Basic] WebCaptureCommandSettingsElement | null | No | Represents the "S" entry of the web capture command dictionary object.

Notes

Represents the "S" entry of the web capture command dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a WebCaptureCommandSettingsElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 357, page 625.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 393, page 805.


ZZ Elements WebCaptureCommandSettingsElement

WebCaptureCommandSettingsElement Class

This class represents the web capture command settings dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 359, page 626.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 395, page 806.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.WebCaptureCommandSettingsElement

Method | Description
WebCaptureCommandSettingsElement | Create a new WebCaptureCommandSettingsElement.
 | inherited methods...

Property | Description
EntryG | Represents the "G" entry of the web capture command settings dictionary object.
EntryC | Represents the "C" entry of the web capture command settings dictionary object.
 | inherited properties...


ZZ Elements WebCaptureCommandSettingsElement Constructor Function

WebCaptureCommandSettingsElement Function

Create a new WebCaptureCommandSettingsElement.

Syntax

[C#]
WebCaptureCommandSettingsElement()
WebCaptureCommandSettingsElement(Atom atom, IndirectObject host)
WebCaptureCommandSettingsElement(IndirectObject obj)
WebCaptureCommandSettingsElement(Element relation, CreationOptions options)

[Visual Basic]
WebCaptureCommandSettingsElement()
WebCaptureCommandSettingsElement(atom As Atom, host As IndirectObject)
WebCaptureCommandSettingsElement(obj As IndirectObject)
WebCaptureCommandSettingsElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new WebCaptureCommandSettingsElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements WebCaptureCommandSettingsElement EntryG Property

EntryG Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "G" entry of the web capture command settings dictionary object.

Notes

Represents the "G" entry of the web capture command settings dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 359, page 626.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 395, page 806.


ZZ Elements WebCaptureCommandSettingsElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "C" entry of the web capture command settings dictionary object.

Notes

Represents the "C" entry of the web capture command settings dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 359, page 626.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 395, page 806.


ZZ Elements BoxColorInformationElement

BoxColorInformationElement Class

This class represents the box colour information dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 360, page 630.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 396, page 810.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.BoxColorInformationElement

Method | Description
BoxColorInformationElement | Create a new BoxColorInformationElement.
 | inherited methods...

Property | Description
EntryCropBox | Represents the "CropBox" entry of the box colour information dictionary object.
EntryBleedBox | Represents the "BleedBox" entry of the box colour information dictionary object.
EntryTrimBox | Represents the "TrimBox" entry of the box colour information dictionary object.
EntryArtBox | Represents the "ArtBox" entry of the box colour information dictionary object.
 | inherited properties...


ZZ Elements BoxColorInformationElement Constructor Function

BoxColorInformationElement Function

Create a new BoxColorInformationElement.

Syntax

[C#]
BoxColorInformationElement()
BoxColorInformationElement(Atom atom, IndirectObject host)
BoxColorInformationElement(IndirectObject obj)
BoxColorInformationElement(Element relation, CreationOptions options)

[Visual Basic]
BoxColorInformationElement()
BoxColorInformationElement(atom As Atom, host As IndirectObject)
BoxColorInformationElement(obj As IndirectObject)
BoxColorInformationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new BoxColorInformationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements BoxColorInformationElement EntryCropBox Property

EntryCropBox Property

Type | Default Value | Read Only | Description
[C#] BoxStyleElement [Visual Basic] BoxStyleElement | null | No | Represents the "CropBox" entry of the box colour information dictionary object.

Notes

Represents the "CropBox" entry of the box colour information dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a BoxStyleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 360, page 630.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 396, page 810.


ZZ Elements BoxColorInformationElement EntryBleedBox Property

EntryBleedBox Property

Type | Default Value | Read Only | Description
[C#] BoxStyleElement [Visual Basic] BoxStyleElement | null | No | Represents the "BleedBox" entry of the box colour information dictionary object.

Notes

Represents the "BleedBox" entry of the box colour information dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a BoxStyleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 360, page 630.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 396, page 810.


ZZ Elements BoxColorInformationElement EntryTrimBox Property

EntryTrimBox Property

Type | Default Value | Read Only | Description
[C#] BoxStyleElement [Visual Basic] BoxStyleElement | null | No | Represents the "TrimBox" entry of the box colour information dictionary object.

Notes

Represents the "TrimBox" entry of the box colour information dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a BoxStyleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 360, page 631.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 396, page 810.


ZZ Elements BoxColorInformationElement EntryArtBox Property

EntryArtBox Property

Type | Default Value | Read Only | Description
[C#] BoxStyleElement [Visual Basic] BoxStyleElement | null | No | Represents the "ArtBox" entry of the box colour information dictionary object.

Notes

Represents the "ArtBox" entry of the box colour information dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a BoxStyleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 360, page 631.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 396, page 811.


ZZ Elements BoxStyleElement

BoxStyleElement Class

This class represents the box style dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 361, page 631.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 397, page 811.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.BoxStyleElement

Method | Description
BoxStyleElement | Create a new BoxStyleElement.
 | inherited methods...

Property | Description
EntryC | Represents the "C" entry of the box style dictionary object.
EntryW | Represents the "W" entry of the box style dictionary object.
EntryS | Represents the "S" entry of the box style dictionary object.
EntryD | Represents the "D" entry of the box style dictionary object.
 | inherited properties...


ZZ Elements BoxStyleElement Constructor Function

BoxStyleElement Function

Create a new BoxStyleElement.

Syntax

[C#]
BoxStyleElement()
BoxStyleElement(Atom atom, IndirectObject host)
BoxStyleElement(IndirectObject obj)
BoxStyleElement(Element relation, CreationOptions options)

[Visual Basic]
BoxStyleElement()
BoxStyleElement(atom As Atom, host As IndirectObject)
BoxStyleElement(obj As IndirectObject)
BoxStyleElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new BoxStyleElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements BoxStyleElement EntryC Property

EntryC Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "C" entry of the box style dictionary object.

Notes

Represents the "C" entry of the box style dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

Items in this array should have a minimum value of 0 and a maximum of 1.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 361, page 631.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 397, page 811.


ZZ Elements BoxStyleElement EntryW Property

EntryW Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "W" entry of the box style dictionary object.

Notes

Represents the "W" entry of the box style dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 361, page 631.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 397, page 811.


ZZ Elements BoxStyleElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the box style dictionary object.

Notes

Represents the "S" entry of the box style dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "S" if no value has been provided.

This item may take one of the following valid values:.

  • S
  • D

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 361, page 631.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 397, page 811.


ZZ Elements BoxStyleElement EntryD Property

EntryD Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "D" entry of the box style dictionary object.

Notes

Represents the "D" entry of the box style dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 361, page 631.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 397, page 811.


ZZ Elements PrintersMarkAnnotationElement

PrintersMarkAnnotationElement Class

This class represents the printer's mark annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 362, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 398, page 812.

This class is always an indirect object because it inherits from AnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.PrintersMarkAnnotationElement

Method | Description
PrintersMarkAnnotationElement | Create a new PrintersMarkAnnotationElement.
 | inherited methods...

Property | Description
EntryMN | Represents the "MN" entry of the printer's mark annotation object.
 | inherited properties...


ZZ Elements PrintersMarkAnnotationElement Constructor Function

PrintersMarkAnnotationElement Function

Create a new PrintersMarkAnnotationElement.

Syntax

[C#]
PrintersMarkAnnotationElement()
PrintersMarkAnnotationElement(Atom atom, IndirectObject host)
PrintersMarkAnnotationElement(IndirectObject obj)
PrintersMarkAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
PrintersMarkAnnotationElement()
PrintersMarkAnnotationElement(atom As Atom, host As IndirectObject)
PrintersMarkAnnotationElement(obj As IndirectObject)
PrintersMarkAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new PrintersMarkAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements PrintersMarkAnnotationElement EntryMN Property

EntryMN Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "MN" entry of the printer's mark annotation object.

Notes

Represents the "MN" entry of the printer's mark annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 362, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 398, page 812.


ZZ Elements SeparationElement

SeparationElement Class

This class represents the separation dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 364, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 400, page 813.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.SeparationElement

Method | Description
SeparationElement | Create a new SeparationElement.
 | inherited methods...

Property | Description
EntryPages | Represents the "Pages" entry of the separation dictionary object.
EntryDeviceColorant | Represents the "DeviceColorant" entry of the separation dictionary object.
EntryColorSpace | Represents the "ColorSpace" entry of the separation dictionary object.
 | inherited properties...


ZZ Elements SeparationElement Constructor Function

SeparationElement Function

Create a new SeparationElement.

Syntax

[C#]
SeparationElement()
SeparationElement(Atom atom, IndirectObject host)
SeparationElement(IndirectObject obj)
SeparationElement(Element relation, CreationOptions options)

[Visual Basic]
SeparationElement()
SeparationElement(atom As Atom, host As IndirectObject)
SeparationElement(obj As IndirectObject)
SeparationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new SeparationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements SeparationElement EntryPages Property

EntryPages Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<PageObjectElement> [Visual Basic] ArrayElement<PageObjectElement> | null | No | Represents the "Pages" entry of the separation dictionary object.

Notes

Represents the "Pages" entry of the separation dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains PageObjectElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 364, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 400, page 813.


ZZ Elements SeparationElement EntryDeviceColorant Property

EntryDeviceColorant Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "DeviceColorant" entry of the separation dictionary object.

Notes

Represents the "DeviceColorant" entry of the separation dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

2) A string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 364, page 632.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 400, page 813.


ZZ Elements SeparationElement EntryColorSpace Property

EntryColorSpace Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<ColorSpaceElement> [Visual Basic] ArrayElement<ColorSpaceElement> | null | No | Represents the "ColorSpace" entry of the separation dictionary object.

Notes

Represents the "ColorSpace" entry of the separation dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains ColorSpaceElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 364, page 633.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 400, page 813.


ZZ Elements OutputIntentElement

OutputIntentElement Class

This class represents the output intent dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 365, page 633.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 401, page 814.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OutputIntentElement

Method | Description
OutputIntentElement | Create a new OutputIntentElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the output intent dictionary object.
EntryS | Represents the "S" entry of the output intent dictionary object.
EntryOutputCondition | Represents the "OutputCondition" entry of the output intent dictionary object.
EntryOutputConditionIdentifier | Represents the "OutputConditionIdentifier" entry of the output intent dictionary object.
EntryRegistryName | Represents the "RegistryName" entry of the output intent dictionary object.
EntryInfo | Represents the "Info" entry of the output intent dictionary object.
EntryDestOutputProfile | Represents the "DestOutputProfile" entry of the output intent dictionary object.
EntryDestOutputProfileRef | Represents the "DestOutputProfileRef" entry of the output intent dictionary object.
EntryMixingHints | Represents the "MixingHints" entry of the output intent dictionary object.
EntrySpectralData | Represents the "SpectralData" entry of the output intent dictionary object.
 | inherited properties...


ZZ Elements OutputIntentElement Constructor Function

OutputIntentElement Function

Create a new OutputIntentElement.

Syntax

[C#]
OutputIntentElement()
OutputIntentElement(Atom atom, IndirectObject host)
OutputIntentElement(IndirectObject obj)
OutputIntentElement(Element relation, CreationOptions options)

[Visual Basic]
OutputIntentElement()
OutputIntentElement(atom As Atom, host As IndirectObject)
OutputIntentElement(obj As IndirectObject)
OutputIntentElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OutputIntentElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OutputIntentElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the output intent dictionary object.

Notes

Represents the "Type" entry of the output intent dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "OutputIntent".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 365, page 633.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 401, page 814.


ZZ Elements OutputIntentElement EntryS Property

EntryS Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "S" entry of the output intent dictionary object.

Notes

Represents the "S" entry of the output intent dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 365, page 633.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 401, page 814.


ZZ Elements OutputIntentElement EntryOutputCondition Property

EntryOutputCondition Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "OutputCondition" entry of the output intent dictionary object.

Notes

Represents the "OutputCondition" entry of the output intent dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 365, page 633.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 401, page 814.


ZZ Elements OutputIntentElement EntryOutputConditionIdentifier Property

EntryOutputConditionIdentifier Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "OutputConditionIdentifier" entry of the output intent dictionary object.

Notes

Represents the "OutputConditionIdentifier" entry of the output intent dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 365, page 634.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 401, page 815.


ZZ Elements OutputIntentElement EntryRegistryName Property

EntryRegistryName Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "RegistryName" entry of the output intent dictionary object.

Notes

Represents the "RegistryName" entry of the output intent dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 365, page 634.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 401, page 815.


ZZ Elements OutputIntentElement EntryInfo Property

EntryInfo Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Info" entry of the output intent dictionary object.

Notes

Represents the "Info" entry of the output intent dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 365, page 634.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 401, page 815.


ZZ Elements OutputIntentElement EntryDestOutputProfile Property

EntryDestOutputProfile Property

Type | Default Value | Read Only | Description
[C#] ICCProfileStreamElement [Visual Basic] ICCProfileStreamElement | null | No | Represents the "DestOutputProfile" entry of the output intent dictionary object.

Notes

Represents the "DestOutputProfile" entry of the output intent dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an ICCProfileStreamElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 365, page 634.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 401, page 815.


ZZ Elements OutputIntentElement EntryDestOutputProfileRef Property

EntryDestOutputProfileRef Property

Type | Default Value | Read Only | Description
[C#] OutputProfilesElement [Visual Basic] OutputProfilesElement | null | No | Represents the "DestOutputProfileRef" entry of the output intent dictionary object.

Notes

Represents the "DestOutputProfileRef" entry of the output intent dictionary object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains an OutputProfilesElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 365, page 633.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 401, page 815.


ZZ Elements OutputIntentElement EntryMixingHints Property

EntryMixingHints Property

Type | Default Value | Read Only | Description
[C#] DeviceNMixingHintsElement [Visual Basic] DeviceNMixingHintsElement | null | No | Represents the "MixingHints" entry of the output intent dictionary object.

Notes

Represents the "MixingHints" entry of the output intent dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains a DeviceNMixingHintsElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 365, page 633.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 401, page 816.


ZZ Elements OutputIntentElement EntrySpectralData Property

EntrySpectralData Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "SpectralData" entry of the output intent dictionary object.

Notes

Represents the "SpectralData" entry of the output intent dictionary object.

It is defined as part of the PDF 1.0 specification.

It contains an Element.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 365, page 633.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 401, page 816.


ZZ Elements TrapNetworkAnnotationElement

TrapNetworkAnnotationElement Class

This class represents the trap network annotation. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 366, page 637.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 403, page 820.

This class is always an indirect object because it inherits from AnnotationElement which is always an indirect object.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AnnotationElement
         WebSupergoo.ABCpdf12.Elements.TrapNetworkAnnotationElement

Method | Description
TrapNetworkAnnotationElement | Create a new TrapNetworkAnnotationElement.
 | inherited methods...

Property | Description
EntryLastModified | Represents the "LastModified" entry of the trap network annotation object.
EntryVersion | Represents the "Version" entry of the trap network annotation object.
EntryAnnotStates | Represents the "AnnotStates" entry of the trap network annotation object.
EntryFontFauxing | Represents the "FontFauxing" entry of the trap network annotation object.
 | inherited properties...


ZZ Elements TrapNetworkAnnotationElement Constructor Function

TrapNetworkAnnotationElement Function

Create a new TrapNetworkAnnotationElement.

Syntax

[C#]
TrapNetworkAnnotationElement()
TrapNetworkAnnotationElement(Atom atom, IndirectObject host)
TrapNetworkAnnotationElement(IndirectObject obj)
TrapNetworkAnnotationElement(Element relation, CreationOptions options)

[Visual Basic]
TrapNetworkAnnotationElement()
TrapNetworkAnnotationElement(atom As Atom, host As IndirectObject)
TrapNetworkAnnotationElement(obj As IndirectObject)
TrapNetworkAnnotationElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new TrapNetworkAnnotationElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements TrapNetworkAnnotationElement EntryLastModified Property

EntryLastModified Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "LastModified" entry of the trap network annotation object.

Notes

Represents the "LastModified" entry of the trap network annotation object.

It is defined as part of the PDF 1.4 specification.

It contains a string representing a PDF string object.

This is encoded as a date string. For details see the StringAtom.DateToString and StringAtom.StringToDate functions.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 366, page 637.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 403, page 820.


ZZ Elements TrapNetworkAnnotationElement EntryVersion Property

EntryVersion Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "Version" entry of the trap network annotation object.

Notes

Represents the "Version" entry of the trap network annotation object.

It is defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 366, page 637.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 403, page 821.


ZZ Elements TrapNetworkAnnotationElement EntryAnnotStates Property

EntryAnnotStates Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "AnnotStates" entry of the trap network annotation object.

Notes

Represents the "AnnotStates" entry of the trap network annotation object.

It is defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF name objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 366, page 637.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 403, page 821.


ZZ Elements TrapNetworkAnnotationElement EntryFontFauxing Property

EntryFontFauxing Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<FontElement> [Visual Basic] ArrayElement<FontElement> | null | No | Represents the "FontFauxing" entry of the trap network annotation object.

Notes

Represents the "FontFauxing" entry of the trap network annotation object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains FontElements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 366, page 638.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 403, page 821.


ZZ Elements TrapNetworkAppearanceStreamElement

TrapNetworkAppearanceStreamElement Class

This class represents the trap network appearance stream. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 367, page 638.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 404, page 821.

This class is always an indirect object because it is also a StreamElement and these are always indirect objects.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.XObjectElement
         WebSupergoo.ABCpdf12.Elements.FormXObjectElement
            WebSupergoo.ABCpdf12.Elements.TrapNetworkAppearanceStreamElement

Method | Description
TrapNetworkAppearanceStreamElement | Create a new TrapNetworkAppearanceStreamElement.
 | inherited methods...

Property | Description
EntryPCM | Represents the "PCM" entry of the trap network appearance stream object.
EntrySeparationColorNames | Represents the "SeparationColorNames" entry of the trap network appearance stream object.
EntryTrapRegions | Represents the "TrapRegions" entry of the trap network appearance stream object.
EntryTrapStyles | Represents the "TrapStyles" entry of the trap network appearance stream object.
 | inherited properties...


ZZ Elements TrapNetworkAppearanceStreamElement Constructor Function

TrapNetworkAppearanceStreamElement Function

Create a new TrapNetworkAppearanceStreamElement.

Syntax

[C#]
TrapNetworkAppearanceStreamElement()
TrapNetworkAppearanceStreamElement(Atom atom, IndirectObject host)
TrapNetworkAppearanceStreamElement(IndirectObject obj)
TrapNetworkAppearanceStreamElement(Element relation, CreationOptions options)

[Visual Basic]
TrapNetworkAppearanceStreamElement()
TrapNetworkAppearanceStreamElement(atom As Atom, host As IndirectObject)
TrapNetworkAppearanceStreamElement(obj As IndirectObject)
TrapNetworkAppearanceStreamElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new TrapNetworkAppearanceStreamElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements TrapNetworkAppearanceStreamElement EntryPCM Property

EntryPCM Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "PCM" entry of the trap network appearance stream object.

Notes

Represents the "PCM" entry of the trap network appearance stream object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • DeviceGray
  • DeviceRGB
  • DeviceCMYK
  • DeviceCMY
  • DeviceRGBK
  • DeviceN

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 367, page 638.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 404, page 821.


ZZ Elements TrapNetworkAppearanceStreamElement EntrySeparationColorNames Property

EntrySeparationColorNames Property

Type | Default Value | Read Only | Description
[C#] IList<string> [Visual Basic] IList<string> | null | No | Represents the "SeparationColorNames" entry of the trap network appearance stream object.

Notes

Represents the "SeparationColorNames" entry of the trap network appearance stream object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains strings, representing PDF name objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 367, page 638.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 404, page 821.


ZZ Elements TrapNetworkAppearanceStreamElement EntryTrapRegions Property

EntryTrapRegions Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "TrapRegions" entry of the trap network appearance stream object.

Notes

Represents the "TrapRegions" entry of the trap network appearance stream object.

It is an optional entry defined as part of the PDF 1.0 specification. It was deprecated in PDF 2.0.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 367, page 638.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 404, page 822.


ZZ Elements TrapNetworkAppearanceStreamElement EntryTrapStyles Property

EntryTrapStyles Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "TrapStyles" entry of the trap network appearance stream object.

Notes

Represents the "TrapStyles" entry of the trap network appearance stream object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 367, page 638.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 404, page 822.


ZZ Elements OpiElement

OpiElement Class

This class represents the opi dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 639.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 370, page 641.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 823.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 407, page 825.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OpiElement
         WebSupergoo.ABCpdf12.Elements.Version13OpiElement
         WebSupergoo.ABCpdf12.Elements.Version20OpiElement

Method | Description
OpiElement | Create a new OpiElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the opi dictionary object.
EntryVersion | Represents the "Version" entry of the opi dictionary object.
 | inherited properties...


ZZ Elements OpiElement Constructor Function

OpiElement Function

Create a new OpiElement.

Syntax

[C#]
OpiElement()
OpiElement(Atom atom, IndirectObject host)
OpiElement(IndirectObject obj)
OpiElement(Element relation, CreationOptions options)

[Visual Basic]
OpiElement()
OpiElement(atom As Atom, host As IndirectObject)
OpiElement(obj As IndirectObject)
OpiElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OpiElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OpiElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the opi dictionary object.

Notes

Represents the "Type" entry of the opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "OPI".

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 639.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 823.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 370, page 641.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 407, page 825.


ZZ Elements OpiElement EntryVersion Property

EntryVersion Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Version" entry of the opi dictionary object.

Notes

Represents the "Version" entry of the opi dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 639.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 823.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 370, page 641.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 407, page 825.


ZZ Elements OpiVersionElement

OpiVersionElement Class

This class represents the opi version dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 368, page 639.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 405, page 823.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OpiVersionElement

Method | Description
OpiVersionElement | Create a new OpiVersionElement.
 | inherited methods...

Property | Description
Entry13 | Represents the "1.
Entry20 | Represents the "2.
 | inherited properties...


ZZ Elements OpiVersionElement Constructor Function

OpiVersionElement Function

Create a new OpiVersionElement.

Syntax

[C#]
OpiVersionElement()
OpiVersionElement(Atom atom, IndirectObject host)
OpiVersionElement(IndirectObject obj)
OpiVersionElement(Element relation, CreationOptions options)

[Visual Basic]
OpiVersionElement()
OpiVersionElement(atom As Atom, host As IndirectObject)
OpiVersionElement(obj As IndirectObject)
OpiVersionElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new OpiVersionElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements OpiVersionElement Entry13 Property

Entry13 Property

Type | Default Value | Read Only | Description
[C#] Version13OpiElement [Visual Basic] Version13OpiElement | null | No | Represents the "1.

Notes

Represents the "1.3" entry of the opi version dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains a Version13OpiElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 368, page 639.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 405, page 823.


ZZ Elements OpiVersionElement Entry20 Property

Entry20 Property

Type | Default Value | Read Only | Description
[C#] Version20OpiElement [Visual Basic] Version20OpiElement | null | No | Represents the "2.

Notes

Represents the "2.0" entry of the opi version dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains a Version20OpiElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 368, page 639.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 405, page 823.


ZZ Elements Version13OpiElement

Version13OpiElement Class

This class represents the version 1.3 opi dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 639.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 823.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OpiElement
         WebSupergoo.ABCpdf12.Elements.Version13OpiElement

Method | Description
Version13OpiElement | Create a new Version13OpiElement.
 | inherited methods...

Property | Description
EntryF | Represents the "F" entry of the version 1.
EntryID | Represents the "ID" entry of the version 1.
EntryComments | Represents the "Comments" entry of the version 1.
EntrySize | Represents the "Size" entry of the version 1.
EntryCropRect | Represents the "CropRect" entry of the version 1.
EntryCropFixed | Represents the "CropFixed" entry of the version 1.
EntryPosition | Represents the "Position" entry of the version 1.
EntryResolution | Represents the "Resolution" entry of the version 1.
EntryColorType | Represents the "ColorType" entry of the version 1.
EntryColor | Represents the "Color" entry of the version 1.
EntryTint | Represents the "Tint" entry of the version 1.
EntryOverprint | Represents the "Overprint" entry of the version 1.
EntryImageType | Represents the "ImageType" entry of the version 1.
EntryGrayMap | Represents the "GrayMap" entry of the version 1.
EntryTransparency | Represents the "Transparency" entry of the version 1.
EntryTags | Represents the "Tags" entry of the version 1.
 | inherited properties...


ZZ Elements Version13OpiElement Constructor Function

Version13OpiElement Function

Create a new Version13OpiElement.

Syntax

[C#]
Version13OpiElement()
Version13OpiElement(Atom atom, IndirectObject host)
Version13OpiElement(IndirectObject obj)
Version13OpiElement(Element relation, CreationOptions options)

[Visual Basic]
Version13OpiElement()
Version13OpiElement(atom As Atom, host As IndirectObject)
Version13OpiElement(obj As IndirectObject)
Version13OpiElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Version13OpiElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Version13OpiElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] FileSpecificationElement [Visual Basic] FileSpecificationElement | null | No | Represents the "F" entry of the version 1.

Notes

Represents the "F" entry of the version 1.3 opi dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a FileSpecificationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 639.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 823.


ZZ Elements Version13OpiElement EntryID Property

EntryID Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ID" entry of the version 1.

Notes

Represents the "ID" entry of the version 1.3 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 640.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 823.


ZZ Elements Version13OpiElement EntryComments Property

EntryComments Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Comments" entry of the version 1.

Notes

Represents the "Comments" entry of the version 1.3 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 640.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 823.


ZZ Elements Version13OpiElement EntrySize Property

EntrySize Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "Size" entry of the version 1.

Notes

Represents the "Size" entry of the version 1.3 opi dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains integers, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 640.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 824.


ZZ Elements Version13OpiElement EntryCropRect Property

EntryCropRect Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "CropRect" entry of the version 1.

Notes

Represents the "CropRect" entry of the version 1.3 opi dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 640.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 824.


ZZ Elements Version13OpiElement EntryCropFixed Property

EntryCropFixed Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "CropFixed" entry of the version 1.

Notes

Represents the "CropFixed" entry of the version 1.3 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 640.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 824.


ZZ Elements Version13OpiElement EntryPosition Property

EntryPosition Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Position" entry of the version 1.

Notes

Represents the "Position" entry of the version 1.3 opi dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 640.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 824.


ZZ Elements Version13OpiElement EntryResolution Property

EntryResolution Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Resolution" entry of the version 1.

Notes

Represents the "Resolution" entry of the version 1.3 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 640.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 824.


ZZ Elements Version13OpiElement EntryColorType Property

EntryColorType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "ColorType" entry of the version 1.

Notes

Represents the "ColorType" entry of the version 1.3 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF name object.

The PDF specification states that this item assumes a value of "Spot" if no value has been provided.

This item may take one of the following valid values:.

  • Process
  • Spot
  • Separation

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 640.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 824.


ZZ Elements Version13OpiElement EntryColor Property

EntryColor Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "Color" entry of the version 1.

Notes

Represents the "Color" entry of the version 1.3 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 641.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 824.


ZZ Elements Version13OpiElement EntryTint Property

EntryTint Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Tint" entry of the version 1.

Notes

Represents the "Tint" entry of the version 1.3 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a double representing a PDF numeric object.

It should have a minimum value of 0 and a maximum of 1.

The PDF specification states that this item assumes a value of 1 if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 641.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 825.


ZZ Elements Version13OpiElement EntryOverprint Property

EntryOverprint Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "Overprint" entry of the version 1.

Notes

Represents the "Overprint" entry of the version 1.3 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 641.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 825.


ZZ Elements Version13OpiElement EntryImageType Property

EntryImageType Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "ImageType" entry of the version 1.

Notes

Represents the "ImageType" entry of the version 1.3 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains integers, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 641.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 825.


ZZ Elements Version13OpiElement EntryGrayMap Property

EntryGrayMap Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "GrayMap" entry of the version 1.

Notes

Represents the "GrayMap" entry of the version 1.3 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains integers, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 641.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 825.


ZZ Elements Version13OpiElement EntryTransparency Property

EntryTransparency Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "Transparency" entry of the version 1.

Notes

Represents the "Transparency" entry of the version 1.3 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of true if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 641.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 825.


ZZ Elements Version13OpiElement EntryTags Property

EntryTags Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "Tags" entry of the version 1.

Notes

Represents the "Tags" entry of the version 1.3 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 369, page 641.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 406, page 825.


ZZ Elements Version20OpiElement

Version20OpiElement Class

This class represents the version 2.0 opi dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 370, page 641.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 407, page 825.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.OpiElement
         WebSupergoo.ABCpdf12.Elements.Version20OpiElement

Method | Description
Version20OpiElement | Create a new Version20OpiElement.
 | inherited methods...

Property | Description
EntryF | Represents the "F" entry of the version 2.
EntryMainImage | Represents the "MainImage" entry of the version 2.
EntryTags | Represents the "Tags" entry of the version 2.
EntrySize | Represents the "Size" entry of the version 2.
EntryCropRect | Represents the "CropRect" entry of the version 2.
EntryOverprint | Represents the "Overprint" entry of the version 2.
EntryInks | Represents the "Inks" entry of the version 2.
EntryIncludedImageDimensions | Represents the "IncludedImageDimensions" entry of the version 2.
EntryIncludedImageQuality | Represents the "IncludedImageQuality" entry of the version 2.
 | inherited properties...


ZZ Elements Version20OpiElement Constructor Function

Version20OpiElement Function

Create a new Version20OpiElement.

Syntax

[C#]
Version20OpiElement()
Version20OpiElement(Atom atom, IndirectObject host)
Version20OpiElement(IndirectObject obj)
Version20OpiElement(Element relation, CreationOptions options)

[Visual Basic]
Version20OpiElement()
Version20OpiElement(atom As Atom, host As IndirectObject)
Version20OpiElement(obj As IndirectObject)
Version20OpiElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new Version20OpiElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements Version20OpiElement EntryF Property

EntryF Property

Type | Default Value | Read Only | Description
[C#] FileSpecificationElement [Visual Basic] FileSpecificationElement | null | No | Represents the "F" entry of the version 2.

Notes

Represents the "F" entry of the version 2.0 opi dictionary object.

It is a required entry defined as part of the PDF 1.0 specification.

It contains a FileSpecificationElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 370, page 641.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 407, page 825.


ZZ Elements Version20OpiElement EntryMainImage Property

EntryMainImage Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "MainImage" entry of the version 2.

Notes

Represents the "MainImage" entry of the version 2.0 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a string representing a PDF string object.

This string contains raw byte data. So it looks like a string but really it is just a wrapper for data.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 370, page 641.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 407, page 825.


ZZ Elements Version20OpiElement EntryTags Property

EntryTags Property

Type | Default Value | Read Only | Description
[C#] ArrayElement<Element> [Visual Basic] ArrayElement<Element> | null | No | Represents the "Tags" entry of the version 2.

Notes

Represents the "Tags" entry of the version 2.0 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 370, page 642.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 407, page 826.


ZZ Elements Version20OpiElement EntrySize Property

EntrySize Property

Type | Default Value | Read Only | Description
[C#] IList<double> [Visual Basic] IList<Double> | null | No | Represents the "Size" entry of the version 2.

Notes

Represents the "Size" entry of the version 2.0 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains doubles, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 370, page 642.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 407, page 826.


ZZ Elements Version20OpiElement EntryCropRect Property

EntryCropRect Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "CropRect" entry of the version 2.

Notes

Represents the "CropRect" entry of the version 2.0 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 370, page 642.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 407, page 826.


ZZ Elements Version20OpiElement EntryOverprint Property

EntryOverprint Property

Type | Default Value | Read Only | Description
[C#] bool? [Visual Basic] Boolean? | null | No | Represents the "Overprint" entry of the version 2.

Notes

Represents the "Overprint" entry of the version 2.0 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains a bool representing a PDF boolean object.

The PDF specification states that this item assumes a value of false if no value has been provided.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 370, page 642.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 407, page 826.


ZZ Elements Version20OpiElement EntryInks Property

EntryInks Property

Type | Default Value | Read Only | Description
[C#] Element [Visual Basic] Element | null | No | Represents the "Inks" entry of the version 2.

Notes

Represents the "Inks" entry of the version 2.0 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

This property may contain one of two different types:.

1) A string representing a PDF name object.

2) An array which contains Elements.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 370, page 642.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 407, page 827.


ZZ Elements Version20OpiElement EntryIncludedImageDimensions Property

EntryIncludedImageDimensions Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "IncludedImageDimensions" entry of the version 2.

Notes

Represents the "IncludedImageDimensions" entry of the version 2.0 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an array which contains integers, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 370, page 642.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 407, page 827.


ZZ Elements Version20OpiElement EntryIncludedImageQuality Property

EntryIncludedImageQuality Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "IncludedImageQuality" entry of the version 2.

Notes

Represents the "IncludedImageQuality" entry of the version 2.0 opi dictionary object.

It is an optional entry defined as part of the PDF 1.0 specification.

It contains an integer representing a PDF numeric object.

It should have a minimum value of 1 and a maximum of 3.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: 370, page 642.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 407, page 827.


ZZ Elements ArtifactAttributesElement

ArtifactAttributesElement Class

This class represents the artifact attributes. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 385, page 787.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.AttributesElement
         WebSupergoo.ABCpdf12.Elements.ArtifactAttributesElement

Method | Description
ArtifactAttributesElement | Create a new ArtifactAttributesElement.
 | inherited methods...

Property | Description
EntryType | Represents the "Type" entry of the artifact attributes object.
EntryBBox | Represents the "BBox" entry of the artifact attributes object.
EntrySubtype | Represents the "Subtype" entry of the artifact attributes object.
 | inherited properties...


ZZ Elements ArtifactAttributesElement Constructor Function

ArtifactAttributesElement Function

Create a new ArtifactAttributesElement.

Syntax

[C#]
ArtifactAttributesElement()
ArtifactAttributesElement(Atom atom, IndirectObject host)
ArtifactAttributesElement(IndirectObject obj)
ArtifactAttributesElement(Element relation, CreationOptions options)

[Visual Basic]
ArtifactAttributesElement()
ArtifactAttributesElement(atom As Atom, host As IndirectObject)
ArtifactAttributesElement(obj As IndirectObject)
ArtifactAttributesElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new ArtifactAttributesElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements ArtifactAttributesElement EntryType Property

EntryType Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Type" entry of the artifact attributes object.

Notes

Represents the "Type" entry of the artifact attributes object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

This item may take one of the following valid values:.

  • ;
  • Pagination
  • Layout
  • Page
  • Inline

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 385, page 787.


ZZ Elements ArtifactAttributesElement EntryBBox Property

EntryBBox Property

Type | Default Value | Read Only | Description
[C#] RectangleElement [Visual Basic] RectangleElement | null | No | Represents the "BBox" entry of the artifact attributes object.

Notes

Represents the "BBox" entry of the artifact attributes object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a RectangleElement.

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 385, page 787.


ZZ Elements ArtifactAttributesElement EntrySubtype Property

EntrySubtype Property

Type | Default Value | Read Only | Description
[C#] string [Visual Basic] string | null | No | Represents the "Subtype" entry of the artifact attributes object.

Notes

Represents the "Subtype" entry of the artifact attributes object.

It is an optional entry defined as part of the PDF 2.0 specification.

It contains a string representing a PDF name object.

If provided, this item must always take the value "Header".

The specification defines this as exensible which means that it may contain entries in addition to those defined in the specification.

In fact almost all objects are extensible but the fact that it is explicitly mentioned, implies that extra entries should be regarded as normal rather than exceptional.

For further details see The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: Annex E, page 673..

For definitive details see:.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: 385, page 787.


ZZ Elements LinearizationParameterElement

LinearizationParameterElement Class

This class represents the linearization parameter dictionary. This is definitively detailed in:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: f.1, page 680.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: f.1, page 877.

System.Object
   WebSupergoo.ABCpdf12.Elements.Element
      WebSupergoo.ABCpdf12.Elements.LinearizationParameterElement

Method | Description
LinearizationParameterElement | Create a new LinearizationParameterElement.
 | inherited methods...

Property | Description
EntryLinearized | Represents the "Linearized" entry of the linearization parameter dictionary object.
EntryL | Represents the "L" entry of the linearization parameter dictionary object.
EntryH | Represents the "H" entry of the linearization parameter dictionary object.
EntryO | Represents the "O" entry of the linearization parameter dictionary object.
EntryE | Represents the "E" entry of the linearization parameter dictionary object.
EntryN | Represents the "N" entry of the linearization parameter dictionary object.
EntryT | Represents the "T" entry of the linearization parameter dictionary object.
EntryP | Represents the "P" entry of the linearization parameter dictionary object.
 | inherited properties...


ZZ Elements LinearizationParameterElement Constructor Function

LinearizationParameterElement Function

Create a new LinearizationParameterElement.

Syntax

[C#]
LinearizationParameterElement()
LinearizationParameterElement(Atom atom, IndirectObject host)
LinearizationParameterElement(IndirectObject obj)
LinearizationParameterElement(Element relation, CreationOptions options)

[Visual Basic]
LinearizationParameterElement()
LinearizationParameterElement(atom As Atom, host As IndirectObject)
LinearizationParameterElement(obj As IndirectObject)
LinearizationParameterElement(relation As Element, options As CreationOptions)

Params
Name | Description
atom | The Atom to be assigned to this Element.
host | An IndirectObject. This can be any IndirectObject from the Soup but ideally should be one closely associated with the Atom.
obj | The IndirectObject to be assigned to this Element.
relation | An Element. This can be any Element in the Soup but ideally should be one closely associated with this Element.
options | Options related to creation. For example this allows you to determine whether the Element should be created using an IndirectObject rather than just an Atom. If not provided a default set of options is used.

Notes

Create a new LinearizationParameterElement.

The different constructors allow different ways of creating an Element. Some are used for wrapping existing Atoms or IndirectObjects and others are for creating new ones.

The constructor taking a relation Element creates a new object in the document - it is typically the constructor you will want to use. Do not specify creation options unless you have very specific needs.

However for your first Element - one you can use as a relation for the others - you will need to wrap an existing IndirectObject inside an Element. For this you might use code of the following form "CatalogElement root = new CatalogElement(doc.ObjectSoup.Catalog)".

The parameterless constructor allows you to create an empty Element. By empty we mean it has no contents - no Atom within it. So before use an Atom must be Assigned or Created. In practice it is easiest to do this using one of the other constructors.

The atom and host constructor is used to wrap an existing Atom. It creates an Element and then Assigns the Atom to it. The result is a specialized Element which can be used to examine or modify the contents of the Atom.

The CreationOptions enumeration may take the following values:

  • Default - Default creation options for this particular type of Element.
  • Indirect - Create Element containing an IndirectObject.
  • Direct - Create Element containing an Atom.


ZZ Elements LinearizationParameterElement EntryLinearized Property

EntryLinearized Property

Type | Default Value | Read Only | Description
[C#] double? [Visual Basic] Double? | null | No | Represents the "Linearized" entry of the linearization parameter dictionary object.

Notes

Represents the "Linearized" entry of the linearization parameter dictionary object.

It is a required entry defined as part of the PDF 1.2 specification.

It contains a double representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: f.1, page 680.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: f.1, page 877.


ZZ Elements LinearizationParameterElement EntryL Property

EntryL Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "L" entry of the linearization parameter dictionary object.

Notes

Represents the "L" entry of the linearization parameter dictionary object.

It is a required entry defined as part of the PDF 1.2 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: f.1, page 680.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: f.1, page 877.


ZZ Elements LinearizationParameterElement EntryH Property

EntryH Property

Type | Default Value | Read Only | Description
[C#] IList<int> [Visual Basic] IList<Integer> | null | No | Represents the "H" entry of the linearization parameter dictionary object.

Notes

Represents the "H" entry of the linearization parameter dictionary object.

It is a required entry defined as part of the PDF 1.2 specification.

It contains an array which contains integers, representing PDF numeric objects.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: f.1, page 680.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: f.1, page 877.


ZZ Elements LinearizationParameterElement EntryO Property

EntryO Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "O" entry of the linearization parameter dictionary object.

Notes

Represents the "O" entry of the linearization parameter dictionary object.

It is a required entry defined as part of the PDF 1.2 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: f.1, page 680.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: f.1, page 877.


ZZ Elements LinearizationParameterElement EntryE Property

EntryE Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "E" entry of the linearization parameter dictionary object.

Notes

Represents the "E" entry of the linearization parameter dictionary object.

It is a required entry defined as part of the PDF 1.2 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: f.1, page 680.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: f.1, page 877.


ZZ Elements LinearizationParameterElement EntryN Property

EntryN Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "N" entry of the linearization parameter dictionary object.

Notes

Represents the "N" entry of the linearization parameter dictionary object.

It is a required entry defined as part of the PDF 1.2 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: f.1, page 680.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: f.1, page 877.


ZZ Elements LinearizationParameterElement EntryT Property

EntryT Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "T" entry of the linearization parameter dictionary object.

Notes

Represents the "T" entry of the linearization parameter dictionary object.

It is a required entry defined as part of the PDF 1.2 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: f.1, page 680.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: f.1, page 878.


ZZ Elements LinearizationParameterElement EntryP Property

EntryP Property

Type | Default Value | Read Only | Description
[C#] int? [Visual Basic] Integer? | null | No | Represents the "P" entry of the linearization parameter dictionary object.

Notes

Represents the "P" entry of the linearization parameter dictionary object.

It is an optional entry defined as part of the PDF 1.2 specification.

It contains an integer representing a PDF numeric object.

For definitive details see:.

The ISO PDF Specification, ISO 32000-1:2008 PDF 1.7; Table: f.1, page 680.

The ISO PDF Specification, ISO 32000-2:2017 PDF 2.0; Table: f.1, page 878.


Introduction to Effects

Effects are an operation which can be applied to images. They include common and useful functions like blur and sharpen filters.

Basics

Effects are applied using the EffectOperation class. To apply an effect you can use code as simple as this.

[C#]

void function() {
  using (Doc doc = new Doc()) {
    AddImagePage(doc, img5);
    using (ImageLayer layer = AddImagePage(doc, img5)) {
      using (EffectOperation effect = new EffectOperation("Sharpen")) {
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectSharpen1b.jpg");
}

[Visual Basic]
Sub ...
  Using doc As New Doc()
    AddImagePage(doc, img5)
    Using layer As ImageLayer = AddImagePage(doc, img5)
      Using effect As New EffectOperation("Sharpen")
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectSharpen1b.jpg")
End Sub

Examples

The examples make use of a function named AddImagePage. This function simply creates an appropriate Doc object, adds the image and returns the ImageLayer which was added.

[C#]

private ImageLayer AddImagePage(Doc doc, string path) {
  using (XImage img = XImage.FromFile(path, null)) {
    doc.MediaBox.SetSides(0, 0, img.Width, img.Height);
    doc.Page = doc.AddPage();
    doc.Rect.String = doc.MediaBox.String;
    int id = doc.AddImageObject(img);
    return (ImageLayer)doc.ObjectSoup[id];
  }
}

[Visual Basic]
Private Function AddImagePage(doc As Doc, path As String) As ImageLayer
  Using img As XImage = XImage.FromFile(path, Nothing)
    doc.MediaBox.SetSides(0, 0, img.Width, img.Height)
    doc.Page = doc.AddPage()
    doc.Rect.[String] = doc.MediaBox.[String]
    Dim id As Integer = doc.AddImageObject(img)
    Return DirectCast(doc.ObjectSoup(id), ImageLayer)
  End Using
End Function


AutoLevels Effect

AutoLevels automatically adjusts brightness and contrast to produce a balanced image with a good range of color intensities. In doing so it performs a function very much like the Levels effect, automatically deriving settings based on the image provided.

Settings
Name | Default | Description
Clip | 0.5 % | The percentage of extreme color values to ignore. This applies to the top and the bottom extremes.

Workings

Well defined images span an entire range of color intensities. However it is common to find images that do not. If a photo has been overexposed it will be too bright - there will be few colors at the low ends of intensity and many at the high end. Similarly if a photograph has been underexposed it will be very dark - all the colors will be at the low end of the range and virtually none at the high end.

The AutoLevels effect detects and fixes this kind of imbalance. It scans through the levels of intensity within the image and chooses a level that should be regarded as black (low intensity) and another that should be regarded as white (high intensity). It then stretches the levels in the image so that all the intensities present lie between the black and the white points. This results in an image with a good span of color intensities.

To mitigate the effect of outliers - small numbers of pixels at extreme values of intensity - a clipping percentage is used. By default the value is 0.5% which means that the bottom and top 0.5% of pixels will be ignored when determining the black and white points.

Example

The following example images show the effect of AutoLevels at different clipping levels.

[C#]

void function() {
  using (Doc doc = new Doc()) {
    AddImagePage(doc, img1); // original image
    doc.Rendering.Save("EffectAutoLevels5.jpg");
    using (ImageLayer layer = AddImagePage(doc, img1)) {
      using (EffectOperation effect = new EffectOperation("Auto Levels")) {
        effect.Parameters["Clip"].Value = 0.5;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectAutoLevels50.jpg");
    using (ImageLayer layer = AddImagePage(doc, img1)) {
      using (EffectOperation effect = new EffectOperation("Auto Levels")) {
        effect.Parameters["Clip"].Value = 5.0;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectAutoLevels.jpg");
  }
}

[Visual Basic]
Sub ...
  Using doc As New Doc()
    AddImagePage(doc, img1)
    ' original image
    doc.Rendering.Save("EffectAutoLevels5.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img1)
      Using effect As New EffectOperation("Auto Levels")
        effect.Parameters("Clip").Value = 0.5
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectAutoLevels50.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img1)
      Using effect As New EffectOperation("Auto Levels")
        effect.Parameters("Clip").Value = 5.0
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectAutoLevels.jpg")
  End Using
End Sub

Original Image before AutoLevels

After AutoLevels Clip 0.5%

After AutoLevels Clip 5.0%


Brightness Effect

The Brightness effect can be used to lighten the image or to darken it.

Settings
Name | Default | Description
Amount | 0 % | Amount to lighten or darken the image.

Workings

The value given is added to every pixel in the image. The value may be negative in which case the result is to darken rather than lighten the image.

Example

The following show the effect of brightening or darkening an image.

[C#]

void function() {
  using (Doc doc = new Doc()) {
    AddImagePage(doc, img2); // original image
    doc.Rendering.Save("EffectBrightness.jpg");
    using (ImageLayer layer = AddImagePage(doc, img2)) {
      using (EffectOperation effect = new EffectOperation("Brightness")) {
        effect.Parameters["Amount"].Value = 20;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectBrightness20.jpg");
    using (ImageLayer layer = AddImagePage(doc, img2)) {
      using (EffectOperation effect = new EffectOperation("Brightness")) {
        effect.Parameters["Amount"].Value = -20;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectBrightness-20.jpg");
    using (ImageLayer layer = AddImagePage(doc, img2)) {
      using (EffectOperation effect = new EffectOperation("Brightness")) {
        effect.Parameters["Amount"].Value = 60;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectBrightness60.jpg");
  }
}

[Visual Basic]
Sub ...
  Using doc As New Doc()
    AddImagePage(doc, img2)
    ' original image
    doc.Rendering.Save("EffectBrightness.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img2)
      Using effect As New EffectOperation("Brightness")
        effect.Parameters("Amount").Value = 20
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectBrightness20.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img2)
      Using effect As New EffectOperation("Brightness")
        effect.Parameters("Amount").Value = -20
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectBrightness-20.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img2)
      Using effect As New EffectOperation("Brightness")
        effect.Parameters("Amount").Value = 60
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectBrightness60.jpg")
  End Using
End Sub

Original Image | Brightness Amount 20
Brightness Amount -20 | Brightness Amount 60


Contrast Effect

The Contrast effect can be used to increase or decrease the contrast of an image.

Settings
Name | Default | Description
Amount | 0 % | Amount to increase or decrease contrast by.

Workings

The value given is used to stretch the contrast within the image. Values greater than zero increase the amount of contrast while those less than zero decrease the contrast.

Example

The following show the effect of increasing and decreasing contrast.

[C#]

void function() {
  using (Doc doc = new Doc()) {
    AddImagePage(doc, img2); // original image
    doc.Rendering.Save("EffectContrast.jpg");
    using (ImageLayer layer = AddImagePage(doc, img2)) {
      using (EffectOperation effect = new EffectOperation("Contrast")) {
        effect.Parameters["Amount"].Value = 25;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectContrast25.jpg");
    using (ImageLayer layer = AddImagePage(doc, img2)) {
      using (EffectOperation effect = new EffectOperation("Contrast")) {
        effect.Parameters["Amount"].Value = 50;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectContrast50.jpg");
    using (ImageLayer layer = AddImagePage(doc, img2)) {
      using (EffectOperation effect = new EffectOperation("Contrast")) {
        effect.Parameters["Amount"].Value = -50;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectContrast-50.jpg");
  }
}

[Visual Basic]
Sub ...
  Using doc As New Doc()
    AddImagePage(doc, img2)
    ' original image
    doc.Rendering.Save("EffectContrast.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img2)
      Using effect As New EffectOperation("Contrast")
        effect.Parameters("Amount").Value = 25
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectContrast25.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img2)
      Using effect As New EffectOperation("Contrast")
        effect.Parameters("Amount").Value = 50
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectContrast50.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img2)
      Using effect As New EffectOperation("Contrast")
        effect.Parameters("Amount").Value = -50
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectContrast-50.jpg")
  End Using
End Sub

Original Image | Contrast Amount 25
Contrast Amount 50 | Contrast Amount -50


Convolution Effect

The Convolution Effect allows you to produce a range of effects by specifying a set of convolution kernels. A simple explanation is given here but you may wish to refer to other sources for complete descriptions of convolution and how you can use it.

Settings
Name | Default | Description
Width | 3 pixels | The width of the filter to be applied.
Height | 3 pixels | The height of the filter to be applied.
X | 2 pixels | The horizontal center of the filter in pixels from top left.
Y | 2 pixels | The vertical center of the filter in pixels from top left.
Number | 2 | The number of kernels to apply.
Values | See desc. | The values for the kernels in a comma delimited list. The items in the list may be integers or floating point numbers. The default value is: "-1,0,1,-2,0,2,-1,0,1,1,2,1,0,0,0,-1,-2,-1"

Workings

Convolution is a general purpose filter effect for images. It works by determining the value of a central pixel by adding the weighted values of all its neighbors together. The weights applied to each pixel are determined by what is called a convolution kernel.

So if you want to take the average of all the immediate neighbors of a central pixel you would specify an equally weighted convolution kernel. Note that the total sum of all the weights is one so that the overall brightness of the image is not affected by the convolution. Note that the anchor point is highlighted to show which pixel should be regarded as central.

0.1111 | 0.1111 | 0.1111
0.1111 | 0.1112 | 0.1111
0.1111 | 0.1111 | 0.1111

If you wanted to take the average of the pixels immediately above, below and to the sides of the central pixel, and you wanted to exclude the central pixel itself, you would specify the following kernel.

0.0000 | 0.2500 | 0.0000
0.2500 | 0.0000 | 0.2500
0.0000 | 0.2500 | 0.0000

Although a three square kernel with the anchor at the center is most common, you can use other shapes of kernel. For example the following convolution will shift the entire image left by one pixel.

0.0000 1.0000

When you specify values you specify them from left to right and then from top to bottom. You can specify more than one filter at a time and the results will be added together.

The default kernel is a standard Sobel edge detector. This contains two filters - one vertical, one horizontal - to be applied and then added together. The two kernel values are:

-1 | 0 | 1
-2 | 0 | 2
-1 | 0 | 1

1 | 2 | 1
0 | 0 | 0
-1 | -2 | -1

Example

The following examples show the effect of the default kernel - a Sobel Edge Detector.

[C#]

void function() {
  using (Doc doc = new Doc()) {
    AddImagePage(doc, img3); // original image
    doc.Rendering.Save("EffectConvolution.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Convolution")) {
        // the default is a Sobel Edge Detector
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectConvolutionDefault.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Convolution")) {
        // the following is a high intensity sharpen filter
        double[] k = new double[] { 0, -1, 0, -1, 5, -1, 0, -1, 0 };
        effect.Parameters["Number"].Value = 1;
        effect.Parameters["Values"].Values = k;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectConvolutionSharpen.jpg");
  }
}

[Visual Basic]
Sub ...
  Using doc As New Doc()
    AddImagePage(doc, img3)
    ' original image
    doc.Rendering.Save("EffectConvolution.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Convolution")
        ' the default is a Sobel Edge Detector
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectConvolutionDefault.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Convolution")
        ' the following is a high intensity sharpen filter
        Dim k As Double() = New Double() {0, -1, 0, -1, 5, -1, _
          0, -1, 0}
        effect.Parameters("Number").Value = 1
        effect.Parameters("Values").Values = k
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectConvolutionSharpen.jpg")
  End Using
End Sub

Original Image

After Convolution Applied


Despeckle Effect

The Despeckle filter removes noise from images without blurring edges. It attempts to detect complex areas and leave these intact while smoothing areas where noise will be noticeable.

Settings
Name | Default | Description
Threshold | 20 | Threshold of complexity above which the image should not be smoothed.

Workings

The Despeckle filter smoothes areas in which noise is noticeable while leaving complex areas untouched. The effect is that grain or other noise is reduced without severely affecting edges.

The standard deviation of each pixel and its neighbors is calculated to determine if the area is one of high complexity or low complexity. If the complexity is lower than the threshold then the area is smoothed using a simple mean filter.

Example

The following examples show the effect of a Despeckle filter applied to a portion of detail from a picture of the Hubble Space Telescope. The image is characterized by a relatively smooth background but a complex foreground. The image is very grainy but the grain is obscured in areas of high complexity and is only really visible in the background.

[C#]

void function() {
  using (Doc doc = new Doc()) {
    AddImagePage(doc, img4); // original image
    doc.Rendering.Save("EffectDespeckle.jpg");
    using (ImageLayer layer = AddImagePage(doc, img4)) {
      using (EffectOperation effect = new EffectOperation("Despeckle")) {
        effect.Parameters["Threshold"].Value = 10;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectDespeckle10.jpg");
    using (ImageLayer layer = AddImagePage(doc, img4)) {
      using (EffectOperation effect = new EffectOperation("Despeckle")) {
        effect.Parameters["Threshold"].Value = 20;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectDespeckle20.jpg");
    using (ImageLayer layer = AddImagePage(doc, img4)) {
      using (EffectOperation effect = new EffectOperation("Despeckle")) {
        effect.Parameters["Threshold"].Value = 30;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectDespeckle30.jpg");
  }
}

[Visual Basic]
Sub ...
  Using doc As New Doc()
    AddImagePage(doc, img4)
    ' original image
    doc.Rendering.Save("EffectDespeckle.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img4)
      Using effect As New EffectOperation("Despeckle")
        effect.Parameters("Threshold").Value = 10
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectDespeckle10.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img4)
      Using effect As New EffectOperation("Despeckle")
        effect.Parameters("Threshold").Value = 20
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectDespeckle20.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img4)
      Using effect As New EffectOperation("Despeckle")
        effect.Parameters("Threshold").Value = 30
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectDespeckle30.jpg")
  End Using
End Sub

Original Image The sea is very grainy while the the grain is obscured in areas of high complexity like the telescope. | Despeckle Radius 10 The sea has been appreciably degrained while retaining detail in areas of complexity.
Despeckle Radius 20 The sea has been further degrained. Although the telescope remains unblurred, the coastline is becoming a little indistinct. | Despeckle Radius 30 The telescope remains unblurred but now the coastline has lost a lot of distinction.


Equalize Effect

Equalize modifies an image to ensure that all levels of brightness are equally well represented. This function is very similar to the AutoLevels effect but is designed to modify brightness rather than color levels.

Settings
Name | Default | Description
None |  |

Workings

Most images span an entire range of brightness with all levels well represented. However sometimes images are too light or too dark and some levels are overpopulated leaving others underpopulated.

The Equalize effect modifies an image so that all levels of brightness are equally well represented within the image.

Example

The following example images show the effect of Equalize.

[C#]

void function() {
  using (Doc doc = new Doc()) {
    AddImagePage(doc, img2); // original image
    doc.Rendering.Save("EffectEqualize1.jpg");
    using (ImageLayer layer = AddImagePage(doc, img2)) {
      using (EffectOperation effect = new EffectOperation("Equalize")) {
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectEqualizeAfter1.jpg");
    AddImagePage(doc, img6); // original image
    doc.Rendering.Save("EffectEqualize2.jpg");
    using (ImageLayer layer = AddImagePage(doc, img6)) {
      using (EffectOperation effect = new EffectOperation("Equalize")) {
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectEqualizeAfter2.jpg");
  }
}

[Visual Basic]
Sub ...
  Using doc As New Doc()
    AddImagePage(doc, img2)
    ' original image
    doc.Rendering.Save("EffectEqualize1.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img2)
      Using effect As New EffectOperation("Equalize")
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectEqualizeAfter1.jpg")
    AddImagePage(doc, img6)
    ' original image
    doc.Rendering.Save("EffectEqualize2.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img6)
      Using effect As New EffectOperation("Equalize")
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectEqualizeAfter2.jpg")
  End Using
End Sub

Original Image | After Equalize
Original Image | After Equalize


Gaussian Blur Effect

A Gaussian Blur is a general purpose blur filter. This removes fine image detail and noise leaving only larger scale changes. Gaussian Blurs produce a very pure smoothing effect without side effects.

Settings
Name | Default | Description
Radius | 1.5 pixels | Determines the scale of fine detail that will be removed. Low values remove only very fine detail while high values remove larger levels of detail. This value represents the standard deviation of the Gaussian function.

Workings

A Gaussian Blur is distinct from other blurs in that it has a well defined effect on different levels of detail within an image. As the level of detail becomes smaller the filter lets through less and less. With other types of blur (e.g. Mean Filter) the amount let through may vary considerably.

As well as having this well defined and consistent frequency response, certain characteristics of the Gaussian function mean that large blurs can be applied much faster than other similar kinds of filters.

Example

The following example images show the effect of Gaussian Blur.

[C#]

void function() {
  using (Doc doc = new Doc()) {
    AddImagePage(doc, img3); // original image
    doc.Rendering.Save("EffectGaussianBlur.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Gaussian Blur")) {
        effect.Parameters["Radius"].Value = 1.2;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectGaussianBlur12.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Gaussian Blur")) {
        effect.Parameters["Radius"].Value = 2.5;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectGaussianBlur25.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Gaussian Blur")) {
        effect.Parameters["Radius"].Value = 5.0;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectGaussianBlur50.jpg");
  }
}

[Visual Basic]
Sub ...
  Using doc As New Doc()
    AddImagePage(doc, img3)
    ' original image
    doc.Rendering.Save("EffectGaussianBlur.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Gaussian Blur")
        effect.Parameters("Radius").Value = 1.2
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectGaussianBlur12.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Gaussian Blur")
        effect.Parameters("Radius").Value = 2.5
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectGaussianBlur25.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Gaussian Blur")
        effect.Parameters("Radius").Value = 5.0
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectGaussianBlur50.jpg")
  End Using
End Sub

Original Image before Gaussian Blur

After Gaussian Blur Radius 1.2 pixels

After Gaussian Blur Radius 2.5 pixels

After Gaussian Blur Radius 5.0 pixels


Histogram Effect

Histogram is a image diagnostic rather than an image effect. When you apply the Histogram effect color levels are calculated and returned via the settings. The image is unaffected.

Settings
Name | Default | Description
Red | "" | A histogram of red levels as a comma delimited string.
Green | "" | A histogram of green levels as a comma delimited string.
Blue | "" | A histogram of blue levels as a comma delimited string.
RGB | "" | A histogram of RGB levels as a comma delimited string.

Workings

Image histograms show how color levels are distributed within an image. Each color channel has a value between 0 and 255 and the histogram simply returns the number of pixels with each of these values. A light image will have many values at the higher end of the histogram while a dark one will have many values at the lower end.

After the Histogram effect has been applied to an image the settings contain the histograms of each of the color channels and also of a combined RGB channel. These values are held as comma delimited strings.

Example

The following example images show the effect of Histogram..

[C#]

void function() {
  using (Doc doc = new Doc()) {
    AddImagePage(doc, img1); // original image
    doc.Rendering.Save("EffectHistogram.jpg");
    using (ImageLayer layer = AddImagePage(doc, img1)) {
      using (EffectOperation effect = new EffectOperation("Histogram")) {
        effect.Apply(layer.PixMap);
        var pars = effect.Parameters;
        doc.Color.SetRgb(255, 0, 0);
        DrawGraph(doc, pars["Red"].Values);
        doc.Color.SetRgb(0, 255, 0);
        DrawGraph(doc, pars["Green"].Values);
        doc.Color.SetRgb(0, 0, 255);
        DrawGraph(doc, pars["Blue"].Values);
      }
    }
    doc.Rendering.Save("EffectHistogramGraph.jpg");
  }
}

private void DrawGraph(Doc doc, double[] values) {
  double max = 0;
  for (int i = 0; i < values.Length; i++)
    max = Math.Max(max, values[i]);
  double[] points = new double[values.Length * 2];
  for (int i = 0; i < values.Length; i++) {
    double x = i * (doc.Rect.Width / values.Length);
    double y = values[i] * (doc.Rect.Height / max);
    points[(i * 2) + 0] = x;
    points[(i * 2) + 1] = y;
  }
  doc.AddPoly(points, false);
}

[Visual Basic]
Sub ...
  Using doc As New Doc()
    AddImagePage(doc, img1)
    ' original image
    doc.Rendering.Save("EffectHistogram.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img1)
      Using effect As New EffectOperation("Histogram")
        effect.Apply(layer.PixMap)
        Dim pars = effect.Parameters
        doc.Color.SetRgb(255, 0, 0)
        DrawGraph(doc, pars("Red").Values)
        doc.Color.SetRgb(0, 255, 0)
        DrawGraph(doc, pars("Green").Values)
        doc.Color.SetRgb(0, 0, 255)
        DrawGraph(doc, pars("Blue").Values)
      End Using
    End Using
    doc.Rendering.Save("EffectHistogramGraph.jpg")
  End Using
End Sub

Private Sub DrawGraph(doc As Doc, values As Double())
  Dim max As Double = 0
  For i As Integer = 0 To values.Length - 1
    max = Math.Max(max, values(i))
  Next
  Dim points As Double() = New Double(values.Length * 2 - 1) {}
  For i As Integer = 0 To values.Length - 1
    Dim x As Double = i * (doc.Rect.Width / values.Length)
    Dim y As Double = values(i) * (doc.Rect.Height / max)
    points((i * 2) + 0) = x
    points((i * 2) + 1) = y
  Next
  doc.AddPoly(points, False)
End Sub

Original Image

Histogram of Red Intensities

Histogram of Green Intensities

Histogram of Blue Intensities

Histogram of RGB Intensities

Note that the photograph is unbalanced with little color at the dark end of the spectrum.

The actual values held in each of the settings and used to produce these graphs are given below.

Red = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,1,1,2,1,1,2,2,3,9,9,19,14,25,
26,32,48,47,92,101,140,190,251,372,455,580,883,1304,1442,3397,2252,3638,5184,3402,
3244,2442,2754,2177,2217,1603,1776,1258,1273,1169,1030,1071,1009,953,1005,1005,
971,1002,998,"

Green = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,1,5,5,5,7,15,30,40,75,167,
208,794,550,1373,969,1640,2007,1857,1907,4072,2507, 1964,2528,1616,1844,1384,1111,
1027,901,1006,1013,886,812,699,736,761,804,672,753,625,689,705,626,657,783,630,780,
692,791,719,666"

Blue = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,3,4,7,9,
14,23,41,57,85,126,182,257,348,905,622,1711,1013,1940,1183,1438,2258,1481,3128,1837,
2640,4221,2013,2266,1618,1941,1207,1300,932,1020,840,890,784,801,742,757,873,749,797"

RGB = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,2,2,5,10,14,26,59,72,271,188,
466,332,558,687,637,671,1398,896,737,954,704,827,740,780,1078,988,2038,1426,2154,2393,
1846,2079,1561,2228,1562,1870,2149,1492,1409,1172,1255,1006,1000,907,888,878,871,807"


Laplacian Effect

The Laplacian filter is used for detection of edges in an image. It highlights areas in which intensity changes rapidly producing a picture of all the edges in an image.

Settings
Name | Default | Description
Radius | 0.8 pixels | This value determines the size of the edges that are detected. This value represents the standard deviation of the Laplacian of Gaussian function.

Workings

The Laplacian filter is a standard Laplacian of Gaussian convolution. This is a second derivative function designed to measure changes in intensity without being overly sensitive to noise. The function produces a peak at the start of the change in intensity and then at the end of the change.

Because the Laplacian of Gaussian produces a fairly wide convolution for a small radius this filter can become quite computationally expensive as radius is increased.

Example

The following examples show the effect of a Laplacian filter applied with a number of different settings.

[C#]

void function() {
  using (Doc doc = new Doc()) {
    AddImagePage(doc, img3); // original image
    doc.Rendering.Save("EffectLaplacian.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Laplacian")) {
        effect.Parameters["Radius"].Value = 0.8;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectLaplacian08.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Laplacian")) {
        effect.Parameters["Radius"].Value = 1.6;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectLaplacian16.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Laplacian")) {
        effect.Parameters["Radius"].Value = 3.2;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectLaplacian32.jpg");
  }
}

[Visual Basic]
Sub ...
  Using doc As New Doc()
    AddImagePage(doc, img3)
    ' original image
    doc.Rendering.Save("EffectLaplacian.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Laplacian")
        effect.Parameters("Radius").Value = 0.8
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectLaplacian08.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Laplacian")
        effect.Parameters("Radius").Value = 1.6
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectLaplacian16.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Laplacian")
        effect.Parameters("Radius").Value = 3.2
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectLaplacian32.jpg")
  End Using
End Sub

Original Image before Laplacian Filter

Laplacian Radius 0.8 Pixels

Laplacian Radius 1.6 Pixels

Laplacian Radius 3.2 Pixels


Levels Effect

The Levels effect allows you fine control over brightness and contrast.

Settings
Name | Default | Description
Black Input | 0 % | The level in the current image that should be regarded as black.
White Input | 100 % | The level in the current image that should be regarded as white.
Black Output | 0 % | The level in the final image that should be regarded as black.
White Output | 100 % | The level in the final image that should be regarded as white.

Workings

Well defined images span an entire range of color intensities. However it is common to find images that do not. If a photo has been overexposed it will be too bright - there will be few colors at the low ends of intensity and many at the high end. Similarly if a photograph has been underexposed it will be very dark - all the colors will be at the low end of the range and virtually none at the high end.

The Levels effect allows you fine control over brightness and contrast to let you correct this kind of problem. The basic method of adjustment is to set the black and white points on the input image. Normally the black point will be at 0 and the white point at 255. This simply means that black is represented by the value 0 and white is represented by the value 255.

However if an image is too dark there may be no pixels at all with a value of 255. In this case what was white on the original image might be represented by a value of only 200. By setting the white input point to 200 and then applying the effect, the levels in between will be stretched to try and restore balance to the image. A similar operation setting the black input point would apply if an image was too light.

As well as being able to specify input points you can also specify output points. This lets you tell the effect what value should be regarded as white and black on the final output image.

The levels effect is often used in conjunction with an image histogram so that the exact representation of different color levels can be seen in the image.

Example

The following example images show the effect of the Levels effect.

[C#]

void function() {
  using (Doc doc = new Doc()) {
    AddImagePage(doc, img6); // original image
    doc.Rendering.Save("EffectLevels.jpg");
    using (ImageLayer layer = AddImagePage(doc, img6)) {
      using (EffectOperation effect = new EffectOperation("Levels")) {
        effect.Parameters["White Input"].Value = 80;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectLevelsWI80.jpg");
    using (ImageLayer layer = AddImagePage(doc, img6)) {
      using (EffectOperation effect = new EffectOperation("Levels")) {
        effect.Parameters["Black Input"].Value = 20;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectLevelsBI20.jpg");
    using (ImageLayer layer = AddImagePage(doc, img6)) {
      using (EffectOperation effect = new EffectOperation("Levels")) {
        effect.Parameters["White Output"].Value = 80;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectLevelsWO80.jpg");
  }
}

[Visual Basic]
Sub ...
  Using doc As New Doc()
    AddImagePage(doc, img6)
    ' original image
    doc.Rendering.Save("EffectLevels.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img6)
      Using effect As New EffectOperation("Levels")
        effect.Parameters("White Input").Value = 80
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectLevelsWI80.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img6)
      Using effect As New EffectOperation("Levels")
        effect.Parameters("Black Input").Value = 20
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectLevelsBI20.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img6)
      Using effect As New EffectOperation("Levels")
        effect.Parameters("White Output").Value = 80
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectLevelsWO80.jpg")
  End Using
End Sub

Original Image | White Input = 80
Black Input = 20 | White Output = 80


Median Effect

The Median filter smoothes images using a fast median algorithm. The median algorithm is particularly good at removing "salt and pepper" noise from images without removing too much fine detail.

Settings
Name | Default | Description
Width | 3 pixels | The width of the median filter to be applied.
Height | 3 pixels | The height of the median filter to be applied.
X | 2 pixels | The horizontal center of the filter in pixels from top left.
Y | 2 pixels | The vertical center of the filter in pixels from top left.

Workings

The median filter replaces each pixel with the median of its neighbors. The Median has a number of advantages over the Mean. Firstly unrepresentative pixels do not unduly influence the outcome of the final pixel level - this is why the filter is good at removing "salt and pepper" noise. Secondly, because the final pixel must actually be the value of one of its neighbors, edges are preserved more faithfully.

The image below show the neighboring pixels polled in a 4 by 3 Median Filter.

Example

The following example images show the effect of a Median filter applied to a noisy picture at different width and height settings.

[C#]

void function() {
  using (Doc doc = new Doc()) {
    AddImagePage(doc, img5); // original image
    doc.Rendering.Save("EffectMedian.jpg");
    using (ImageLayer layer = AddImagePage(doc, img5)) {
      using (EffectOperation effect = new EffectOperation("Median")) {
        effect.Parameters["Width"].Value = 3;
        effect.Parameters["Height"].Value = 3;
        effect.Parameters["X"].Value = 2;
        effect.Parameters["Y"].Value = 2;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectMedian3.jpg");
    using (ImageLayer layer = AddImagePage(doc, img5)) {
      using (EffectOperation effect = new EffectOperation("Median")) {
        effect.Parameters["Width"].Value = 5;
        effect.Parameters["Height"].Value = 5;
        effect.Parameters["X"].Value = 3;
        effect.Parameters["Y"].Value = 3;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectMedian5.jpg");
    using (ImageLayer layer = AddImagePage(doc, img5)) {
      using (EffectOperation effect = new EffectOperation("Median")) {
        effect.Parameters["Width"].Value = 9;
        effect.Parameters["Height"].Value = 9;
        effect.Parameters["X"].Value = 4;
        effect.Parameters["Y"].Value = 4;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectMedian9.jpg");
  }
}

[Visual Basic]
Sub ...
  Using doc As New Doc()
    AddImagePage(doc, img5)
    ' original image
    doc.Rendering.Save("EffectMedian.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img5)
      Using effect As New EffectOperation("Median")
        effect.Parameters("Width").Value = 3
        effect.Parameters("Height").Value = 3
        effect.Parameters("X").Value = 2
        effect.Parameters("Y").Value = 2
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectMedian3.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img5)
      Using effect As New EffectOperation("Median")
        effect.Parameters("Width").Value = 5
        effect.Parameters("Height").Value = 5
        effect.Parameters("X").Value = 3
        effect.Parameters("Y").Value = 3
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectMedian5.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img5)
      Using effect As New EffectOperation("Median")
        effect.Parameters("Width").Value = 9
        effect.Parameters("Height").Value = 9
        effect.Parameters("X").Value = 4
        effect.Parameters("Y").Value = 4
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectMedian9.jpg")
  End Using
End Sub

Original Image before Median Filter

Width = 3, Height = 3, X = 2, Y = 2

Width = 5, Height = 5, X = 3, Y = 3

Width = 9, Height = 9, X = 4, Y = 4


Pinch Effect

The Pinch effect distorts the image as if it had been pinched.

Settings
Name | Default | Description
Amount | 50 % | The amount that the image should be pinched.
Extent | 50 % | How far the effect should extend.
Speed | 3 | There is a general speed versus quality tradeoff. Higher values produce faster results at the expense of quality.

Workings

The effect distorts the image as if it had been pinched.

Example

The following example images show the effect of a Pinch filter applied to a picture with different settings.

[C#]

void function() {
  using (Doc doc = new Doc()) {
    AddImagePage(doc, img3); // original image
    doc.Rendering.Save("EffectPinch.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Pinch")) {
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectPinchDefault.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Pinch")) {
        effect.Parameters["Amount"].Value = 75;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectPinchAmount75.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Pinch")) {
        effect.Parameters["Extent"].Value = 100;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectPinchExtent100.jpg");
  }
}

[Visual Basic]
Sub ...
  Using doc As New Doc()
    AddImagePage(doc, img3)
    ' original image
    doc.Rendering.Save("EffectPinch.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Pinch")
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectPinchDefault.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Pinch")
        effect.Parameters("Amount").Value = 75
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectPinchAmount75.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Pinch")
        effect.Parameters("Extent").Value = 100
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectPinchExtent100.jpg")
  End Using
End Sub

Original Image before Pinch

After Pinch with default settings

Amount = 75

Extent = 100


Ripple Effect

The Pinch effect distorts the image as if it had been rippled.

Settings
Name | Default | Description
Height | 10 pixels | The amplitude of the wave determines how high the ripples are on the surface of the images.
Length | 30 pixels | The length of the wave determines how far apart the ripples are placed.
Phase | 0 degrees | The phase determines if the center of the ripple is a peak or a trough.
Speed | 6 | There is a general speed versus quality tradeoff. Higher values produce faster results at the expense of quality.

Workings

The effect is very similar to a pond ripple. The image is distorted as if it was projected onto the surface of a pond and then a stone had been dropped into the middle.

Example

The following example images show the effect of a Ripple filter applied to a picture with different settings.

[C#]

void function() {
  using (Doc doc = new Doc()) {
    AddImagePage(doc, img3); // original image
    doc.Rendering.Save("EffectRipple.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Ripple")) {
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectRippleDefault.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Ripple")) {
        effect.Parameters["Height"].Value = 15;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectRippleHeight15.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Ripple")) {
        effect.Parameters["Length"].Value = 10;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectRippleLength10.jpg");
  }
}

[Visual Basic]
Sub ...
  Using doc As New Doc()
    AddImagePage(doc, img3)
    ' original image
    doc.Rendering.Save("EffectRipple.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Ripple")
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectRippleDefault.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Ripple")
        effect.Parameters("Height").Value = 15
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectRippleHeight15.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Ripple")
        effect.Parameters("Length").Value = 10
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectRippleLength10.jpg")
  End Using
End Sub

Original Image before Ripple

After Ripple with default settings

Height = 15

Length = 10


Sharpen Effect

The Sharpen filter enhances edges using a simple algorithm. This is very fast to compute but can produce artificially over-sharp or over-noisy images if not used carefully.

Settings
Name | Default | Description
None |  |

Workings

The Sharpen Filter uses a simple three square convolution to enhance edges.

The matrix for this convolution is:

-0.125 | -0.125 | -0.125
-0.125 | +2.000 | -0.125
-0.125 | -0.125 | -0.125

Example

The following examples show the effect of a Sharpen filter applied to a number of different images. Note that because JPEG compression has been used to compress these images some of the fine detail applied by the effect is not visible.

[C#]

void function() {
  using (Doc doc = new Doc()) {
    AddImagePage(doc, img5); // original image
    doc.Rendering.Save("EffectSharpen1a.jpg");
    using (ImageLayer layer = AddImagePage(doc, img5)) {
      using (EffectOperation effect = new EffectOperation("Sharpen")) {
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectSharpen1b.jpg");
    AddImagePage(doc, img3); // original image
    doc.Rendering.Save("EffectSharpen2a.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Sharpen")) {
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectSharpen2b.jpg");
    AddImagePage(doc, img6); // original image
    doc.Rendering.Save("EffectSharpen3a.jpg");
    using (ImageLayer layer = AddImagePage(doc, img6)) {
      using (EffectOperation effect = new EffectOperation("Sharpen")) {
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectSharpen3b.jpg");
  }
}

[Visual Basic]
Sub ...
  Using doc As New Doc()
    AddImagePage(doc, img5)
    ' original image
    doc.Rendering.Save("EffectSharpen1a.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img5)
      Using effect As New EffectOperation("Sharpen")
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectSharpen1b.jpg")
    AddImagePage(doc, img3)
    ' original image
    doc.Rendering.Save("EffectSharpen2a.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Sharpen")
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectSharpen2b.jpg")
    AddImagePage(doc, img6)
    ' original image
    doc.Rendering.Save("EffectSharpen3a.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img6)
      Using effect As New EffectOperation("Sharpen")
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectSharpen3b.jpg")
  End Using
End Sub

Original Image before Sharpen Filter

After Sharpen Filter Applied.

Original Image before Sharpen Filter

After Sharpen Filter Applied.

Note that as well as enhancing edges the effect has also enhanced 'mosquito noise' artifacts from the JPEG compression used on the original image. These are especially visible around the legs of the astronaut.

Original Image before Sharpen Filter

After Sharpen Filter Applied.

Note that the main effect here has been to enhance noise rather than improve quality.


Twirl Effect

The Twirl effect distorts the image as if it had been twirled.

Settings
Name | Default | Description
Angle | 120 degrees | The amount that the image should be twirled.
Extent | 50 % | How far the effect should extend.
Speed | 8 | There is a general speed versus quality tradeoff. Higher values produce faster results at the expense of quality.

Workings

The effect distorts the image as if it had been twisted.

Example

The following examples show the effect of a Twirl applied with a number of different settings.

[C#]

void function() {
  using (Doc doc = new Doc()) {
    AddImagePage(doc, img3); // original image
    doc.Rendering.Save("EffectTwirl.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Twirl")) {
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectTwirlDefault.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Twirl")) {
        effect.Parameters["Angle"].Value = 360;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectTwirlAngle360.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Twirl")) {
        effect.Parameters["Extent"].Value = 100;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectTwirlExtent100.jpg");
  }
}

[Visual Basic]
Sub ...
  Using doc As New Doc()
    AddImagePage(doc, img3)
    ' original image
    doc.Rendering.Save("EffectTwirl.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Twirl")
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectTwirlDefault.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Twirl")
        effect.Parameters("Angle").Value = 360
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectTwirlAngle360.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Twirl")
        effect.Parameters("Extent").Value = 100
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectTwirlExtent100.jpg")
  End Using
End Sub

Original Image before Twirl

After Twirl with default settings

Angle = 360

Extent = 100


Unsharp Mask Effect

The Unsharp Mask filter is a simple method of sharpening a photo. Areas of complexity and fine detail within the image become crisp and better defined. An Unsharp Mask takes longer to perform than a simple Sharpen but gives more control and produces a more natural appearance.

Settings
Name | Default | Description
Radius | 1.5 pixels | Determines the scale of fine detail that will be enhanced. Low values enhance only very fine detail while high values enhance larger levels of detail.
Amount | 60 % | The level of enhancement to be applied to the fine detail. Values greater than 100% will super-enhance any complex areas.
Threshold | 0 | If there is little fine detail then you can choose not to enhance it by setting a threshold. Any detail less than the threshold will not be enhanced.

Workings

An Unsharp Mask is essentially a Blur in reverse. A Gaussian Blur is applied to a copy of the original image to produce an image with no fine detail. The blurred image is subtracted from the original to extract the fine detail. This fine detail is then added to the original image to highlight complex areas.

The radius parameter determines the radius of the Gaussian Blur in pixels and lets you choose the level of scale of detail that should be enhanced. The difference between color levels on the blurred and original image is determined at each point on the image. If the difference is greater than the Threshold parameter then the Amount percentage of the difference is added back to the original image.

Example

The following example shows the basic effect of Unsharp Mask on a blurred photo and how the parameters can change the effect produced. Note that because JPEG compression has been used to compress these images some of the fine detail applied by the effect is not visible.

[C#]

void function() {
  using (Doc doc = new Doc()) {
    AddImagePage(doc, img5); // original image
    doc.Rendering.Save("EffectUnsharpMask1a.jpg");
    using (ImageLayer layer = AddImagePage(doc, img5)) {
      using (EffectOperation effect = new EffectOperation("Unsharp Mask")) {
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectUnsharpMask1b.jpg");
    AddImagePage(doc, img3); // original image
    doc.Rendering.Save("EffectUnsharpMask2a.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Unsharp Mask")) {
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectUnsharpMask2b.jpg");
    AddImagePage(doc, img6); // original image
    doc.Rendering.Save("EffectUnsharpMask3a.jpg");
    using (ImageLayer layer = AddImagePage(doc, img6)) {
      using (EffectOperation effect = new EffectOperation("Unsharp Mask")) {
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectSharpen3b.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Unsharp Mask")) {
        effect.Parameters["Amount"].Value = 140;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectUnsharpMaskSetting1.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Unsharp Mask")) {
        effect.Parameters["Amount"].Value = 140;
        effect.Parameters["Radius"].Value = 6;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectUnsharpMaskSetting2.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Unsharp Mask")) {
        effect.Parameters["Amount"].Value = 140;
        effect.Parameters["Radius"].Value = 6;
        effect.Parameters["Threshold"].Value = 40;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectUnsharpMaskSetting3.jpg");
  }
}

[Visual Basic]
Sub ...
  Using doc As New Doc()
    AddImagePage(doc, img5)
    ' original image
    doc.Rendering.Save("EffectUnsharpMask1a.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img5)
      Using effect As New EffectOperation("Unsharp Mask")
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectUnsharpMask1b.jpg")
    AddImagePage(doc, img3)
    ' original image
    doc.Rendering.Save("EffectUnsharpMask2a.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Unsharp Mask")
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectUnsharpMask2b.jpg")
    AddImagePage(doc, img6)
    ' original image
    doc.Rendering.Save("EffectUnsharpMask3a.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img6)
      Using effect As New EffectOperation("Unsharp Mask")
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectSharpen3b.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Unsharp Mask")
        effect.Parameters("Amount").Value = 140
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectUnsharpMaskSetting1.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Unsharp Mask")
        effect.Parameters("Amount").Value = 140
        effect.Parameters("Radius").Value = 6
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectUnsharpMaskSetting2.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Unsharp Mask")
        effect.Parameters("Amount").Value = 140
        effect.Parameters("Radius").Value = 6
        effect.Parameters("Threshold").Value = 40
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectUnsharpMaskSetting3.jpg")
  End Using
End Sub

Original Image

Unsharp Mask Default Settings

Original Image

Unsharp Mask Default Settings

Original Image

Unsharp Mask Default Settings

The following examples show how the parameters can change the effect produced.

Unsharp Mask Default Settings

Unsharp Mask Amount =140

Unsharp Mask Amount =140 Radius = 6

Unsharp Mask Amount =140 Radius = 6 Threshold = 40


Wave Effect

The Wave effect distorts the image as if it had been disturbed by a number of random waves.

Settings
Name | Default | Description
Number | 3 | The number of random waves that should be generated.
LengthMin | 40 pixels | The minimum wavelength for a random wave.
LengthMax | 60 pixels | The maximum wavelength for a random wave.
HeightMin | 5 pixels | The minimum amplitude for a random wave.
HeightMax | 15 pixels | The maximum amplitude for a random wave.
Speed | 6 | There is a general speed versus quality tradeoff. Higher values produce faster results at the expense of quality.

Workings

The effect distorts the image as if it had been disturbed by a number of waves. By choosing appropriate values you can make images look like they are underwater or are being seen through a heat haze.

Example

The following examples show the effect of a Wave applied with a number of different settings.

[C#]

void function() {
  using (Doc doc = new Doc()) {
    AddImagePage(doc, img3); // original image
    doc.Rendering.Save("EffectWave.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Wave")) {
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectWaveDefault.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Wave")) {
        effect.Parameters["LengthMin"].Value = 15;
        effect.Parameters["LengthMax"].Value = 30;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectWaveLength.jpg");
    using (ImageLayer layer = AddImagePage(doc, img3)) {
      using (EffectOperation effect = new EffectOperation("Wave")) {
        effect.Parameters["HeightMin"].Value = 0;
        effect.Parameters["HeightMax"].Value = 5;
        effect.Apply(layer.PixMap);
      }
    }
    doc.Rendering.Save("EffectWaveHeight.jpg");
  }
}

[Visual Basic]
Sub ...
  Using doc As New Doc()
    AddImagePage(doc, img3)
    ' original image
    doc.Rendering.Save("EffectWave.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Wave")
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectWaveDefault.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Wave")
        effect.Parameters("LengthMin").Value = 15
        effect.Parameters("LengthMax").Value = 30
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectWaveLength.jpg")
    Using layer As ImageLayer = AddImagePage(doc, img3)
      Using effect As New EffectOperation("Wave")
        effect.Parameters("HeightMin").Value = 0
        effect.Parameters("HeightMax").Value = 5
        effect.Apply(layer.PixMap)
      End Using
    End Using
    doc.Rendering.Save("EffectWaveHeight.jpg")
  End Using
End Sub

Original Image before Wave

After Wave with default settings

LengthMin = 15, LengthMax = 30

HeightMin = 0, HeightMax = 5