Some aspects of ABCpdf can be controlled on a global level using registry keys.

In general, you will not need to use these, and you should take the relevant precautions if you decide to insert them.

Registry settings are held at:

HKEY_LOCAL_MACHINE\SOFTWARE\WebSupergoo\ABCpdfNET\10

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.

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 and the direct import of embedded CCITT or JPEG data.

If the flat is cleared then these features are disabled.

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.

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 dopcuments are corrupt or if you are adding text, that partially constructed objects may be present.

If this property is set to a non-zero value, 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.

Refactor DWORD 1

Whether to eliminate redundant objects on save or append.

Sometimes PDFs can contain duplicate objects. Eliminating these duplicates can reduce the size of certain PDF documents.

If this property is set to a non-zero value, then ABCpdf will attempt to eliminate any redundant objects. This process requires significant amount 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.

for(int i = 1, n = doc.ObjectSoup.Count; i < n; i++)
  doc.SetInfo(i, "Touched", "1");

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.

FontInheritsStyles DWORD 0 [false]

When the value is false (zero), Doc.AddHtml 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.AddHtml 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 images may contain flags to indicate orientation and mirroring.

If this flag is set, ABCpdf will use these flags to ensure that your TIFF images are automatically provided the right way up.

AutosizeImages DWORD 0 [false]

In ABCpdf9 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.

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 2

This can affect the size of buffers ABCpdf will allocate for the /Contents field in signatures.

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.

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 don't 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 don't 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 don't 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.

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.

UseCSSClassToAddTags DWORD 1 [true]  

When the Gecko engine is used, this setting specifies whether CSS class 'abcpdf-tag-visible' is used for adding tags (XHtmlOptions.AddTags). This CSS class 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.

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.

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.

RenderNoAAClipping DWORD 1  

Disabled by default. Certain non-rectangular clipping paths currently require that we keep these as 8 bit alpha masks. For large files or large images to be generated, this can result in increased memory usage and slower rendering speeds. Set this to '0' to enable the 8 bit clipping masks. Otherwise the clipping masks will be represented as 1 bit masks (no antialiasing).

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.

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.