PDFNet SDK Version 3.6 Update

February 21, 2007.
PDFTron Systems Inc. today announced an update to PDFNet SDK (v.3.6),
a high-quality, comprehensive PDF SDK for PDF creation, manipulation,
and rendering.

What’s New PDFNet SDK Version 3.6 ?

  • Improved JBIG2 handling. JBIG2 decoder can now process any valid
    JBIG2 stream (previously the JBIG2 decoder could only process streams
    compressed using PDFNet).

  • Improved font substitution (especially for CJKV fonts). There are
    also new methods that allow the user to override the default PDFNet
    font substitution algorithm. Using PDFNet.AddFontSubst() it is
    possible to override font substitution for individual font names as
    well as for various character collections. Check out the PDFDraw
    sample project for an example of how to use PDFNet.AddFontSubst().

  • ICC support for device color spaces. Although ICC support was
    available in PDFNet for a while, the only way to control color
    conversion of device color spaces was by embedding ICC profiles in the
    PDF document and overriding default color spaces. Starting with PDFNet
    3.6, it is possible to adjust color conversion without having to
    modify source documents. The relevant methods in the ‘PDFNet’ class
    are SetColorManagement() , SetDefaultDeviceRGBProfile() , and
    SetDefaultDeviceCMYKProfile(). The PDFDraw sample project also shows
    how to use these functions.

  • Significant reduction in memory requirements related to processing
    of monochrome images.

  • New Page Labels API and sample project. Page labels allow for non-
    sequential page numbering or the addition of arbitrary labels for a
    page (such as the inclusion of Roman numerals at the beginning of a
    book).

  • Cross-platform support for Unicode file-systems.

  • Cross-platform support for Unicode strings and new utility methods
    for handling ‘PDF Text Strings’ as Unicode strings.

  • Improved conversion of text to Unicode.

  • Unlimited number of colorants/tint components for DeviceN color
    spaces.

  • PDFDraw.Export can now also export images in indexed color space
    resulting in a smaller file size, possibly at the expense of some
    image quality. To export the rasterized image using 8-bit, palettized
    PNG format, use “PNG8” to identify the export filter (e.g.
    pdfdraw.Export(page, “out.png”, “PNG8”).

  • A new option in ElementWriter to simplify switching off compression
    of page streams. The ElementWriter.Begin() method has couple of
    additional options:

  • background: An optional flag indicating whether new content
    should be added as a foreground or background layer to the
    existing page.

  • compress: An optional flag indicating whether the page content
    stream should be compressed.

  • Correct rendering of highlight annotations.

  • A new type of event in PDFClass that is raised every time the
    current page number changes (e.g. during page scrolling). This feature
    makes it easier to update GUI elements representing the current page
    within the document. The delegate (PDFViewCurrentPage delegate) that
    handles this event can be registered using
    PDFView::SetCurrentPageProc.

  • Extended C# PDFView sample project illustrating how to create
    additional interactive PDF tools such as rectangular zoom, link
    creation and navigation tool, markup annotation, etc.

  • Various bug fixes.


New Types and Methods:

PDFNet.SetColorManagement()
PDFNet.SetDefaultDeviceCMYKProfile()
PDFNet.SetDefaultDeviceRGBProfile()
PDFNet.AddFontSubst()
class UString
Obj.FindObj()
Obj.GetAsPDFText()
class PDF.PageLabels
PDFDoc.SetPageLabel()
PDFDoc.RemovePageLabel()
PDFDoc.GetPageLabel()
Page.IsValid()
PDFRasterizer.Dispose()
PDFView.SetCurrentPageProc(PDFViewCurrentPageDelegate, …);

PDFDraw.Dispose()
ColorPt.SetColorantNum()
ColorPt.Set(c, idx)
ColorPt.Get(idx)


Other Changes:

Obj.GetStr() is deprecated. Use Obj.GetAsPDFText() instead.
ColorSpace::MaxColornats is deprecated.
Function::maxcardinality is deprecated.
SDF::Erase() returns void.